A Totally Fr Operating System
Go to file
notsomeidiot123 5599072355 Undo cause it was causing issues 2026-01-23 15:45:00 -05:00
docs Updated build.md 2026-01-22 12:52:47 -05:00
src Undo cause it was causing issues 2026-01-23 15:45:00 -05:00
tools some changes to the build process 2025-08-24 20:11:51 -04:00
.gitignore Loading initrd instead of modules separately 2025-09-27 14:38:32 -04:00
LICENSE Added license agreement based off of the DBAD license 2025-08-27 16:36:44 -04:00
README.md Added README 2025-09-26 12:08:30 -04:00
c_build_helper.sh some changes to the build process 2025-08-24 20:11:51 -04:00
initrc.conf Finished ATA driver 2025-09-29 11:05:26 -04:00
linker.ld fcreate now works for virtual files and directories, and mounted filesystems 2025-09-10 15:39:51 -04:00
makefile Update makefile 2026-01-22 12:53:51 -05:00

README.md

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.