Skip to content
GitHub·

💻Rust Kernel Boots Linux 0.11 on i386

A Rust rewrite of the Linux 0.11 kernel is now bootable

TL;DR

A modern Rust rewrite of the Linux 0.11 kernel boots on i386 in QEMU, complete with processes and a Unix-style userland. This project rethinks how the original system's semantics are expressed using stronger types and clearer abstractions.

A Rust rewrite of the Linux 0.11 kernel now boots on i386 hardware emulated by QEMU. The project, which keeps the original system's semantics while modernizing its expression with stronger types and idiomatic abstractions, includes a full Unix-style userland. This means developers can run real interactive workloads in a self-hosted environment. Key features like virtual memory, demand paging, and CoW fork are implemented, making this a substantial rewrite that could influence future kernel development.

Rust Kernel Boots Linux 0.11 on i386 — GitHub

Key Points

1

The Rust kernel boots a Unix-style userland with over 80 coreutils and a POSIX-subset shell, all written from scratch.

2

End-to-end tests are included, running the kernel under QEMU and driving the serial console via .ktest scripts.

3

A devcontainer is provided for easy setup: clone the repo, open in VS Code, hit 'Reopen in Container', and run make run.

4

The project includes companion tools mbrkit and miniximg, standalone crates useful for any MBR or Minix v1 image handling.

5

Separate directories house kernel code, user libraries, programs, tests, and tools, with a tutorial available (though still early draft).

Why It Matters

If you're exploring Rust's capabilities in system programming or interested in how modern languages can reimplement classic systems, this project is essential. It demonstrates the feasibility of using Rust for kernel development while preserving Unix semantics and providing real-world functionality.

linuxkernelsystem-programmingqemuunix

Frequently Asked Questions

Why does this matter?

If you're exploring Rust's capabilities in system programming or interested in how modern languages can reimplement classic systems, this project is essential. It demonstrates the feasibility of using Rust for kernel development while preserving Unix semantics and providing real-world functionality.

What happened?

A modern Rust rewrite of the Linux 0.11 kernel boots on i386 in QEMU, complete with processes and a Unix-style userland. This project rethinks how the original system's semantics are expressed using stronger types and clearer abstractions.

Comments

Subscribe to join the conversation...

Be the first to comment

Enjoyed this article?

Get it daily. 7am. Free. Reads in 5 minutes.

Join 2,074 builders reading daily.

Also get