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