Skip to content
HN On Hacker News ↗

GitHub - Poseidon-fan/linux-0.11-rs: Linux 0.11 rewritten in idiomatic Rust: kernel, std-style user library, and 60+ coreutils — boots on i386 in QEMU.

▲ 138 points • 141 comments • by arto • 4mo ago • HN discussion ↗

Pangram verdict · v3.3

We believe that this document is fully AI-generated

95 %

AI likelihood · overall

AI
0% human-written 100% AI-generated
SEGMENTS · HUMAN 0 of 3
SEGMENTS · AI 3 of 3
WORD COUNT 639
PEAK AI % 99% · §1
Analyzed
Jul 13
backend: pangram/v3.3
Segments scanned
3 windows
avg 213 words each
Distribution
0 / 100%
human / AI fraction
Verdict
AI
Pangram v3.3

Article text · 639 words · 3 segments analyzed

Human AI-generated
§1 AI · 99%

A modern Rust rewrite of the Linux 0.11 kernel — boots on i386 in QEMU, runs a self-hosted Unix-style userland.

$ cd kernel && make run … Welcome to linux-0.11-rs. https://github.com/Poseidon-fan/linux-0.11-rs (login: 0 @ linux-rs :: Wed May 27 09:35:43 UTC 2026) [root@linux-rs /root]# ls /bin | wc -l 69 linux-0.11-rs rebuilds the 1991 Linux 0.11 kernel from scratch in modern Rust. It keeps the original system's semantics — what it does — while rethinking how it's expressed: stronger types, clearer module boundaries, idiomatic abstractions everywhere. The kernel boots on emulated i386 hardware, runs a full init → shell → coreutils stack, and ships with the tooling to build your own bootable image in one command. ✨ Highlights

A kernel with most of what Linux 0.11 had — processes, virtual memory with demand paging and CoW fork, the Minix v1 filesystem, ATA disk driver, VGA + PS/2 console, 8250 serial console, TTY layer, signals, and the complete syscall table. A Rust user-space "std" — user_lib mirrors the public shape of std::{fs, io, path, env, process, time} so user programs read like ordinary Rust, not like syscall plumbing. A real userland — 80+ coreutils plus a hand-written POSIX-subset shell (sh) with pipelines, control flow, functions, glob, command and arithmetic substitution, and an interactive line editor with Tab completion and history. One-command images — tools/build-disk.sh compiles every user program, lays them out into a Unix-style filesystem, and packs the result into a bootable disk image. Companion image tools — mbrkit and miniximg are standalone crates, useful on their own for any project that touches MBR or Minix v1 images.

§2 AI · 98%

Devcontainer included — clone, open in VS Code, hit "Reopen in Container", run make run.

🚀 Quick start # Build every user program, lay out /etc /dev /bin, pack into disk.img. tools/build-disk.sh

# Build the kernel and boot it in QEMU. cd kernel && make run # VGA console cd kernel && make run-console # serial console (-nographic) You'll land at a shell prompt in /root. Try: ls /bin # browse what's installed echo $((1 + 2 * 3)) # arithmetic expansion for f in /etc/*; do echo $f; done # for loop + glob fact() { if [ $1 -le 1 ]; then echo 1; else echo $(($1 * $(fact $(($1-1))))); fi; } fact 7 # → 5040 ec<TAB> # completes to `echo ` ↑ # walks command history Outside a devcontainer you'll also need a recent Rust nightly (pinned in rust-toolchain.toml), qemu-system-i386, the x86_64-linux-gnu-* cross-binutils, and the local image/test tools: tools/install-tools.sh # installs mbrkit, miniximg, ktest onto PATH ✅ Tests End-to-end tests boot the kernel under QEMU and drive the serial console from short .ktest scripts under ktest/suites/. tools/run-tests.sh # run everything tools/run-tests.sh --suite=shell # one suite tools/run-tests.sh --test-set=shell.basic # one test tools/run-tests.sh --disable-reboot # share one QEMU across tests 🗂 Repository layout kernel/ The kernel itself user_lib/ std-style user-space library user_lib_macros/ proc-macro: #[user_lib::main] user_program/ ~80 coreutils + the `sh` shell ktest/ end-to-end test runner driving QEMU

§3 AI · 85%

over serial mbrkit/ MBR disk-image CLI (also on crates.io) miniximg/ Minix-fs image CLI and library rootfs/ disk-image content template (/etc, /root, …) tools/ developer scripts (build-disk.sh, run-tests.sh, …) tutorial/ mdbook walkthrough (work in progress) .devcontainer/ ready-to-use dev environment

🛣 Project status

Kernel — substantially feature-complete relative to Linux 0.11. Floppy support is intentionally out of scope; ongoing work is on polish and tooling. User library — covers what the shell and coreutils need today. Userland — usable for real interactive work. Tutorial — early draft; the long-term plan is a complete build-from-scratch walkthrough.

📚 Tutorial cargo install mdbook cd tutorial && mdbook serve --open 🙏 Acknowledgements

Thanks to yuan-xy/Linux-0.11 for providing the original Linux 0.11 kernel source used as an important reference during development. Many parts of this project were also inspired by or implemented with reference to rcore-os/rCore-Tutorial-v3.

📄 License See LICENSE.