A from-scratch 32-bit x86 kernel in Rust — no external crates, booted by GRUB.
A hand-written i386 kernel built without leaning on the Rust kernel-dev ecosystem (bootloader, x86_64, uefi, etc.). Everything that runs after GRUB hands control to the kernel is written here: the boot stub, the screen driver, the kernel runtime, the lot.
It exists as a learning vehicle. The goal isn't to ship an OS; it's to internalise how an x86 machine actually starts, what the privilege rings really do, how paging is laid out by hand, how interrupts are dispatched, and how a small kernel grows into something that can run a userspace process.
Early.
- Stage 1 (
kfs1): boot + screen - done. - Stage 2 (
kfs2): GDT + stack - done. - Stage 3 (
kfs3): memory - in progress.
make build
make iso
make runUse make run-headless when no graphical QEMU display is available.
- nasm
- rust nightly
- rust-src for the nightly toolchain
- grub-mkrescue
- xorriso
- mtools
- qemu-system-i386
docs/stage-1.md— stage 1 goalsdocs/stage-2.md— stage 2 goalsdocs/stage-3.md— stage 3 goals
MIT — see LICENSE.