您需要做的是设计操作系统。例如,即使您决定应该是一个类似UNIX的系统,仍然需要做出很多决定。您希望它与UNIX有多相似?您喜欢UNIX的哪些部分,并且您认为需要改进?
如果您不打算将其设置为类似于UNIX,那么您将面临更多的问题要回答:进程应该形成一棵树,还是“扁平化”?您要支持哪种进程间通信?您是否希望它是多用户的,或者只是多任务的(或可能是单任务的)?您是否希望它是一个实时系统?您想在任务之间提供什么隔离度?您希望它落在单芯片与微内核之间吗?您希望它在多大程度上(如果有)支持分布式操作?
我通常建议不要研究Linux内核以获取启发。这并不是针对Linux内核本身,而是一个简单事实,即Linux主要用于生产用途,而不是教育用途。它具有许多优化,向后兼容的技巧等,这些对生产非常有用,但比教育更容易分散注意力。
如果可以找到,那么Lion的书(John Lions的《 Lions'Commentary on UNIX 6th Edition》,带有源代码,由John Lions 撰写)的副本就容易得多了。第六版UNIX仍然很小且足够简单,可以很快地阅读和理解,而又不过分简化了玩具系统。
如果您打算针对x86(至少主要针对),您可能还需要查看Richard Burgess的MMURTL V 1.0。这为x86提供了一个系统,该系统使用x86硬件的方式要比CPU设计人员最初打算的要多得多-大多数实际系统都在避开这种情况,以支持向其他CPU的可移植性。您可能会猜到,这往往更倾向于硬件方面。打印的副本似乎很昂贵且很难找到,但是您可以免费下载文本和代码。
幸运的是,还有更多的可能性- 例如Andrew Tanenbaum和Albert Woodhull的《操作系统设计和实现》。