本系列文章旨在一步步指导读者完成一个操作系统的编写。不同于于渊大牛的《Orange's 一个操作系统的实现》,本系列文章将直接用C语言开始编写自己的内核,略过较为艰涩的汇编内容。因为作者我也是第一次尝试编写内核,所以文章中的错误应该不少,希望大家能够及时留言指正。

本系列文章使用的UIUC的SIGOPS代码。先向UIUC的大牛们致敬!

- 前言: 能够自己动手写一个操作系统是很多编程爱好者的梦想。不过,我们不得不承认,编写操作系统还是要比编写日常的程序要困难一些。因为这次你所编写的是操作系统,而这个系统要能够运行别人编写的日常程序。一个操作系统的创建,是一个白手起家的过程,你除了硬件和对应的手册,其他什么都没有。在我们操作系统开发的初期,我们会面临缺乏各种常用库,调试器和各种常用代码的窘境。好在现在我们有了互联网,网上丰富的资料把一切都变得简单了。

所需知识和设备: C or C++的语法知识 对计算机体系结构的了解,了解汇编语言。因为我们使用了SigOPS,而它已经提供了一个i386的结构,所以读者不需要一上来就陷入到汇编和计算机体系结构的细节当中去。我们会在后面根据需要逐步介绍。 一台装了Linux的机器:我只喜欢使用Linux。 坚持坚持坚持坚持坚持坚持坚持坚持

最终目标: 我希望在系列教程的最后,我们能够完成一个非常NX的操作系统。虽然在写下这段文字的我还没有达到这一目标,但是我会不断努力的。 我所说的NX的操作系统至少要具备: 能运行多个程序 能够有进程调度程序 有系统调用 有硬件中断....等等

好了 坑已经挖好了。下面开始动工!