This is an OS written entirely in Rust.
This initially started as a follow of Philipp Oppermann's blog Writing an OS in Rust.
After finishing the blog, I've tried my hand at taking this further.
I work on this on and off, so refinements and bug fixes always remain.
I also wrote a blog about whatever I made here. Pardon me if the blog is not updated with the latest code (will do it soon).
Own Contributions so far [this is updated]:
- Custom File System (includes VirtIO block device drivers)
- Interrupt Handling with ACPI
- Bitmap Frame Allocator
Requirements:
- Rust (Nightly toolchain)
llvm-tools-previewcomponent (rustup component add llvm-tools-preview)- QEMU (Specifically
qemu-system-x86_64)
The files are stored in a disk.img file at project root. For creating a 64MiB raw file use:
dd if=/dev/zero of=disk.img bs=1M count=64To compile the kernel, build the bootloader and launch the OS in QEMU:
cargo run --bin builderAs modules grow older, I have cleaned them up and added documentation using AI. There was a lot of explanation comments that I wrote while first learning them. They were cluttering up the file. No major code was delegated to AI.