linux 核心由5 個主要的子系統組成。
[img]
(1)程序排程(sched)控制著程序對cpu 的訪問。當需要選擇下乙個程序執行時,由排程程式選擇最值得執行的程序。可執行程序實際是僅等待 cpu 資源的程序,如果某個程序在等待其他資源,則該程序是不可執行程序。linux 使用了比較簡單的基於優先順序的程序排程演算法選擇新的程序。
(2)記憶體管理(mm)允許多個程序安全地共享主記憶體區域。linux 的記憶體管理支援虛擬記憶體,即在計算機中執行的程式,其**、資料和堆疊的總量可以超過實際記憶體的大小,作業系統只當前使用的程式塊保留在記憶體中,其餘的程式塊則保留在磁碟上。必要時,作業系統負責在磁碟和記憶體之間交換程式塊。
(3)虛擬檔案系統(virtul file system,vfs)隱藏了各種不同硬體的具體細節,為所有裝置提供了統一的介面,vfs 還支援多達數十種不同的檔案系統,這也是linux 較有特色的一部分。
(4)網路介面(net)提供了對各種網路標準協議的訪問和各種網路硬體的支援。網路介面可分為網路協議和網路驅動程式兩部分。網路協議部分負責實現每一種可能的網路傳輸協議,網路裝置驅動程式負責與硬體裝置進行通訊,每一種可能的硬體裝置都有相應的裝置驅動程式。
(5)程序間通訊(ipc) 支援程序間各種通訊機制。從圖所示可以看出,處於中心位置的是程序排程,所有其他的子系統都依賴於它,因為每個子系統都需要掛起或恢復程序。一般情況下,當乙個程序等待硬體操作完成時,它被掛起;當操作真正完成時,程序被恢復執行。例如,當乙個程序通過網路傳送一條訊息時,網路介面需要掛起傳送程序,直到硬體成功地完成訊息的傳送,當訊息被傳送出去以後,網路介面給程序返回乙個**,表示操作的成功或失敗。其他子系統(記憶體管理,虛擬檔案系統及程序間通訊)以相似的理由依賴於程序排程。
Linux核心結構
linux核心主要由五個子系統組成 程序排程,記憶體管理,虛擬檔案系統,網路介面,程序間通訊。1.程序排程 sched 控制程序對cpu的訪問。當需要選擇下乙個程序執行時,由排程程式選擇最值得執行的程序。可執行程序實際上是僅等待cpu資源的程序,如果某個程序在等待其它資源,則該程序是不可執行程序。l...
Linux核心結構
linux核心主要由五個子系統組成 程序排程,記憶體管理,虛擬檔案系統,網路介面,程序間通訊。1.程序排程 sched 控制程序對cpu的訪問。當需要選擇下乙個程序執行時,由排程程式選擇最值得執行的程序。可執行程序實際上是僅等待cpu資源的程序,如果某個程序在等待其它資源,則該程序是不可執行程序。l...
linux核心結構
1.程序排程 sched 控制程序對cpu的訪問。當需要選擇下乙個程序執行時,由排程程式選擇最值得執行的程序。可執行程序實際上是僅等待cpu資源的程序,如果某個程序在等待其它資源,則該程序是不可執行程序。linux使用了比較簡單的基於優先順序的程序排程演算法選擇新的程序。2.記憶體管理 mm 允許多...