Linux 0.11用Rust重写:31年前的内核在今天重新启动
Linux 0.11用Rust重写:31年前的内核在今天重新启动

1991年,Linus Torvalds发布了Linux 0.11。那是Linux还称不上"操作系统"的年代——一个能运行在i386上的极简内核,加上基本的文件系统和进程管理,仅此而已。版本号0.11说明了一切:一个还在实验阶段的项目。
31年后,有人把这个内核用Rust重写了。
一个不太一样的重写项目
GitHub上最近出现了一个叫linux-0.11-rs的项目,作者Poseidon-fan做的事情听起来很简单:用Rust重写Linux 0.11。但看下去会发现,这不是那种"把C翻译成Rust"的机械转换。
项目的描述里写得很清楚:"idiomatic Rust"——地道的Rust写法。内核本身、标准风格的用户库、加上60多个核心工具(coreutils),全部从零开始用Rust重新实现。而且在i386模拟的QEMU中可以启动运行。
对熟悉Linux早期历史的人来说,0.11是一个特殊的版本号。那是在Linux还只有一个floppy disk就能装下的时候,没有网络栈,没有虚拟内存,没有模块化驱动。整个内核代码量大概在几千行级别——放在今天,只够一个驱动的基础框架。
正因如此,0.11成为一个完美的重写对象。它足够小,一个人或小团队可以完整理解;它又足够完整,能展示一个操作系统内核从启动到用户态交互的完整链路。
Rust重写内核意味着什么
过去几年,"用Rust写内核"是一个热门但复杂的讨论话题。Google在Android内核中引入Rust支持,红帽在RHEL中试验Rust内核模块,Linus本人也表达过对Rust进入内核主干的支持。
但这些大厂的努力方向是在现有Linux内核中逐步引入Rust——写新的Rust模块,或者用Rust重写特定的驱动。这是一种务实的渐进策略。
而linux-0.11-rs走的是另一条路:完全重写一个完整的小内核。这种做法不太可能直接用在生产环境——没有谁会去重跑Linux 0.11做实际工作。但它的价值在别的地方。
对研究操作系统的人来说,这个项目提供了一个罕见的对照实验:用两种语言实现同一个设计,在同一个硬件目标上运行。你可以直接比较C版本和Rust版本的代码结构、内存管理方式、错误处理模式。在操作系统的教学场景中,这种"并排对比"比任何理论分析都有说服力。
对普通开发者的启发
一个细节很多人可能没注意到:这个项目不只是重写内核,还实现了"std-style user library"和60多个coreutils。这意味着它不是一个"内核展示品",而是一个完整的、可以交互的Unix环境。
从实际使用来看,这样的项目对于想学习Rust系统编程的开发者有很直接的价值。很多人在学习Rust时面临的问题是:学完了语法,但找不到合适的项目来训练系统级编程能力。而一个微型内核的重写——从bootloader到内存管理,从文件系统到系统调用——覆盖了系统编程中几乎所有核心场景。
另一个值得关注的角度是代码质量。项目README中特别强调了"idiomatic Rust"——这意味着代码风格遵循Rust社区的最佳实践,而不是把C的思维方式翻译成Rust语法。两种语言在内存管理、错误处理、并发模型上的差异,在这个项目中以相当直观的方式展示出来。比如Rust的所有权模型如何简化了内核中常见的资源管理问题,或者Rust的Result类型如何替代了C中散落各处的错误码检查。
与其说这是一个"Linux重写项目",不如说它是一个用Rust学系统编程的完整课程。
当然,项目中仍然有很多工作要做。从GitHub仓库的提交记录来看,作者还在持续完善网络支持和更多驱动。但即使以现在的状态,这个项目已经展示了Rust在系统编程中的一个关键优势:当你能用Rust写一个启动并运行的内核时,你对系统底层运作的理解深度,已经远超阅读操作系统的教科书。
未来也许不会出现用Rust重写Linux 6.x的版本——那太大了,风险也太高。但像linux-0.11-rs这样的项目,正在培养一代能用Rust写系统软件的人。而这群人,才是Rust进入操作系统主干的真正推动力。
关于维基框架
维基框架关注企业应用开发中的长期维护问题。在实际项目中,业务系统往往同时涉及权限、微服务、接口协议、部署环境等复杂因素,因此我们希望提供一套更容易扩展和维护的基础框架。
- 官网:https://framewiki.com
- Gitee:https://gitee.com/wiki-framework
- GitHub:https://github.com/wiki-framework
- 示例项目:https://gitee.com/cdkjframework/framewiki-example
- 📄 许可证:MulanPSL-2.0(木兰宽松许可证,第2版)