2013-06-27 15 views
1

我正在關注OSdev Wiki中的準系統教程,我完成了本教程以及他們在前進中添加的子任務。
我可以在這個項目中做的下一步是什麼?
任何我可以繼續的方向將不勝感激?內核編碼的下一步

+0

如果你想學習關於linux內核的內容,請通過Book「Understanding Linux Kernel」(O'Reilly)。 – Chinna

+0

我想通過命令行輸入獲得簡單的內核開發,如果可能的話,執行一些I/O操作功能,爲我的內核運行時環境。 – ted

回答

1

當然,在您遵循Bare Bones教程之後,還有很多不同的方法。您可以:

  • 編寫同步原語(互斥鎖,條件變量,自旋鎖等)並學習如何在多核機器上運行您的內核來測試它們。您還需要創建一個內核線程庫和調度程序來測試它。如果你想真正測試你的多線程技能,你也可以編寫一個定時器驅動程序來爲你的內核代碼添加搶佔。
  • 使用Bare Bones教程中的鍵盤和屏幕驅動程序編寫TTY驅動程序,該驅動程序接受命令並將它們傳遞給從終端用戶輸入讀取的任何進程。
  • 寫入DMA或ATA驅動程序並使用它從磁盤讀取和寫入。
  • 製作內存中的文件系統並抽象出虛擬文件系統(VFS)調用。然後,您可以使用DMA/ATA驅動程序來寫入實現相同VFS接口的磁盤上文件系統。
  • 編寫虛擬內存系統,以便您可以在用戶空間運行代碼,而不是在內核模式下運行所有​​內容。
  • 一旦你有了VM和VFS,你就可以開始做這樣的事情內存映射文件和進程之間共享內存(主叫fork()後製作的頁面寫入時複製,和所有的好東西)。

或者你可以做所有的人。顯然,其中很多很耗費時間(我在大學裏花了整整40到80個小時的時間來完成所有這些工作,而且我從來沒有試過讓我的內核可搶佔),但是他們每個人帶來巨大的回報和更充分的理解。用一些可以查看的代碼來抓取一本好的教科書,並設置一些小目標來開始!