內(nèi)核主要負(fù)責(zé)功能
內(nèi)核主要負(fù)責(zé)以下四種功能:
- 系統(tǒng)內(nèi)存管理
- 軟件程序管理
- 硬件設(shè)備管理
- 文件系統(tǒng)管理
系統(tǒng)內(nèi)存管理
內(nèi)核通過(guò)硬盤上的存儲(chǔ)空間來(lái)實(shí)現(xiàn)虛擬內(nèi)存,這塊區(qū)域稱為交換空間(swap space)。內(nèi)存存儲(chǔ)單元塊稱作頁(yè)面(page),內(nèi)核會(huì)維護(hù)一個(gè)內(nèi)存頁(yè)面表,指明哪些頁(yè)面位于物理內(nèi)存內(nèi),哪些頁(yè)面被交換到磁盤上。即使還有可用的內(nèi)存,內(nèi)核也會(huì)自動(dòng)把一段時(shí)間未訪問(wèn)的內(nèi)存頁(yè)面復(fù)制到交換空間上(換出 swapping out)
軟件程序管理
- 內(nèi)核創(chuàng)建了第一個(gè)進(jìn)程(init進(jìn)程)來(lái)啟動(dòng)系統(tǒng)上所有其他進(jìn)程。內(nèi)核啟動(dòng)時(shí),它會(huì)將init進(jìn)程加載到虛擬內(nèi)存中。
- 有的linux使用一個(gè)表來(lái)管理開機(jī)要啟動(dòng)的進(jìn)程,通常在/etc/inittab中或/etc/init.d,開機(jī)啟動(dòng)/停止的腳本通過(guò)/etc/rcX.d目錄入口(entry)(是/etc/init.d目錄中啟動(dòng)腳本的符號(hào)鏈接)啟動(dòng),X代表優(yōu)先級(jí)。
- init系統(tǒng)采用了運(yùn)行級(jí),運(yùn)行級(jí)為1時(shí)(單用戶模式),只啟動(dòng)基本系統(tǒng)進(jìn)程以及一個(gè)控制臺(tái)終端進(jìn)程。通常用來(lái)在系統(tǒng)有問(wèn)題時(shí)進(jìn)行緊急文件系統(tǒng)維護(hù)。
硬件設(shè)備管理
- 有兩種方法用于插入設(shè)備驅(qū)動(dòng)代碼
- 編譯進(jìn)內(nèi)核的設(shè)備驅(qū)動(dòng)代碼
- 可插入內(nèi)核的設(shè)備驅(qū)動(dòng)模塊(可在硬件設(shè)備插入時(shí)將驅(qū)動(dòng)代碼寫入,拔出時(shí)刪除)
- 將硬件設(shè)備當(dāng)成特殊的文件,稱為設(shè)備文件
- 字符型設(shè)備文件(如調(diào)制解調(diào)器、終端)
- 塊設(shè)備文件(如硬盤)
- 網(wǎng)絡(luò)設(shè)備文件(如網(wǎng)卡)
- 為每個(gè)設(shè)備都創(chuàng)建一種節(jié)點(diǎn)特殊文件。與設(shè)備的所有通信都通過(guò)設(shè)備節(jié)點(diǎn)完成。每個(gè)節(jié)點(diǎn)都有唯一數(shù)值對(duì)來(lái)給Linux內(nèi)核標(biāo)識(shí)它。數(shù)值對(duì)為主設(shè)備號(hào)與次設(shè)備號(hào),主設(shè)備號(hào)相當(dāng)于組,次設(shè)備號(hào)標(biāo)識(shí)組下特定設(shè)備。
參考文章
Linux Command Line and Shell Scripting Bible
該系列其他文章請(qǐng)查看:
Linux命令行與shell腳本