歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux內核 >> Linux內核結構分析

Linux內核結構分析

日期:2017/2/28 16:24:24   编辑:Linux內核

Linux 內核由5 個主要的子系統組成。

(1)進程調度(SCHED)控制著進程對CPU 的訪問。當需要選擇下一個進程運行時,由調度程序選擇最值得運行的進程。可運行進程實際是僅等待 CPU 資源的進程,如果某個進程在等待其他資源,則該進程是不可運行進程。Linux 使用了比較簡單的基於優先級的進程調度算法選擇新的進程。

(2)內存管理(MM)允許多個進程安全地共享主內存區域。Linux 的內存管理支持虛擬內存,即在計算機中運行的程序,其代碼、數據和堆棧的總量可以超過實際內存的大小,操作系統只當前使用的程序塊保留在內存中,其余的程序塊則保留在磁盤上。必要時,操作系統負責在磁盤和內存之間交換程序塊。

(3)虛擬文件系統(Virtul File System,VFS)隱藏了各種不同硬件的具體細節,為所有設備提供了統一的接口,VFS 還支持多達數十種不同的文件系統,這也是Linux 較有特色的一部分。

(4)網絡接口(NET)提供了對各種網絡標准協議的存取和各種網絡硬件的支持。網絡接口可分為網絡協議和網絡驅動程序兩部分。網絡協議部分負責實現每一種可能的網絡傳輸協議,網絡設備驅動程序負責與硬件設備進行通信,每一種可能的硬件設備都有相應的設備驅動程序。

(5)進程間通信(IPC) 支持進程間各種通信機制。從圖所示可以看出,處於中心位置的是進程調度,所有其他的子系統都依賴於它,因為每個子系統都需要掛起或恢復進程。一般情況下,當一個進程等待硬件操作完成時,它被掛起;當操作真正完成時,進程被恢復執行。例如,當一個進程通過網絡發送一條消息時,網絡接口需要掛起發送進程,直到硬件成功地完成消息的發送,當消息被發送出去以後,網絡接口給進程返回一個代碼,表示操作的成功或失敗。其他子系統(內存管理,虛擬文件系統及進程間通信)以相似的理由依賴於進程調度。

Copyright © Linux教程網 All Rights Reserved