1、BIOS加電自檢
計(jì)算機(jī)啟動(dòng)后,首先會(huì)進(jìn)行固件BIOS的自檢,即所謂的POST,然后把保持在MBR主引導(dǎo)記錄中的主引導(dǎo)加載程序到內(nèi)存中
2、加載主引導(dǎo)加載程序(MBR)
主引導(dǎo)加載程序通過(guò)分區(qū)表查找活動(dòng)分區(qū),然后將活動(dòng)分區(qū)的次引導(dǎo)加載程序從設(shè)備讀入內(nèi)存并運(yùn)行
3、加載次引導(dǎo)加載程序(GRUB)
次引導(dǎo)加載程序顯示GRUB選擇界面,根據(jù)選擇把相應(yīng)操作系統(tǒng)的內(nèi)核加載到內(nèi)存中。如果用戶不進(jìn)行選擇,那么GRUB會(huì)在5秒后自動(dòng)
啟動(dòng)grub.conf文件設(shè)置的默認(rèn)操作系統(tǒng),GRUB確定要啟動(dòng)的操作系統(tǒng)后,它就會(huì)定位相應(yīng)的內(nèi)核映像所在的/boot/vmlinuz-<內(nèi)核版本>。
GRUB會(huì)把內(nèi)存映像加載到內(nèi)存中,由于內(nèi)核映像并不是一個(gè)可執(zhí)行的內(nèi)核,而是經(jīng)過(guò)壓縮的內(nèi)核映像,GRUB需要對(duì)內(nèi)核進(jìn)行解壓,然后加載到內(nèi)存中并執(zhí)行。至此引導(dǎo)加載程序GRUB完成它的任務(wù),它會(huì)把控制權(quán)交給內(nèi)核映像,由內(nèi)核繼續(xù)完成接下來(lái)的系統(tǒng)引導(dǎo)工作。GRUB的配置主要通過(guò)修改/boot/grub/grub.conf文件來(lái)完成,介紹其中2個(gè)參數(shù):
(1)root(hdx,y):設(shè)置內(nèi)核所在的磁盤(pán)分區(qū),GRUB的硬盤(pán)表示方法和Linux是不同的。GRUB是由0開(kāi)始計(jì)數(shù),(hd0,0)則表示第一塊硬盤(pán)的第一個(gè)分區(qū),而linux中的表示則是hda1;(hd0,1)表示第一塊硬盤(pán)的第一個(gè)邏輯分區(qū),而Linux中則是hda5
(2)設(shè)置內(nèi)核文件的名稱,放在/boot文件中
4、Linux內(nèi)核映像
在內(nèi)核的引導(dǎo)過(guò)程中,會(huì)加載必要的系統(tǒng)模塊,以掛載根文件系統(tǒng)/,完成后內(nèi)核會(huì)啟動(dòng)init進(jìn)程,并把引導(dǎo)的控制器交給init進(jìn)程
5、init進(jìn)程
init進(jìn)程會(huì)掛載/etc/fstab中設(shè)置的所有文件系統(tǒng),并根據(jù)/etc/fstab文件來(lái)執(zhí)行相應(yīng)的腳本進(jìn)行系統(tǒng)初始化,如設(shè)備鍵盤(pán)、字體、設(shè)置網(wǎng)絡(luò)、啟用應(yīng)用程序等。init進(jìn)程是linux所有進(jìn)程的起點(diǎn),內(nèi)核在完成內(nèi)核引導(dǎo)后,便會(huì)加載init進(jìn)程,其進(jìn)程號(hào)是1,init進(jìn)程啟動(dòng)后,會(huì)初始化操作系統(tǒng),并啟動(dòng)特定的運(yùn)行級(jí)別(Runlevel)下的自動(dòng)運(yùn)行程序。用戶可以通過(guò)更改相關(guān)配置文件或使用圖形化配置工具服務(wù)配置,自定義需要在系統(tǒng)啟動(dòng)時(shí)自動(dòng)運(yùn)行的服務(wù)。
內(nèi)核映像在完成引導(dǎo)后,便會(huì)啟動(dòng)init進(jìn)程。init進(jìn)程對(duì)應(yīng)的執(zhí)行文件為/sbin/init,他的是系統(tǒng)中所有進(jìn)程的發(fā)起者和控制者,所有的進(jìn)程都是由它所衍生。如果init進(jìn)程出現(xiàn)問(wèn)題,系統(tǒng)的其他進(jìn)程也會(huì)隨之而受影響,由于是系統(tǒng)中第一個(gè)運(yùn)行的進(jìn)程,所有init進(jìn)程的進(jìn)程號(hào)永遠(yuǎn)是1。
init進(jìn)程主要有兩作用
(1)作為所用進(jìn)程的父進(jìn)程參照對(duì)象
(2)運(yùn)行不同級(jí)別的程序:init進(jìn)程另一個(gè)作用就是初始化操作系統(tǒng),在進(jìn)入特定的運(yùn)行級(jí)別