我一直想做的一件事是开发自己的操作系统(不一定像 Linux 或 Windows 那样花哨,但比我已经做过的简单引导加载程序更好)。
我很难找到可以帮助您完成编写简单“Hello World”操作系统的资源/指南。
我知道很多人可能会建议我看一下 Linux 或 BSD;但是像这样的系统的代码库(大概)太大了,我不知道从哪里开始。
有什么建议?
在简要概述了为 X86 平台编写操作系统所涉及的内容之后,有很多链接。
似乎最有希望的链接 (www.nondot.org/sabre/os/articles) 不再可用,因此您需要浏览Archive.org 版本才能阅读它。
在一天结束时,引导加载程序获取内核的机器代码,将其放入内存,然后跳转到它。您可以将任何机器代码放入您想要的内核中,但大多数 C 程序都需要一个操作系统,因此您需要告诉您的编译器它不会拥有所有这些,或者引导加载程序必须创建其中的一些。
然后内核完成所有繁重的工作,我怀疑它是您想要的示例内核。但是,在拥有一个说“Hello world”的内核与拥有一个加载命令解释器、提供磁盘服务以及加载和管理程序的内核之间,还有很长的路要走。
您可能需要考虑订阅 ACM 以访问他们的旧文献 - 在 80 年代末和 90 年代初的早期计算杂志中有很多关于如何创建替代操作系统的文章。这个时代也有可能已经绝版的书籍。您可以通过查找这些杂志的索引(可在该网站上找到 - 单击杂志名称附近的“索引”)然后四处询问有副本的人来免费获得相同的信息。
最后,我知道 usenet 已经死了(因为互联网末日的预言家这么说),但你会发现那个时代的许多崎岖的老专家仍然生活在那里。您应该搜索 google 群组(他们有 dejanews 的旧存储库),我希望您会发现很多人在十年或 1.5 年前提出与您现在所问的相同的问题。当 Linus Torvalds 最初开发 linux 时,您甚至可能会遇到许多寻求帮助的问题。如果搜索没有带来任何结果,请在相应的新闻组中询问(可能以 comp.arch 开头,但搜索名称中带有 OS 的新闻组)。