頭不疼鼻子嘩嘩的ios
感冒了居然,宿舍裏衆人皆感冒一週有餘我自巋然不動的神話破滅api
傷心ide
如下正文編碼
程序終於運行到main.c。接着繼續配置內核啓動環境和參數。命令行
首先把啓動參數,就是以前bootloader填入的kernel setup hdr中信息,拷貝到c程序中定義可用的啓動參數結構體中,所謂的zero page設計
這裏雖然進入c程序,實際上調用bios仍是依靠中斷實現,程序還處在實模式。內存
首先初始化控制檯,從命令行參數中讀取端口波特率啥的,調用bios的api初始化串口,這時打印字符啥應該就好了。io
接着是設置堆,以後設置video mode要用擴展
驗證cpu,把合適cpu信息存到某些可用位置配置
內存探測,把內存信息讀出存到可用位置
初始化鍵盤,獲取鍵盤狀態和設置參數,這些io相關的東西和硬件關係較大,有各類硬編碼的規定。反正按規矩寫沒問題,我已經忘了具體哪些數字什麼設計,反正記得io這裏設計了一個主從層來知足不一樣外設需求,無論它。
獲取mca,ist,apm,edd啥的,存到啓動參數合適位置 。這些操做全依靠bios
萬事俱備,準備進入保護模式。
這裏複習了下保護模式是啥,分段的從新設計,全局描述符表的結構等。這種東西網上處處都是。
保護模式相比實模式,個人理解,是權限機制的設計,分頁設計與支持,總線位數的擴展。
Cheers