透明了解Linux內(nèi)核結(jié)構(gòu)
你是Linux系統(tǒng)的應(yīng)用者么?你對Linux內(nèi)核了解么?本文為你介紹Linux內(nèi)核的知識。與大家一起分享。Linux內(nèi)核主要由五個子系統(tǒng)組成:進程調(diào)度,內(nèi)存管理,虛擬文件系統(tǒng),網(wǎng)絡(luò)接口,進程間通信。
1.進程調(diào)度 (SCHED):控制進程對CPU的訪問。當(dāng)需要選擇下一個進程運行時,由調(diào)度程序選擇最值得運行的進程。可運行進程實際上是僅等待CPU資源的進程,如 果某個進程在等待其它資源,則該進程是不可運行進程。Linux使用了比較簡單的基于優(yōu)先級的進程調(diào)度算法選擇新的進程。
2. 內(nèi)存管理(MM)允許多個進程安全的共享主內(nèi)存區(qū)域。Linux的內(nèi)存管理支持虛擬內(nèi)存,即在計算機中運行的程序,其代碼,數(shù)據(jù),堆棧的總量可以超過實際 內(nèi)存的大小,操作系統(tǒng)只是把當(dāng)前使用的程序塊保留在內(nèi)存中,其余的程序塊則保留在磁盤中。必要時,操作系統(tǒng)負(fù)責(zé)在磁盤和內(nèi)存間交換程序塊。內(nèi)存管理從邏輯 上分為硬件無關(guān)部分和硬件有關(guān)部分。硬件無關(guān)部分提供了進程的映射和邏輯內(nèi)存的對換;硬件相關(guān)的部分為內(nèi)存管理硬件提供了虛擬接口。
3. 虛擬文件系統(tǒng)(VirtualFileSystem,VFS)隱藏了各種硬件的具體細(xì)節(jié),為所有的設(shè)備提供了統(tǒng)一的接口,VFS提供了多達(dá)數(shù)十種不同的文 件系統(tǒng)。虛擬文件系統(tǒng)可以分為邏輯文件系統(tǒng)和設(shè)備驅(qū)動程序。邏輯文件系統(tǒng)指Linux所支持的文件系統(tǒng),如ext2,fat等,設(shè)備驅(qū)動程序指為每一種硬 件控制器所編寫的設(shè)備驅(qū)動程序模塊。
4.網(wǎng)絡(luò)接口(NET)提供了對各種網(wǎng)絡(luò)標(biāo)準(zhǔn)的存取和各種網(wǎng)絡(luò)硬件的支持。網(wǎng)絡(luò)接口可分為網(wǎng)絡(luò)協(xié)議和網(wǎng)絡(luò)驅(qū)動程序。網(wǎng)絡(luò)協(xié)議部分負(fù)責(zé)實現(xiàn)每一種可能的網(wǎng)絡(luò)傳輸協(xié)議。網(wǎng)絡(luò)設(shè)備驅(qū)動程序負(fù)責(zé)與硬件設(shè)備通訊,每一種可能的硬件設(shè)備都有相應(yīng)的設(shè)備驅(qū)動程序。
5.進程間通訊(IPC) 支持進程間各種通信機制。
處于中心位置的進程調(diào)度,所有其它的子系統(tǒng)都依賴它,因為每個子系統(tǒng)都需要掛起或恢復(fù)進程。一般情況下,當(dāng)一個進程等待硬件操作完成時,它被掛起;當(dāng)操作 真正完成時,進程被恢復(fù)執(zhí)行。例如,當(dāng)一個進程通過網(wǎng)絡(luò)發(fā)送一條消息時,網(wǎng)絡(luò)接口需要掛起發(fā)送進程,直到硬件成功地完成消息的發(fā)送,當(dāng)消息被成功的發(fā)送出 去以后,網(wǎng)絡(luò)接口給進程返回一個代碼,表示操作的成功或失敗。其他子系統(tǒng)以相似的理由依賴于進程調(diào)度。
了解了Linux內(nèi)核,以及Linux的知識才能更好的應(yīng)用Linux系統(tǒng)。
【編輯推薦】