1

我需要一些指导来开始学习编写自己的操作系统内核。

只是为了教育目的。

如何编写自己的内核?

4

3 回答 3

6

我首先要问:您为什么选择“编写内核”?除了“在内存中实现我自己的任务结构以由我编写的调度程序交换并使用由我编写的代码管理并受机器级原子指令抽象保护的内存的想法之外的任何答案,并给出我/O 通过位于实际硬件接口之上的抽象进行访问对我很有吸引力”可能是一个糟糕的答案,表明您尚未进行任何研究并且正在浪费您的时间。

如果您的回答与上述类似,那么您就有了一个很好的起点,并且您知道您需要研究什么(也就是说,您能够在一定程度上确定您不知道但需要找出哪些信息)。

不管怎样,我认为这个问题不值得问。在一种情况下,您没有进行自己的研究来发现您是否真的可以做到这一点,而在另一种情况下,您提出了一个过于宽泛的问题。

于 2011-04-07T11:52:27.733 回答
1

也许您可以从查看OS/161开始,它是用于教育目的的哈佛简化操作系统。操作系统在模拟器上运行,因此您不需要新机器来运行它。我将它用于我的操作系统课程,它确实有很大帮助。

另外,我认为如果您还没有这样做,您可能真的想考虑参加操作系统课程。

于 2011-04-08T20:40:06.667 回答
1

这并不难,但您需要了解正确的资源管理和低级设备 I/O。如果您的目标是商品 x86 机器,那么您需要了解 BIOS 的工作原理以及磁盘的结构。例如,BIOS 会将磁盘的第一个块读入内存的某个固定地址,然后跳转到该地址。由于一个块中可能没有足够的空间来存储您的内核,您需要编写一个引导加载程序来从磁盘读取您的内核并加载它。

编写一个执行一些简单的多任务处理并仅使用 BIOS 执行 I/O 的最小内核并不太难,只是不要指望很快就会弹出任何窗口和鼠标。您将忙于尝试实现一个简单的文件系统并read()开始write()工作。

于 2011-04-08T14:48:35.197 回答