Linux 0.11 用 Rust 重写,QEMU 可启动
来源:github.com — 2026-07-13
📋 概述
这不是一个玩具实验——linux-0.11-rs 用现代 Rust 从零重建了 1991 年的 Linux 0.11 内核,保留了完整的原始语义但重新思考了表达方式:更强的类型系统、清晰的模块边界、地道的 Rust 抽象。内核在 QEMU 的 i386 模拟器上启动,运行着全套 init → shell → coreutils 的 80+ 用户态程序,包括一个手写的 POSIX 子集 shell(支持管道、控制流、函数、glob、命令/算术替换、Tab 补全和历史记录)。这个项目证明:即使用 Rust 重写最经典的 C 语言内核,也可以做到功能完备且代码可读。
🔑 核心要点
- 内核功能完备:进程管理、虚拟内存(按需分页 + CoW fork)、Minix v1 文件系统、ATA 磁盘驱动、VGA/PS2/串口控制台、TTY 层、信号、完整系统调用表
- Rust 用户态"std":user_lib 镜像了 std::{fs, io, path, env, process, time} 的公开接口,用户程序读起来像普通 Rust
- 手写 POSIX 子集 Shell:管道、if/for/functions、glob 展开、命令替换、算术替换、Tab 补全、命令历史
- 一键构建镜像:tools/build-disk.sh 编译所有用户程序、布置 /etc /dev /bin 目录结构、打包成可启动磁盘镜像
- 附带 独立实用工具:mbrkit 和 miniximg 是单独发布的 crate,可用于任何涉及 MBR 或 Minix v1 镜像的项目
- 包含 devcontainer 配置:clone 后在 VS Code 中一键 Reopen in Container 即可编译运行
💡 金句
1991 年的 Linux 0.11 用 C 写就了一个时代,2026 年的 Rust 重写不是复刻历史——而是用三十年语言设计的进步,重新审视那些最基础的系统抽象。
← 返回 HN 首页