Linux的啟動(dòng)流程如下:
1.計(jì)算機(jī)加載BISO鹃锈,它其中一項(xiàng)很重要的功能是對(duì)自身的健康進(jìn)行檢查,只有在硬件沒有問(wèn)題的情況下持隧,才會(huì)運(yùn)行軟件谒亦,這種方式叫作‘Power On SelfTest’ (加電自檢),簡(jiǎn)稱POST汗唱,如果所有的硬件都自檢通過(guò)宫莱,就會(huì)發(fā)出滴的短聲提示,說(shuō)明硬件正常哩罪。
2.加載引導(dǎo)系統(tǒng)授霸,這個(gè)動(dòng)作是BIOS設(shè)定的,BISO默認(rèn)會(huì)從硬盤上的第0柱面际插、第0磁道碘耳、第一個(gè)扇區(qū)中讀取被稱為MBR的東西,即主引導(dǎo)記錄框弛。一個(gè)扇區(qū)的大小是512個(gè)字節(jié)辛辨,存放的內(nèi)容是一段引導(dǎo)程序和分區(qū)信息,其中引導(dǎo)程序部分在用446個(gè)字節(jié)瑟枫,另外64字節(jié)是磁盤分區(qū)表DPT斗搞,最后兩個(gè)字節(jié)是MBR的結(jié)束位。由于RedHat慷妙、Centos默認(rèn)會(huì)使用Grub作為其引導(dǎo)操作系統(tǒng)的程序僻焚,而Grub本身又比較大,所以常見的方式是在MBR中寫入Grub的地址膝擂,這樣系統(tǒng)實(shí)際會(huì)載入Grub作為操作系統(tǒng)的引導(dǎo)程序虑啤。
3.運(yùn)行Grub,Grub最重要的功能就是根據(jù)其配置文件加載kernel鏡像猿挚,并運(yùn)行內(nèi)核加載后的第一個(gè)程序/sbin/init咐旧。這個(gè)程序會(huì)根據(jù)/etc/inittab來(lái)進(jìn)行初始化工作。
4.linux將根據(jù)/etc/inittab中定義的系統(tǒng)初始化配置si::sysinit:/etc/rc.d/rc.sysinit執(zhí)行/etc/rc.sysinit腳本绩蜻,該腳本將會(huì)設(shè)置系統(tǒng)變量铣墨、網(wǎng)絡(luò)配置,并啟動(dòng)swap办绝、設(shè)定/proc伊约、加載用戶自定義模塊、加載內(nèi)核設(shè)置等孕蝉。
5.根據(jù)第三步讀到的runlevel值來(lái)啟動(dòng)對(duì)應(yīng)的服務(wù)屡律,如果值為3,就會(huì)運(yùn)行/etc/rc3.d/下所有的腳本降淮,如果值是5超埋,就會(huì)運(yùn)行/etc/rc5.d/下所有腳本。
6.將運(yùn)行/etc/rc.local
7.生成終端或X window界面。