为了以下几个原因我正在重新修改教程:六年过去了,新的编译器和老代码之间不太兼容;新发现了一些bug;我比当年强。希望新的教程能很快上线……
我是个不追根究底就不舒服的人,所以当我学编译原理的时候,我写了一个编译器(其实更像汇编器)。当我开始用FreeBSD的时候,我就想知道它到底是怎么工作的,所以我尝试去读它的内核代码。正如你想象的那样,我很快就发现这是不可能完成的任务。它的几百万行代码完全把我淹没了。我只想要柄锤子,却被告知只有水压机。
所以我就想干嘛不自己来呢?写一个简单的操作系统内核,只用来展示它是怎么从系统引导到shell的,这就是Skelix的由来。Skelix是一个操作系统的框架(Skeleton),演示了内核如何在i386的32位保护模式下工作:引导、任务切换、分页、虚拟内存、文件系统等等。
这个教程通过一步一步地实现Skelix展示了一个简单的操作系统内核是如何工作的。请不要误会,Skelix只是一个用来展示的系统,并没有产品用途。我通过预设条件来让代码流程尽量简洁清晰。
感谢你对Skelix的兴趣,如果发现了任何bug,或者有任何想法或者建议,请联系我。
Special Thanks | |
---|---|
Pádraig Brady | 他帮助我矫正了一些英文错误。他的网站上有很多有用的关于Linux的技巧。http://www.pixelbeat.org. |
Song Jiang | 发现了教程中的好几个错误。 |
Arshad Hussain | 他在教程02中发现了一个计算错误。 |
沈峰 | 他在教程04中发现了pic_install 中的数条注释位置是错的。并解释了教程06中一个关于.bss 的问题。 |
你可以自由使用我的代码,如有疑问请联系我。