Linux內核系統體系概述
阿新 • • 發佈:2018-02-13
函數 linux內核 其它 暫停 pan 依賴 暫時 分別是 關系
其中內核級中的幾個方框,除了硬件控制方框以外,其它粗線方框分別對應內核源代碼的目錄組織
結構。
除了這些圖中已經給出的依賴關系以外,所有這些模塊還會依賴於內核中的通用資源。這些資源包
括內核所有子系統都會調用的內存分配和收回函數、打印警告或出錯信息函數以及一些系統調試函數。
Linux 內核主要由 5 個模塊構成,它們分別是:
進程調度模塊 用來負責控制進程對 CPU 資源的使用。所采取的調度策略是各進程能夠公平合理地訪問 CPU,同時保證內核能及時地執行硬件操作。
內存管理模塊 用於確保所有進程能夠安全地共享機器主內存區,同時,內存管理模塊還支持虛擬內存管理方式,使得 Linux 支持進程使用比實際內存空間更多的內存容量。並可以利用文件系統把暫時不用的內存數據塊會被交換到外部存儲設備上去,當需要時再交換回來。
文件系統模塊 用於支持對外部設備的驅動和存儲。虛擬文件系統模塊通過向所有的外部存儲設備提供一個通用的文件接口,隱藏了各種硬件設備的不同細節。從而提供並支持與其它操作系統兼容的多種文件系統格式。
進程間通信模塊 子系統用於支持多種進程間的信息交換方式。
網絡接口模塊 提供對多種網絡通信標準的訪問並支持許多網絡硬件。
這幾個模塊之間的依賴關系見圖 2-3 所示。其中的連線代表它們之間的依賴關系,虛線和虛框部分表示 Linux 0.11 中還未實現的部分(從 Linux 0.95 版才開始逐步實現虛擬文件系統,而網絡接口的支持到 0.96 版才有)。
由圖可以看出,所有的模塊都與進程調度模塊存在依賴關系。因為它們都需要依靠進程調度程序來掛起(暫停)或重新運行它們的進程。 通常,一個模塊會在等待硬件操作期間被掛起,而在操作完成後才可繼續運行。例如, 當一個進程試圖將一數據塊寫到軟盤上去時,軟盤驅動程序就可能在啟動軟盤旋轉期間將該進程置為掛起等待狀態,而在軟盤進入到正常轉速後再使得該進程能繼續運行。 另外 3 個模塊也是由於類似的原因而與進程調度模塊存在依賴關系。其它幾個依賴關系有些不太明顯,但同樣也很重要。 進程調度子系統需要使用內存管理器來調整一特定進程所使用的物理內存空間。 進程間通信子系統則需要依靠內存管理器來支持共享內存通信機制。這種通信機制允許兩個進程訪問內存的同一個區域以進行進程間信息的交換。 虛擬文件系統也會使用網絡接口來支持網絡文件系統(NFS),同樣也能使用內存管理子系統來提供內存虛擬盤(ramdisk)設備。 而內存管理子系統也會使用文件系統來支持內存數據塊的交換操作。 若從單內核模式結構模型出發,我們還可以根據 Linux 0.11 內核源代碼的結構將內核主要模塊繪制 成圖 2-4 所示的框圖結構。Linux-0.11文件系統介紹
Linux內核系統體系概述