我一直想做的一件事是开发自己的操作系统(不一定像 Linux 或 Windows 那样花哨,但比我已经做过的简单引导加载程序更好)。
我很难找到资源/指南来帮助您完成编写简单的“Hello World”操作系统。
我知道很多人可能会建议我看一下 Linux 或 BSD;但是像这样的系统的代码库(大概)太大了,我不知道从哪里开始。
有什么建议么?
更新:为了让通过谷歌登陆这篇文章的人更容易,这里有一些操作系统开发资源:
编写自己的操作系统(感谢 Adam)
Linux 从零开始(感谢 John)
SharpOS(C# 操作系统)(感谢 lomaxx)
OS Dev Wiki和论坛(感谢 Steve)
善意(感谢史蒂夫)
麸皮(感谢史蒂夫)
滚动你自己的玩具 UNIX 克隆操作系统(感谢史蒂夫)
其他资源:
我找到了一个名为MikeOS的好资源,“MikeOS 是一个学习工具,用于演示简单操作系统的工作原理。它使用 16 位实模式进行 BIOS 访问,因此不需要复杂的驱动程序”
2008 年 11 月 14 日更新
我在Freebyte's Guide to...Free and non-free Operating Systems中找到了一些资源,这些资源链接到诸如 OSKit 和 ExOS 库之类的工具包。这些似乎对开始操作系统开发非常有用。
2009 年 2 月 23 日更新
Ric Tokyo在这个问题中推荐了 nanoos。Nanoos 是一个用 C++ 编写的操作系统。
2009 年 3 月 9 日更新
Dinah 为有抱负的 OS 开发人员提供了一些有用的 Stack Overflow 讨论:创建自定义操作系统的路障讨论了您在开发 OS 时可能遇到的陷阱,而OS 开发是一个更普遍的讨论。
2009 年 7 月 9 日更新
LB 提供了Pintos Project的链接,这是一个为学生学习操作系统开发而设计的教育操作系统。
2009 年 7 月 27 日更新(依然强劲!)
我偶然发现了来自伯克利的一门在线操作系统课程,其中有 23 节课。
TomOS是MikeOS的一个分支,其中包括一个小内存管理器和鼠标支持。作为 MikeOS,它被设计成一个教育项目。它是用 NASM 汇编程序编写的。
2009 年 8 月 4 日更新
我发现幻灯片和其他材料与上面列出的在线伯克利讲座一起使用。
2009 年 8 月 23 日更新
stackoverflow 上所有标记为 osdev 的问题
OS/161是一个用 c 语言编写的、在模拟硬件上运行的学术操作系统。这个操作系统在 Nachos 中是类似的。谢谢小说家!
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 向我们介绍了托管操作系统联盟 (MOSA) 框架,“一套工具、规范和源代码,用于促进基于通用中间语言的托管操作系统的开发。”
2009 年 9 月 24 日更新
Steve 找到了一些使用 Visual Studio 在 Windows 上进行开发的资源,请查看BrokenThorn 的 VS 2005 指南设置或OSDev 的 VS 部分。
2012 年 9 月 5 日更新
kerneltrap.org 不再可用。linux 内核 v0.01 可从kernel.org获得
更新于 2012年 12 月 21 日 一个基本的操作系统开发教程,设计为一个学期的项目。它指导您构建具有基本组件的操作系统。对初学者来说非常好的开始。相关论文。谢谢斯鲁扬!
2013 年 11 月 15 日更新
从零开始编写一个简单的操作系统。谢谢詹姆斯摩尔!
2013 年 12 月 8 日更新
如何制作电脑操作系统 谢谢ddtoni!
2014 年 3 月 18 日更新
ToAruOS 一个主要从头开始构建的操作系统,包括 GUI
2016 年 9 月 12 日更新
2016 年 12 月 10 日更新
编写一个简单的操作系统——从零开始(谢谢@Tyler C)