From b9850f7ab92e24a0306dc01384f15d783e6a1317 Mon Sep 17 00:00:00 2001 From: Elaina Claus Date: Tue, 22 Aug 2023 10:36:35 -0400 Subject: [PATCH] Create README.md --- README.md | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..f197e3a --- /dev/null +++ b/README.md @@ -0,0 +1,50 @@ +# stevia + +This is a hobby project that aims to create a simple and lightweight operating system kernel. It is written in Assembly and C, and uses the GNU toolchain and Bochs emulator. The project features (or is hoping to feature): + +- A boot loader that loads the kernel from a floppy disk image +- A kernel that implements basic functions, such as printing messages, handling interrupts, and managing memory +- A shell that allows user input and execution of commands +- A simple text editor that can create and edit files +- A calculator that can perform arithmetic operations +- (big maybe) micropython or some other language, cross compiling, etc... + +## Installation + +To build and run this project, you need to have the following tools installed: + +- GNU Binutils +- GNU GCC +- GNU Make +- NASM +- Bochs (for testing, project might run on other virtuization/emulation platforms, I target the Pentium 3 Era with this project) + +To build the project, run `make` in the root directory. This will generate a floppy disk image named `stevia.img` that contains the boot loader and the kernel. + +To run the project, run `bochs -f bochsrc.txt` in the root directory. This will launch the Bochs emulator and load the floppy disk image. You should see the boot loader message, followed by the kernel message, and then the shell prompt. + +To exit the emulator, press `Ctrl+C` in the terminal where you launched Bochs. + +## License + +This project is licensed under the MIT License and the GPL-3.0 License. See the [COPYING](^1^) and [LICENSE.md](^2^) files for details. + +Here are possible README.md files for each of your requested files: + +### mbr/mbr.s + +This file contains the code for a Master Boot Record (MBR) that loads the boot loader from a floppy disk image. It is written in Assembly and uses BIOS interrupts to read sectors from disk.[^note] + +### vbr/vbr.s + +This file contains the code for a Volume Boot Record (VBR) that loads the boot loader from a FAT partition on disk. It is written in Assembly and uses BIOS interrupts to read sectors from disk.[^note] + +### stage2/stage2.s + +This file contains the code for a second-stage boot loader that loads additional modules from disk. It is written in Assembly and uses BIOS interrupts to read sectors from disk.[^note] + +### miniboot32/BOOT_386.s + +This file contains the code for a 32-bit boot loader that loads the kernel from a floppy disk image. It is written in Assembly.[^note] + +[^note]: **Note:** Please note that the assembly code is strictly targeting the Pentium 3 Katmai uArch, but it might run elsewhere. Your mileage may vary.