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核心體系結構
linux核心第一記 1.linux體系結構 從上圖可知,linux分為 使用者空間和核心空間。核心空間和使用者空間是程式執行的兩種不同的狀態,通過系統呼叫和硬體中斷能夠完成從使用者空間到核心空間的轉移。www.2cto.com 2.linux核心架構 2.1系統呼叫介面 sci sci層為使用者空...
Linux核心體系結構 一
linux核心的體系結構主要分為5個模組 程序排程模組,記憶體管理模組,檔案系統模組,程序間通訊模組和網路介面模組。程序排程模組主要負責控制程序對cpu資源的使用,策略是各程序能夠公平合理訪問cpu,同時保證核心能夠及時執行硬體操作。記憶體管理模組主要確保程序能夠安全共享機器記憶體區,並且支援虛擬檔...
(一)Linux核心體系結構
作業系統核心程式,他主要用於對硬體資源的抽象和訪問排程。在單核心模式系統中,作業系統提供服務的流程為 應用主程式使用指定的引數執行系統呼叫指令 int x80 使cpu從使用者態 user mode 切換到和心態 kernel mode 然後系統根據引數值呼叫特定的系統呼叫服務程式,而這些服務程式則...