内核编码的下一步

时间:2013-06-27 07:05:26

标签: c operating-system kernel

我正在关注OSdev Wiki中的准系统教程,我完成了该教程以及他们在前进中添加的子任务。
在这个项目中我可以做的下一步是什么?
我可以继续任何可以继续的方向吗?

1 个答案:

答案 0 :(得分:1)

当您遵循Bare Bones教程时,当然有许多不同的方法。你可以:

  • 编写同步原语(互斥锁,条件变量,自旋锁等)并学习如何在多核计算机上运行内核以测试它们。您还需要创建一个内核中的线程库和调度程序来测试它。如果你想真正测试你的多线程技能,你也可以编写一个计时器驱动程序来为你的内核代码添加抢占。
  • 使用Bare Bones教程中的键盘和屏幕驱动程序编写一个TTY驱动程序,该驱动程序接收命令并将其传递给正在从该终端的用户输入读取的任何进程。
  • 编写DMA或ATA驱动程序并使用它来从磁盘读取和写入。
  • 创建内存中的文件系统并抽象出虚拟文件系统(VFS)调用。然后,您可以使用DMA / ATA驱动程序编写实现相同VFS接口的磁盘上文件系统。
  • 编写虚拟内存系统,以便您可以在用户空间中运行代码,而不是在内核模式下运行所有​​内容。
  • 一旦你拥有了VM和VFS,你就可以开始做内存映射文件和在进程之间共享内存(在调用fork()之后创建页面copy-on,以及所有那些好东西)。< / LI>

或者你可以做所有这些。显然,其中很多都可能非常耗时(我在大学里花了整整一个学期40到80个小时的时间自己完成所有这些,而且我从来没有试过让我的内核可以抢占),但他们每个人都是带来了巨大的回报和更全面的理解。找一本好的教科书,你可以看一些代码并设定一些小的目标来开始!