Linux内核的各个组成部分,Linux 内核的组成部分
linux內核主要由進程調度(SCHED)、內存管理(MM)、虛擬文件系統(VFS)、網絡接口(NET)、和進程間通信(IPC)等5個子系統組成
他們的關系如下圖 所示:
1.進程間調度:
精度調度控制系統中的多個進程對CPU的訪問使得對個進程在CPU中微觀串行,宏觀并行的工作。進程調度處于子系統的中心位置,內核中的其他的子系統都依賴它,因為每個子系統都需要掛起或回復進程。
各個進程間的轉化圖如下:
2.內存管理:
控制多個進程安全地共享主內存區域,當CPU提供內存管理單元(MMU)時Linux 內存管理完成為每個進程進行虛擬內存到物理內存的轉換。
地址空間如圖所示:
3.虛擬文件系統:
Linux虛擬文件系統(VFS)隱藏了各種硬件的具體細節,為所有的設備提供了統一的結接口。而且它獨立于各個具體的文件系統,是對各種文件系統的一個抽象,它用超級塊 super block 存放文件系統的相關信息,使用索引節點inode 存放文件的物理信息,使用目錄項dentry存放文件的邏輯信息。
4.網絡接口:
網絡接口提供了對各種網絡標準的存取和各種網絡硬件的支持。網絡接口可以分為網絡協議和網絡驅動程序,網絡協議部分負責實現一種可能的網絡傳輸協議,網絡設備驅動程序負責與硬件設備進行通信,每一種可能的硬件設備都有相應的設備驅動程序。
5.進程通信
Linux 支持進程間通信的多種通信機制,包含信號量、共享內存、管道等,這些機制可以協助多個進程、多資源的互斥訪問、進程間的同步和消息傳遞。
linux內核的5個組成部分之間的依賴關系如下:
進程調度與內存管理之間的關系:
這兩個子系統相互依賴,在多道程序環境下,必須為程序創建進程,而創建進程的第一件事情就是將進程和數據裝入內存。
進程間通信與內存管理的關系:
進程間通信子系統要依賴內存管理支持共享內存通信機制,這個機制、允許兩個進程除了擁有自己的私有空間,還可以存取共同的內存區域。
虛擬文件系統與網絡接口之間的關系:
虛擬文件系統利用網絡接口支持網絡文件系統(NFS),也利用內存管理支持RAMDISK設備。
內存管理與虛擬文件系統之間的關系:
內存管理利用虛擬文件系統支持交換,交換進程間(swapd)定期由調度程序調度,這也是內存管理依賴于進程調度的唯一原因。當 一個進程存取的內存映射被換出時,內存管理向文件系統發出請求,同時掛起當前正在運行的進程。
除了這些依賴關系外,內核中的所有子系統還要依賴于一些共同的資源。這些資源包括所有子系統都用到的歷程,如分配和釋放內存空間額函數、打印警告信息的函數及系統提供的調試例程等。
閱讀(1031) | 評論(1) | 轉發(0) |
總結
以上是生活随笔為你收集整理的Linux内核的各个组成部分,Linux 内核的组成部分的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle 连接池sql跟踪,实现SQ
- 下一篇: linux内核编译静态库,用icc编译L