我一直想做的一件事就是开发自己的操作系统(不一定像Linux或Windows那样花哨,但比我已经做过的简单启动加载程序要好)。
我很难找到使您摆脱编写简单的“ Hello World” OS的资源/指南。
我知道很多人可能会建议我看一下Linux或BSD。但是此类系统的代码库很大(大概)很大,我不知道从哪里开始。
有什么建议么?
更新:为了使通过Google登陆本文的人们更加容易,这里提供了一些操作系统开发资源:
编写自己的操作系统(感谢亚当)
Linux从零开始(感谢John)
SharpOS(C#操作系统)(感谢lomaxx)
OS Dev Wiki和论坛(感谢Steve)
BonaFide(感谢Steve)
布兰(感谢史蒂夫)
推出自己的玩具UNIX克隆操作系统(感谢Steve)
其他资源:
我找到了一个很好的资源,名为MikeOS,“ MikeOS是一个学习工具,用于演示简单OS的工作方式。它使用16位实模式进行BIOS访问,因此不需要复杂的驱动程序”
更新了11/14/08
我在Freebyte的...免费和非免费操作系统指南中找到了一些资源,这些资源链接到OSKit和ExOS库等工具包。这些对于开始OS开发非常有用。
更新于2/23/09
Ric Tokyo在这个问题上推荐了nanoos。Nanoos是用C ++编写的操作系统。
更新3/9/09
Dinah为有抱负的OS开发人员提供了一些有用的Stack Overflow讨论:创建自定义操作系统的障碍讨论了在开发OS时可能遇到的陷阱,而OS开发是一个更笼统的讨论。
更新了7/9/09
LB提供了指向Pintos项目的链接,该项目是为学生学习OS开发而设计的教育OS。
更新时间:2009年7月27日(仍然有效!)
我偶然发现了Berkley 的在线OS课程,其中包含23个讲座。
TomOS是MikeOS的分支,其中包括一点内存管理器和鼠标支持。作为MikeOS,它被设计为一个教育项目。它是用NASM汇编程序编写的。
更新了8/4/09
我找到了幻灯片和其他材料,以及上面列出的在线伯克利讲座。
更新了8/23/09
OS / 161是用c编写的学术OS,可在模拟硬件上运行。此操作系统在Nachos中类似。感谢Novelocrat!
tangurena建议使用http://en.wikipedia.org/wiki/MicroC/OS-II,这是一种专为嵌入式系统设计的操作系统。还有一本随书。
Robert Love的Linux Kernel Development由Anders提出。这是“广受好评的Linux内核内部人士的看法”。
更新9/18/2009
感谢Tim S. Van Haren向我们介绍了Cosmos,这是一个完全用c#编写的操作系统。
tgiphil向我们介绍了托管操作系统联盟(MOSA)框架,“一套工具,规范和源代码可以促进基于通用中间语言的托管操作系统的开发。”
更新9/24/2009
史蒂夫(Steve)找到了一些资源使用Visual Studio在Windows上进行开发,请查看VS 2005或OSDev的VS Section的BrokenThorn指南设置。
更新9/5/2012
kerneltrap.org不再可用。可以从kernel.org获得linux内核v0.01
更新日期2012年12月21日,这是 一个基本的OS开发教程,旨在作为一个学期的项目。它指导您构建具有基本组件的操作系统。对于初学者来说是一个很好的开始。相关论文。谢谢Srujan!
更新于11/15/2013
从头开始编写一个简单的操作系统。谢谢詹姆斯·摩尔!
更新于12/8/2013
如何制作计算机操作系统 感谢ddtoni!
2014年3月18日更新
2016年9月12日更新
2016年12月10日更新
从头开始编写一个简单的操作系统(感谢@Tyler C)