Notes from a small Rust kernel
What changes when there is no operating system underneath your program.
Most application code begins with a generous list of assumptions. Memory exists. Output exists. A process can fail without taking the machine with it.
Kernel work removes those assumptions one at a time. That makes even a tiny result feel useful. Printing a line means understanding the path all the way down. Handling memory means deciding what the abstractions should be before using them.
Rust is especially interesting here. Its guarantees are valuable, but only after the environment needed to support those guarantees has been constructed.
The project is small by design. It is a place to learn, break things, and make the invisible parts of a computer more concrete.