課程回顧與后續規劃
上節課我們探討了操作系統的歷史。了解歷史能讓我們明智,從操作系統的發展歷程中,我們總結出兩個核心的里程碑式圖像:多進程(多任務切換)圖像和文件操作圖像 。Unix和Windows等系統的成功,很大程度上就是對這兩個圖像的完美實現。
我們這門課程的目標是深入剖析操作系統的構建原理,而這必然要圍繞上述兩個核心圖像展開。為了讓知識體系更加清晰,我們采用“溫故而知新”的方法,梳理前面所學內容,規劃后續講解方向。
溫故:操作系統基礎及啟動原理
-
操作系統定義與管理對象:操作系統是管理計算機硬件的軟件。計算機硬件主要包括CPU、內存、顯示器、鍵盤、打印機等I/O設備,以及磁盤和磁盤上的文件 。后續課程將圍繞這幾個部分,分別探討CPU管理、內存管理(這兩者合起來對應多進程圖像管理)、I/O設備管理、磁盤與文件管理(對應文件圖像管理)。
-
操作系統管理硬件的方式:我們通過研究上層應用進入操作系統的方式,來了解操作系統如何管理硬件。具體來說,就是探究上層應用使用操作系統時,在系統內部的具體運作,比如CPU和內存的實際使用方式。
-
操作系統的啟動過程:操作系統的啟動,本質上是將其從磁盤讀取到內存,并在內存中“立起來” 。這里“立起來”具有代表性的操作是memmap 。操作系統管理硬件需要設置數據結構,啟動的最終目的就是在內存中構建好操作系統,并針對相應設備初始化數據結構。通過調用如mem_init()、trap_init()等一系列init函數完成初始化后,啟動shell,等待用戶使用計算機硬件。
-
上層應用與操作系統的交互:操作系統啟動并初始化完成后,上層應用通過系統調用(如open)進入操作系統。系統調用會觸發相應處理函數(如對應的copen ),該函數會調用相關代碼,利用已初始化的數據結構進行操作。
知新:后續課程具體內容規劃
-
硬件資源管理的主要方面:操作系統管理硬件資源,主要涉及CPU管理、內存管理、終端設備管理和磁盤管理 。CPU管理和內存管理共同構成進程視圖(多進程視圖);終端設備管理和磁盤管理共同構成文件視圖 。
-
具體知識點展開
-
CPU管理:認識CPU,形成CPU管理的直觀想法,實現從CPU到進程的抽象,構建多進程基本結構,探討多進程相關問題,研究fork如何工作 。
-
內存管理:認識內存,明確內存管理的直觀想法,理解從物理地址到虛擬地址的轉換,探究*p = 7背后的原理,以及進程虛擬內存的產生機制 。
-
文件管理:認識設備,掌握設備使用的基本結構,實現從設備到文件的抽象,研究open、read、write等操作背后的原理 。
-
從下次課開始,我們將先講解多進程圖像中的進程相關內容,包括進程是什么、如何實現等。之后講解內存相關概念,如*p = 7訪問內存的原理以及與進程的關系。最后講解文件視圖,包括設備驅動原理、普通文件與設備文件操作的含義,以及它們如何統一在文件視圖框架下。