tiny OS kernel
1.0.0
Let's start!
C語言和x86彙編
當然,只需要簡單的彙編基礎就可以,至於C語言,也不需要很多知識,了解源文件到可執行文件的流程。
linux基本命令
在簡單的內核編譯中,我們用到了linux下的一些工具,比如nasm ,當然這些windows下也有,包括gcc 。但編譯過程是在linux虛擬機中完成的。
我們會用到什麼工具呢?
Notepad++ , sublime等等,最簡單的記事本也可以。sublime工具本身就能已16進制形式顯示,同時虛擬機也有幫助我們解析的工具。linux虛擬機,這裡我們用到的是Ubuntu i386 。需要安裝工具nasm 、 vim 、 gcc 、 readelf等。當然,你不必擔心,用到這些工具或者資料的時候,文中都會有超鏈接,你可以去下載查閱。同時互聯網上也有大量的資料供你翻閱。
最後我們做的結果是?
最後當然不是一個非常完整的操作系統,這更像是一次研究探索和對OS的了解,以及對C語言和彙編的關係的認識,最後是對硬件和軟件如何打交道的一種認識。
7個部分,我們僅僅完成了加電開機自啟,加載主引導扇區,然後加載更多的信息到內存,最後簡單實現了從實模式進入保護模式,僅此而已,但操作系統的雛形大致也是如此。
在整個過程中,我們參考了一些視頻和電子課本
[1] 《 30天自製操作系統》
[2] 《 Oranges一個操作系統的實現》
[3] 51CTO
等等。
其中主要參考的是電子書[2] 。 [1]中的內容更加全面,最後完成的效果也更加完善。
源文件和筆記一併上傳至GitHub ,如果您有任何問題,也可以通過[email protected]聯繫我。每個文件夾是獨立的結構,編譯的二進製文件並未上傳,但源碼和工具都已上傳。