diff --git a/README.md b/README.md new file mode 100644 index 0000000..37c975d --- /dev/null +++ b/README.md @@ -0,0 +1,34 @@ +# Kimi's OS + +A totally FR Operating System made by yours truly! + +## Details + +Kimi's OS is an x86 32-bit Modular operating system created as a hobby project. It uses a custom-made bootloader also made by me. + +My goal for this project is to make something modular in design that can be swapped out as it's running with other or updated modules without a full reboot. Sadly updating the kernel will still require a full restart. + +I'm focused on making this as stable as possible, and (eventually) secure. Right now there's not many security features, but it's a work in progress. If anyone that knows anything about cybersecurity has any suggestions on how to implement security features, please open an issue! + +## Features + +- Custom legacy bootloader, which loads the Kernel (`/kernel.elf`), and the Initial boot and FS drivers (`/idm.elf` and `/ifsm.elf`) +- Support for PCI (not PCIe) +- Custom VFS, with built-in explicit support for mount points, devices, directories, and pipes. +- Support for ELF executable files +- Loading Kernel modules +- Serial debugging (Logging messages over COM0) + +## Instructions + +So far, I only officially support using an emulator. + +To build and run, first you must run + +`make init` + +to create necesary folders and files, followed by + +`make` + +to build and run in qemu. Running will ask you for your `sudo` password, this is because of this line in the makefile: `sudo mount image.bin mount`. This line will simply mount the kernel image to a LOCAL directory made by `make init` called `mount`. It will not override anything outside of the root directory OF THIS PROJECT. When this project is more mature and supports bare metal better (Tested with a machine I can test on), I'll offer pre-compiled images on the github releases tab. \ No newline at end of file diff --git a/makefile b/makefile index ba46bb4..2cbad84 100644 --- a/makefile +++ b/makefile @@ -61,12 +61,15 @@ init: mkdir bin/boot mkdir bin/kernel mkdir bin/modules + touch test.bin + qemu-img resize test.bin 64M .PHONY: tools makefile src/ clean: rm diskwrite rm image.bin + rm test.bin rm -rf bin/ rm -rf mount/ rm *.elf