自制操做系統小樣例——參考部分linux0.11內核源碼

詳細代碼戳這裏html

1、啓動引導

採用軟件grub2進行引導,基於規範multiboot2進行啓動引導加載。multiboot2的文檔資料戳這裏git

2、具體內容

開發環境

系統環境:Ubuntu 14.04 / Ubuntu 16.04 32bit/64bit;github

輔助軟件:Qemu and Xorriso;函數

編譯器:GCCspa

實現功能

實現了圖像模式下的顯卡驅動,移植和編寫了相關函數和打印函數;(參考《30天自制操做系統》)操作系統

實現了全局描述符表、中斷描述符表的添加;線程

完成了中斷請求,實現了定時器中斷,鍵盤中斷;htm

對物理內存和虛擬內存,啓用分頁管理,基於平坦模型實現了它們之間的映射;內存

建立了內核堆,並對其進行管理;資源

進行了簡單的內核線程的建立,以及按時間片輪轉的任務切換。

存在問題

臨時建立的內核線程執行結束後,沒有對內存資源進行釋放。

忽視了原子操做,沒有進行臨界資源的保護,部分函數不支持重入(卻有可能被打斷進行任務切換)。

相關文章
相關標籤/搜索