我需要一些指导来开始学习编写我自己的操作系统内核。
仅供教育用户使用。
如何编写自己的内核?
答案 0 :(得分:6)
我首先会问:为什么选择“编写内核?”除了“在内存中实现我自己的任务结构的想法被我编写的调度程序交换并使用由我编写的代码管理的内存并且受机器级原子指令的抽象保护的内容以外的任何答案通过实际硬件界面上的抽象访问/ O访问“对我来说可能是一个糟糕的答案,表明你没有做过任何研究而浪费你的时间。
如果您的答案与上述类似,那么您就有一个良好的起点,并且您知道您需要研究什么(也就是说,您能够在某种程度上确定您不知道但需要了解的信息)
无论哪种方式,我认为这个问题不值得问。在一个案例中,您没有对自己进行任何研究,以发现您是否可以实际执行此操作,而在另一种情况下,您提出了一个过于宽泛的问题。
答案 1 :(得分:1)
这并不难,但您需要了解正确的资源管理和低级设备I / O.如果您的目标是商品x86盒子,那么您需要了解BIOS的工作原理以及磁盘的结构。例如,BIOS会将磁盘的第一个块读入某个固定地址的内存,然后跳转到该地址。由于一个块中可能没有足够的空间来存储内核,因此您需要编写一个引导加载程序来从磁盘读取内核并加载它。
编写一个执行一些简单多任务处理的最小内核并使用BIOS执行I / O并不是太困难,只是不要指望任何时候抛出任何窗口和鼠标。您将忙于尝试实施一个简单的文件系统并使read()
和write()
正常工作。
答案 2 :(得分:1)
也许你可以从调查OS/161开始,这是一个用于教育目的的哈佛简化操作系统。操作系统在模拟器上运行,因此您无需新计算机即可运行它。我将它用于我的操作系统课程,它确实帮了很多忙。
另外,我认为你可能真的想考虑参加一个操作系统课程,如果你还没有这样做。