目錄 一、前景回顧 二、任務切換相關 三、實現TSS 四、運行測試 一、前景回顧 在上一回我們已經實現了鍵盤的驅動編寫和環形緩沖區的實現,現在讓我們來想這么一個問題: 一直以來我們的程序都在最高特權級0下工作,這意味着任何程序都和操作系統平起平坐,可以改動任何資源。如果不改 ...
目錄 一 前景回顧 二 鎖的實現 三 使用鎖實現console函數 四 運行測試 一 前景回顧 上回我們實現了多線程,並且最后做了一個小小的實驗,不過有一點小瑕疵。 可以看到黃色部分的字符不連續,按道理應該是 argB Main ,這是為什么呢 其實仔細思考一下還是很好得出結論。我們的字符打印函數是put str,實際上是調用的put char函數。所以打印一個字符串需要多次調用put char函 ...
2022-07-09 16:32 0 522 推薦指數:
目錄 一、前景回顧 二、任務切換相關 三、實現TSS 四、運行測試 一、前景回顧 在上一回我們已經實現了鍵盤的驅動編寫和環形緩沖區的實現,現在讓我們來想這么一個問題: 一直以來我們的程序都在最高特權級0下工作,這意味着任何程序都和操作系統平起平坐,可以改動任何資源。如果不改 ...
目錄 一、前景回顧 二、線程的實現 三、線程的切換 四、運行測試 一、前景回顧 上一回我們實現了內存管理系統,說實話代碼還是比較多,看起來還是比較頭疼的,不過為了知識這都是小事。這一節終於可以來實現我們的線程了,以前學操作系統的時候,聽到的最多的就是什么線程,進程等,這一回我們來自 ...
沒錯,就是你們這群高級程序員(其實我也是)所耳熟能詳但又講不明白的 鎖,只是本章不是如何用,也不是講它是什么原理,而是在實現我們操作系統的過程中所自然而然地產生的一個需求,並且我們從零開始來實現 鎖 本章需要和上一章 【自制操作系統12】熟悉而陌生的多線程 連起來看,因為正是上一章我們多線程輸出 ...
目錄 一、前景回顧 二、位圖bitmap及函數實現 三、內存池划分 四、運行 一、前景回顧 前面我們已經花了一個回合來完善了一下我們的系統,包括增加了makefile,ASSERT以及一些常見的字符串操作函數。關於makefile,還是我以前學習Linux系統編程的時候學了一點點 ...
目錄 一、前景回顧 二、進程的創建與初始化 三、如何進行進程的切換 四、運行測試 五、原書勘誤 一、前景回顧 在上一回我們大概講述了任務切換的發展,並且知道Linux采用的是一個CPU使用一個TSS的方式,在最后我們成功實現了tss。現在萬事俱備,我們正式來實現用戶進程。 二、進程 ...
目錄 一、前景回顧 二、實現鍵盤輸入的中斷函數 三、編寫鍵盤驅動 四、實現環形輸入緩沖區 五、運行測試 一、前景回顧 上一回我們完成了鎖的實現,並且利用鎖優化了終端輸出函數。這一回我們來實現鍵盤的輸入,為后面的用戶交互功能打好基礎。 二、實現鍵盤輸入的中斷函數 首先我們需要 ...
本書依靠的教材是於淵的《Orange'S:一個操作系統的實現》 實驗環境及工具 ArchLinux(windows也可以) 代碼編輯器Emacs(你盡情使用自己喜歡的編輯器) nasm (一個開源的匯編器,可以從sourceforge下載,也可以從Linux發行版的軟件 ...
,我們已經簡單實現了MBR,直接操作顯示器和硬盤操作來加載其他扇區的程序,如今已經可以進入保護模式了, ...