本文基于BIOS+MBR的架構,從四部分講解微內核是如何實現的:
1)搭建微內核編譯調試環境
2)梳理微內核的代碼結構:偽指令講解
3)手寫實現微內核框架,輸出簡單的字符串
4)講解微內核啟動階段的具體運行過程
先完成內核工程創建,如下圖
我們這里使用nasm風格的匯編編寫,所以創建.asm的內核代碼文件:boot.asm
在這里就需要說明一下我們微內核程序的基本結構了:
1)偽指令:[ORG]用于確定該段代碼后續在內存中運行的起始位置,為什么微內核程序需要在0x7c00位置運行,這是由BIOS例程決定的,詳細過程后面講解
[ORG 0x7c00]
2)偽指令:
[SECTION .text]
[BITS 16]
section標志代碼段名稱,一般與鏈接腳本配合使用,起什么名字都行,大部分使用.text
BIST很重要,標志該編譯代碼段使用16位還是32位或者是64位,直接影響計算機運行二進制文件,在微內核工作的實模式階段內,我們使用16位編譯
3)偽指令:
times 510 - ($ - $$) db 0
times 是將某個指令重復使用指定的次數,db是填充字符的操作,所以這段