首先,Linux整體的架構(gòu)如圖:
再來看Linux內(nèi)核架構(gòu),
內(nèi)核由五個主要子系統(tǒng)組成:
Process Scheduler :
進(jìn)程調(diào)度(SCHED)負(fù)責(zé)控制對CPU的進(jìn)程訪問。調(diào)度程序執(zhí)行相應(yīng)的策略,使得多個進(jìn)程能在CPU中“微觀串行,宏觀并行”地執(zhí)行。進(jìn)程調(diào)度處于系統(tǒng)的中心位置,內(nèi)核中其他的子系統(tǒng)都依賴它,因?yàn)槊總€子系統(tǒng)都需要掛起或恢復(fù)進(jìn)程。在用戶空間,進(jìn)程是由進(jìn)程標(biāo)示符(PID)表示的。在linux內(nèi)核空間,每個進(jìn)程都有一個獨(dú)立的數(shù)據(jù)結(jié)構(gòu),用來保存該進(jìn)程的ID、優(yōu)先級、地址的空間等信息,這個結(jié)構(gòu)也被稱做進(jìn)程控制塊(Process Control Block)。所謂的進(jìn)程管理就是對進(jìn)程控制塊的管理。
Memory Manager:
內(nèi)存管理器(MM)允許多個進(jìn)程安全地共享機(jī)器的內(nèi)存系統(tǒng)。此外,內(nèi)存管理器還支持虛擬內(nèi)存,該虛擬內(nèi)存允許Linux支持使用的內(nèi)存量超過系統(tǒng)可用內(nèi)存的進(jìn)程。為了解決物理內(nèi)存有時被耗盡的問題,內(nèi)存管理子系統(tǒng)規(guī)定頁面可以移出內(nèi)存并放入磁盤中,這個過程稱為交換。內(nèi)存管理的源代碼可以在./linux/mm中找到。
Virtual File System :
虛擬文件系統(tǒng)(VFS)通過為所有設(shè)備提供通用文件接口來抽象化各種硬件設(shè)備的詳細(xì)信息。它獨(dú)立于各個具體的文件系統(tǒng),是對各種文件系統(tǒng)的一個抽象,它使用索引節(jié)點(diǎn)inode存放文件的物理信息,使用目錄項(xiàng)dentry存放文件的邏輯信息。
Network Interface :
網(wǎng)絡(luò)接口可分為網(wǎng)絡(luò)協(xié)議和網(wǎng)絡(luò)驅(qū)動程序,網(wǎng)絡(luò)協(xié)議部分負(fù)責(zé)實(shí)現(xiàn)每一種可能的網(wǎng)絡(luò)傳輸協(xié)議,網(wǎng)絡(luò)設(shè)備驅(qū)動程序負(fù)責(zé)與硬件設(shè)備通信。寫網(wǎng)絡(luò)應(yīng)用程序,使用socket通過TCP/IP協(xié)議與其他機(jī)器通信。網(wǎng)絡(luò)數(shù)據(jù)從用戶進(jìn)程到達(dá)實(shí)際的網(wǎng)絡(luò)設(shè)備需要四個層次:用戶進(jìn)程,套接字,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)設(shè)備。
Inter-Process Communication :
進(jìn)程通信支持提供進(jìn)程之間的通信,Linux支持進(jìn)程間的多種通信機(jī)制,包含信號量、共享內(nèi)存、管道等。
評論
查看更多