1000 行代码的操作系统
在这本书里,我们将会从零开始一步一步去构建一个小型操作系统。
当听到操作系统开发或者是内核开发的时候,你可能会觉得很吓人,但其实操作系统(尤其是内核)的基础函数是出奇的简单的。哪怕是经常被认为是大型开源操作系统的 Linux,在版本 0.01 的时候它也只有 8413 行代码。当今的 Linux 内核已经变得非常庞大,但它最开始就像你的个人兴趣项目一般只是一个很小的代码库。
我们将会用 C 语言来实现基础的上下文切换、分页、用户态、命令行 shell、磁盘驱动以及文件读写操作。听起来很复杂,但它仅有 1000 代码!
有一件事你需要谨记,它也并没有你想象中简单。实现一个操作系统过程中最棘手的是调试,因为在你实现 printf
之前你是没有办法用它来调试的。你需要学习一些你在应用开发中用不上的调试技术和技巧。尤其是当你“从零开始”,你会遇到许多困难,例如启动进程和分页。但是别担心,我们也将会学到“如何调试一个操作系统”!
调试越困难,调通后你的成就感就会越强烈。让我们进入激动人心的操作系统开发世界吧!
- 你可以在 GitHub 下载示例代码。
- 这本书是基于 CC BY 4.0 license 协议的。书中的示例和代码是基于 MIT license 协议的。
- 阅读本书要求你熟悉 C 语言和类 UNIX 环境。如果你已经会
gcc hello.c && ./a.out
,那么你可以放心大胆地继续阅读了。 - 这本书原本是作为我的书 Design and Implementation of Microkernels (日文)的附录而写的。
Happy OS hacking!