diff --git a/README.md b/README.md index fbe727d..42d4e0d 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,8 @@ Idk why i called it that it was 3am and i needed sleep Kern is a 32-bit OS based on the x86 architecture written in NASM Assembly and C. I'm working on a basic command line as well as a custom filesystem (filetable for now). +More info can be found in [The Docs](./docs/main.md) + _Since 32-bit switch, a lot of features have been removed because they were dependent on BIOS interrupts_ ## Usage diff --git a/docs/main.md b/docs/main.md new file mode 100644 index 0000000..d239ae8 --- /dev/null +++ b/docs/main.md @@ -0,0 +1,45 @@ +# kern. + +Kern is a 32-bit x86 based operating system. + +What does that mean? +Well, 32-bit means that it can access $2^32$ different memory addresses. +x86 is the processor architecture it is built upon. + +## Command Line +Kern uses a command line (for now), so you'll have to type commands to do stuff. +It is currently quite simple. It supports these commands: + +- clear: Clears the screen +- echo : Prints msg to the screen +- exit: Shuts down the OS ***(QEMU only!)*** +- help: Prints all available commands +- ls: Prints all files +- reboot: Reboots the system + +You can also print/run files by typing their filename (More in **Filesystem**) + +## Filesystem +Kern has a custom filesystem. This filesystem works as a simple filetable. +It doesn't support directories at the moment. +Here's a list of supported filetypes: + +| Type | Description | CLI Behaivour | +| ---- | ----------- | ------------- | +| .bin | Executable binary | Executes file | +| .txt | Raw ASCII text file | Prints out file content | +| .tab | Filetable format | Prints files in filetable | +| .dat | Data Binary | Prints HEX content of file | +| .asm | Assembly source code | Prints out file content | + +### Filetable format +The filetable format (.tab) is a binary file containing + +| Byte(s) | Content | +| ------- | -------- | +| 0-9 | Filename | +| 10-12 | Filetype | +| 13 | Number of filetable entries | +| 14 | Starting sector | +| 15 | File Length (in sectors) | +