《30天自制操作系統》筆記(13)——總結
進度回顧
上一篇介紹了操作系統實現多任務的方法。操作系統利用CPU的far模式的JMP指令、寄存器TR、GDT、TSS和PIT中斷這些功能實現了多任務,可見CPU在設計時就考慮到了計算機要具有多任務處理的能力。也就是說,CPU、PIC等硬件支持什么功能,操作系統才能實現什么功能。
至此全書已經讀了一半。我發現后半部分讀不下去,也沒必要再讀了。本篇就對所有的筆記做一總結,至此《30天自制操作系統》這本書就暫且不讀了。
所學所感
我們可以把CLR虛擬機(或者JVM)看做計算機。當用戶雙擊一個保存了MSIL的exe文件,這個計算機能夠加載exe文件,并執行其中的代碼。
類似的,當用戶按下開機按鈕,物理機能夠加載BIOS指定的程序代碼,并執行之。硬件電路就是這么設計好的。
計算機自動加載的程序只有512字節,不夠用來放OS程序。所以這512字節的程序就用來裝載真正的OS程序到內存某處,然后JMP到該處執行OS程序。
硬件電路提供了寄存器若干、加減乘除、中斷機制、定時器、內存段屬性、任務切換等功能。OS程序利用CALL、RET等實現了函數的概念;利用中斷機制實現了基于事件的編程;利用定時器、內存段、任務切換實現了多任務OS;利用內存段屬性實現了保護OS的功能;利用一般保護性異常中斷實現了拋出異常的功能。
充分了解CPU,充分了解匯編語言,就具有了制作OS的基礎。
下一步
最初看《30天自制操作系統》,就是為了弄清楚多任務是如何實現的。現在心里已經清楚了。
下一步,要看《Object-oriented Programming with ANSI-C》,結合我之前的研究,做一個面向對象的C語言規范檢查器。
文章列表