當前位置: 華文問答 > 數位

寫一個作業系統內核有多難?大概的內容、步驟是什麽?

2014-01-06數位

寫一個 Demo 級別的不是太難,關鍵還是需要興趣和耐心,

如果你真的想刨根問底,沒什麽能擋住你。


最基本的有幾個部份:
1 bootloader, 你是用個現成的grub還是自己寫,很多人就倒在這一步了。
2 記憶體管理
3 行程管理
4 中斷和系統呼叫
5 檔案系統

當然可以折騰的很多,但最好還是先把這些弄出來,才可稱之為一個作業系統。
資料都有,你可以參考:
Expanded Main Page JamesM's kernel development tutorials

xv6的程式碼也不錯,文件齊全,Xv6, a simple Unix-like teaching operating system

Orange'S:一個作業系統的實作 (豆瓣) 可以參考,只是有很多部份其實可以不用組譯寫了。
James的那個教程還是入門最好的。

在Github無數個人在折騰自己的Hobby OS:Open Source Operating Systems

SamyPesse/How-to-Make-a-Computer-Operating-System。

比如我當年的小計畫: chenyukang/Panda,

有的完成度還是比較高的,比如klange/toaruos總共花了六年時間才做出一個基本可用的有圖形界面和網路的 OS。redox-os/redox是一個 Rust 寫的微內核的 OS。

你要做的就是準備好時間,做,看,做,看...

我的建議是可以自己花些時間做一個簡單的 OS,哪怕是拼湊出來也好,就是為了體會一下編程的石器時代,而後還是選擇自己感興趣的模組,看看成熟的作業系統是如何做的,畢竟人的精力和時間是有限的。