詳細代碼戳這裏。html
採用軟件grub2進行引導,基於規範multiboot2進行啓動引導加載。multiboot2的文檔資料戳這裏。git
系統環境:Ubuntu 14.04 / Ubuntu 16.04 32bit/64bit;github
輔助軟件:Qemu and Xorriso;函數
編譯器:GCCspa
實現了圖像模式下的顯卡驅動,移植和編寫了相關函數和打印函數;(參考《30天自制操做系統》)操作系統
實現了全局描述符表、中斷描述符表的添加;線程
完成了中斷請求,實現了定時器中斷,鍵盤中斷;htm
對物理內存和虛擬內存,啓用分頁管理,基於平坦模型實現了它們之間的映射;內存
建立了內核堆,並對其進行管理;資源
進行了簡單的內核線程的建立,以及按時間片輪轉的任務切換。
臨時建立的內核線程執行結束後,沒有對內存資源進行釋放。
忽視了原子操做,沒有進行臨界資源的保護,部分函數不支持重入(卻有可能被打斷進行任務切換)。