資源描述:
《linux系統(tǒng)啟動(dòng)深度剖析(二)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、Linux系統(tǒng)啟動(dòng)過程前面我們已經(jīng)剖析了內(nèi)核引導(dǎo)和運(yùn)行init兩個(gè)部分,后面還有更重要的工作要做就是系統(tǒng)的初始化、對(duì)應(yīng)級(jí)別的守護(hù)程序啟動(dòng)、建立終端、和完成登陸。這樣就會(huì)完成一個(gè)完整的Linux系統(tǒng)啟動(dòng)過程。第三部分:系統(tǒng)初始化在init的配置文件中有這么一行:si::sysinit:/etc/rc.d/rc.sysinit它調(diào)用執(zhí)行了/etc/rc.d/rc.sysinit,而rc.sysinit是一個(gè)bashshell的腳本,它主要是完成一些系統(tǒng)初始化的工作,rc.sysinit是每一個(gè)運(yùn)行級(jí)別都要首
2、先運(yùn)行的重要腳本。它主要完成的工作有:激活交換分區(qū),檢查磁盤,加載硬件模塊以及其它一些需要優(yōu)先執(zhí)行任務(wù)。rc.sysinit約有850多行,但是每個(gè)單一的功能還是比較簡(jiǎn)單,而且?guī)в凶⑨?,建議有興趣的用戶可以自行閱讀自己機(jī)器上的該文件,以了解系統(tǒng)初始化所詳細(xì)情況。由于此文件較長(zhǎng),所以不在本文中列出來,也不做具體的介紹。當(dāng)rc.sysinit程序執(zhí)行完畢后,將返回init繼續(xù)下一步。第四部分:?jiǎn)?dòng)對(duì)應(yīng)運(yùn)行級(jí)別的守護(hù)進(jìn)程在rc.sysinit執(zhí)行后,將返回init繼續(xù)其它的動(dòng)作,通常接下來會(huì)執(zhí)行到/etc/r
3、c.d/rc程序。以運(yùn)行級(jí)別3為例,init將執(zhí)行配置文件inittab中的以下這行:l5:5:wait:/etc/rc.d/rc5這一行表示以5為參數(shù)運(yùn)行/etc/rc.d/rc,/etc/rc.d/rc是一個(gè)Shell腳本,它接受5作為參數(shù),去執(zhí)行/etc/rc.d/rc5.d/目錄下的所有的rc啟動(dòng)腳本,/etc/rc.d/rc5.d/目錄中的這些啟動(dòng)腳本實(shí)際上都是一些鏈接文件,而不是真正的rc啟動(dòng)腳本,真正的rc啟動(dòng)腳本實(shí)際上都是放在/etc/rc.d/init.d/目錄下。而這些rc啟動(dòng)腳本有
4、著類似的用法,它們一般能接受start、stop、restart、status等參數(shù)。/etc/rc.d/rc5.d/中的rc啟動(dòng)腳本通常是K或S開頭的鏈接文件,對(duì)于以以S開頭的啟動(dòng)腳本,將以start參數(shù)來運(yùn)行。而如果發(fā)現(xiàn)存在相應(yīng)的腳本也存在K打頭的鏈接,而且已經(jīng)處于運(yùn)行態(tài)了(以/var/lock/subsys/下的文件作為標(biāo)志),則將首先以stop為參數(shù)停止這些已經(jīng)啟動(dòng)了的守護(hù)進(jìn)程,然后再重新運(yùn)行。這樣做是為了保證是當(dāng)init改變運(yùn)行級(jí)別時(shí),所有相關(guān)的守護(hù)進(jìn)程都將重啟。至于在每個(gè)運(yùn)行級(jí)中將運(yùn)行哪些守
5、護(hù)進(jìn)程,用戶可以通過chkconfig或setup中的"SystemServices"來自行設(shè)定。常見的守護(hù)進(jìn)程有:amd:自動(dòng)安裝NFS守護(hù)進(jìn)程apmd:高級(jí)電源管理守護(hù)進(jìn)程arpwatch:記錄日志并構(gòu)建一個(gè)在LAN接口上看到的以太網(wǎng)地址和IP地址對(duì)數(shù)據(jù)庫(kù)autofs:自動(dòng)安裝管理進(jìn)程automount,與NFS相關(guān),依賴于NIScrond:Linux下的計(jì)劃任務(wù)的守護(hù)進(jìn)程named:DNS服務(wù)器netfs:安裝NFS、Samba和NetWare網(wǎng)絡(luò)文件系統(tǒng)network:激活已配置網(wǎng)絡(luò)接口的腳本程
6、序nfs:打開NFS服務(wù)portmap:RPCportmap管理器,它管理基于RPC服務(wù)的連接sendmail:郵件服務(wù)器sendmailsmb:Samba文件共享/打印服務(wù)syslog:一個(gè)讓系統(tǒng)引導(dǎo)時(shí)起動(dòng)syslog和klogd系統(tǒng)日志守候進(jìn)程的腳本xfs:XWindow字型服務(wù)器,為本地和遠(yuǎn)程X服務(wù)器提供字型集Xinetd:支持多種網(wǎng)絡(luò)服務(wù)的核心守護(hù)進(jìn)程,可以管理wuftp、sshd、telnet等服務(wù)這些守護(hù)進(jìn)程也啟動(dòng)完成了,rc程序也就執(zhí)行完了,然后又將返回init繼續(xù)下一步。第五部分:建立終
7、端rc執(zhí)行完畢后,返回init。這時(shí)基本系統(tǒng)環(huán)境已經(jīng)設(shè)置好了,各種守護(hù)進(jìn)程也已經(jīng)啟動(dòng)了。init接下來會(huì)打開6個(gè)終端,以便用戶登錄系統(tǒng)。通過按Alt+Fn(n對(duì)應(yīng)1-6)可以在這6個(gè)終端中切換。在inittab中的以下6行就是定義了6個(gè)終端:1:2345:respawn:/sbin/mingettytty12:2345:respawn:/sbin/mingettytty23:2345:respawn:/sbin/mingettytty34:2345:respawn:/sbin/mingettytty45
8、:2345:respawn:/sbin/mingettytty56:2345:respawn:/sbin/mingettytty6 從上面可以看出在2、3、4、5的運(yùn)行級(jí)別中都將以respawn方式運(yùn)行mingetty程序,mingetty程序能打開終端、設(shè)置模式。同時(shí)它會(huì)顯示一個(gè)文本登錄界面,這個(gè)界面就是我們經(jīng)常看到的登錄界面,在這個(gè)登錄界面中會(huì)提示用戶輸入用戶名,而用戶輸入的用戶將作為參數(shù)傳給login程序來驗(yàn)證用戶的身份。第六部分:登