Added README

This commit is contained in:
notsomeidiot123 2025-09-26 12:08:30 -04:00
parent 0cedb51419
commit 9cb5502bbf
2 changed files with 37 additions and 0 deletions

34
README.md Normal file
View File

@ -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.

View File

@ -61,12 +61,15 @@ init:
mkdir bin/boot mkdir bin/boot
mkdir bin/kernel mkdir bin/kernel
mkdir bin/modules mkdir bin/modules
touch test.bin
qemu-img resize test.bin 64M
.PHONY: tools makefile src/ .PHONY: tools makefile src/
clean: clean:
rm diskwrite rm diskwrite
rm image.bin rm image.bin
rm test.bin
rm -rf bin/ rm -rf bin/
rm -rf mount/ rm -rf mount/
rm *.elf rm *.elf