我一直想做的事情是开发自己的操作系统(不一定像Linux或Windows那样花哨,但比我已经完成的简单引导程序要好)。
我很难找到超过编写简单的“Hello World”操作系统的资源/指南。
我知道很多人可能会推荐我看Linux或BSD;但是像那样的系统代码库(据推测)非常庞大,我不知道从哪里开始。
有什么建议吗?
更新:为了让通过Google进入此帖子的人更容易,请参考以下操作系统开发资源:
编写自己的操作系统(感谢Adam)
Linux From Scratch(感谢John)
SharpOS(C#操作系统)(感谢lomaxx)
OS Dev Wiki和Forums(感谢Steve)
BonaFide(感谢Steve)
Bran(感谢Steve)
开发自己的玩具UNIX克隆操作系统(感谢Steve)
其他资源:
我发现了一个很好的资源,名为MikeOS,"MikeOS是一个学习工具,用于演示简单操作系统的工作原理。它使用16位实模式进行BIOS访问,因此不需要复杂的驱动程序"
更新于11/14/08
我在Freebyte's Guide to...Free and non-free Operating Systems找到了一些资源,链接到诸如OSKit和ExOS库之类的套件。这些似乎非常有用,可以帮助入门OS开发。
更新于2/23/09
Ric Tokyo在这个question中推荐了nanoos。Nanoos是一个用C++编写的操作系统。
更新于3/9/09
Dinah提供了一些有用的Stack Overflow讨论,适合有志于开发操作系统的人:Roadblocks in creating a custom operating system讨论了在开发操作系统时可能会遇到的问题, 而OS Development则是一个更一般性的讨论。
更新于7/9/09
LB提供了一个链接到Pintos Project,这是为学习操作系统开发的学生设计的教育性操作系统。
更新于7/27/09(仍在继续!)
我偶然发现了伯克利提供的在线操作系统课程,共有23节课。
TomOS是MikeOS的一个分支,包括一些内存管理和鼠标支持。与MikeOS一样,它是一个教育项目。它是用NASM汇编语言编写的。
更新于8/4/09
我找到了与上述在线伯克利课程相配套的幻灯片和其他材料。
更新于8/23/09
OS/161是一个基于模拟硬件运行的用C语言编写的学术性操作系统。这个操作系统类似于Nachos。感谢Novelocrat!
tangurena 推荐 http://en.wikipedia.org/wiki/MicroC/OS-II,这是一个为嵌入式系统设计的操作系统。还有配套书籍。
Anders 建议阅读 Robert Love 的Linux Kernel Development。这是一本"广受赞誉的内部人士对 Linux 内核的深入分析"。
更新于 2009 年 9 月 18 日
感谢 Tim S. Van Haren 告诉我们Cosmos,这是一个完全用 c# 编写的操作系统。
tgiphil 向我们介绍了 Managed Operating System Alliance (MOSA) Framework,这是"一组工具、规范和源代码,用于促进基于公共中间语言的托管操作系统的开发"。
更新于 2009 年 9 月 24 日
Steve 找到了几个使用 Visual Studio 在 Windows 上进行开发的资源,请看BrokenThorn's guide setup with VS 2005或者OSDev's VS Section。
更新于2012年9月5日
kerneltrap.org不再可用。Linux内核v0.01可从kernel.org获取。
更新于2012年12月21日 一个基本的操作系统开发教程,旨在作为一个学期的项目。它指导您构建具有基本组件的操作系统。非常适合初学者入门。相关论文。感谢Srujan!
更新于2013年11月15日
从零开始编写简单的操作系统。感谢James Moore!
更新于2013年12月8日
如何制作计算机操作系统。感谢ddtoni!
更新于2014年3月18日
ToAruOS是一个大部分从零开始构建的操作系统,包括GUI界面。
2016年9月12日更新
2016年12月10日更新
从零开始编写简单操作系统(感谢@Tyler C)