// the find
haileys/rustboot
A tiny 32 bit kernel written in Rust
rustboot is a 32-bit x86 kernel written in Rust, built on the zero.rs stub that lets Rust run almost freestanding. Its only behaviour is painting the screen red and hanging, so treat it as a reference for how a bare Rust binary gets from boot to Rust code, not as a base for an OS. It suits people who want to see that handoff spelled out in a handful of files.
- The boot path is split into three small pieces: loader.asm for the entry stub, linker.ld for the memory layout, and main.rs for the Rust side, with a Makefile tying them together. That is about the minimum needed to see how a freestanding Rust binary is assembled.
- It builds on zero.rs, and the README credits that directly, so you can trace where each piece came from.
- It runs under qemu, so the loop is compile, boot, look at the screen, with no hardware required.
- The kernel does one thing: fill the screen red and hang. There is no interrupt handling, no memory management, and no scheduler, so anyone who wants to learn kernel structure from it will be writing all of that from scratch.
- The README asks for Rust 0.7 or an old master checkout of the pre-1.0 compiler. Expect to port the code before it builds on current rustc. The README does not mention that.
- The setup section covers OS X only, with Homebrew nasm, a hand-built binutils 2.24, and a source build of Rust. Linux and Windows users have to work out the equivalent toolchain themselves.