主頁(yè) > 知識(shí)庫(kù) > 解析Linux系統(tǒng)啟動(dòng)的引導(dǎo)流程

解析Linux系統(tǒng)啟動(dòng)的引導(dǎo)流程

熱門(mén)標(biāo)簽:高德地圖標(biāo)注技術(shù) 靈圖uu電子服務(wù)區(qū)地圖標(biāo)注 慶陽(yáng)便宜外呼系統(tǒng)報(bào)價(jià) 大眾點(diǎn)評(píng)公寓式酒店地圖標(biāo)注 辦理400電話(huà)怎么申請(qǐng) 天地圖標(biāo)注線(xiàn) 滴滴洗衣店地圖標(biāo)注 微信地圖標(biāo)注在哪 如何在地圖標(biāo)注多個(gè)位置

  LINUX是自由開(kāi)源軟件,在LINUX里一切都是文件,不管是命令,操作等等都是以文件形式保存,這篇博客來(lái)記錄LINUX啟動(dòng)時(shí)的引導(dǎo)流程是通過(guò)哪寫(xiě)文件來(lái)完成的.
     使用的LINUX版本是CentOS5,CentOS和Ubuntu都是自己聯(lián)系使用時(shí)的較理想版本.
     下面以CentOS5.5版本為例,介紹LINUX的引導(dǎo)流程,具體流程如下:

下面詳細(xì)介紹每一步:
 
    1)第一步firmware固件自檢,主要是進(jìn)行CMOS/BIOS對(duì)硬件進(jìn)行POST加電自檢,在物理層次上對(duì)硬件進(jìn)行檢測(cè)是否正常。例如檢查硬盤(pán)是否插好等。
    2)第二步讀取硬盤(pán)中MBR的BootLoader,自啟動(dòng)程序,Linux下常用的自啟動(dòng)程序是GRUB。這一步主要的功能是載入內(nèi)核。內(nèi)核存放在/boot目錄下
   3)第三步就是載入的內(nèi)核Kernel的過(guò)程,
        主要功能是:1、驅(qū)動(dòng)硬件,Kernel中含有大量驅(qū)動(dòng)程序。2、啟動(dòng)init進(jìn)程。
    4)init進(jìn)程,主要是讀取/etc/inittab文件,執(zhí)行缺省運(yùn)行級(jí)別,從而繼續(xù)引導(dǎo)。需要注意的是init京城的PID恒為1,是所有進(jìn)程的父進(jìn)程,而init進(jìn)程的負(fù)景程是0,為內(nèi)核調(diào)度器Kernel scheduler。
    5)/etc/inittab 定義了初始化的操作。

命令主要格式是:id: runlevels : action : process
    其中,如上圖紅框中所示
    1、run-levels運(yùn)行級(jí)別有7個(gè),0—6分別如下:
   0 —— halt 關(guān)機(jī)
   1 —— Single user mode 單用戶(hù)模式
   2 —— Multiuser,withoutNFS 多用戶(hù)模式但不帶網(wǎng)絡(luò)(text模式)
   3 —— Full multiuser mode 完整功能的多用戶(hù)模式(text模式)
   4 —— unused 預(yù)留
   5 —— X11 圖形化多用戶(hù)模式
   6 —— reboot 重啟
可以根據(jù)這7個(gè)運(yùn)行級(jí)別來(lái)進(jìn)行切換
命令為:查看當(dāng)前運(yùn)行級(jí)別 #runlevel、 切換運(yùn)行級(jí)別 #init[0 |1 |2 |3 |4 |5 |6]
     2、而acion中也有幾個(gè)比較重要的取值:
   1 initdefault:指定系統(tǒng)缺省啟動(dòng)的運(yùn)行級(jí)別,如上圖中標(biāo)出,通常用于修復(fù),比如我們要進(jìn)入單用戶(hù)模式,則可以將其設(shè)置為1,不可將默認(rèn)設(shè)置為0或6,否則無(wú)法啟動(dòng).
 
   2sysinit:系統(tǒng)啟動(dòng)執(zhí)行process中指定的命令

由inittab文件內(nèi)容可以看出,沒(méi)有設(shè)置運(yùn)行級(jí)別,即為無(wú)論是哪個(gè)運(yùn)行級(jí)別,都會(huì)執(zhí)行/etc/rc.d/rc.sysinit

   6)initdefault,如第五步所說(shuō)到的,主要是讀取/etc/inittab中的信息,判斷缺省的運(yùn)行級(jí)別是什么。
    7)/etc/rc.d/rc.sysinit
    在inittab文件中運(yùn)行到第21行,變是啟動(dòng)這個(gè)腳本。完成系統(tǒng)服務(wù)程序的啟動(dòng),如系統(tǒng)環(huán)境變量的設(shè)置、設(shè)置系統(tǒng)時(shí)鐘、加載字體、檢查加載文件系統(tǒng)、生成系統(tǒng)啟動(dòng)信息日志文件等。由于是基礎(chǔ)服務(wù),因?yàn)槠鋜un-level設(shè)置為空::即任何級(jí)別,action設(shè)置為sysinit。即該腳本在任何運(yùn)行級(jí)別下都要啟動(dòng),以完成基礎(chǔ)服務(wù)的啟動(dòng)
   8)基礎(chǔ)服務(wù)啟動(dòng)后,會(huì)執(zhí)行/etc/rc.d/rc這個(gè)腳本
    加載完基礎(chǔ)服務(wù)后,就要根據(jù)不同的運(yùn)行級(jí)別去啟動(dòng)相對(duì)應(yīng)的下的目錄,它的工作原理是先去判斷系統(tǒng)的默認(rèn)運(yùn)行級(jí)別即第6步中的東西,然后再執(zhí)行相應(yīng)的rcN.d目錄下的服務(wù)啟動(dòng)腳本如圖

 9)執(zhí)行/etc/rc.d/rcN.d目錄下的服務(wù)啟動(dòng)腳本

    看下該目錄下的內(nèi)容:

 其中S表示要啟動(dòng)的腳本,K表示要關(guān)閉的腳本
    數(shù)字表示啟動(dòng)順序,數(shù)值小的優(yōu)先.主要是對(duì)一些服務(wù)的管理
    在這一步里,需要說(shuō)明一下/etc/rc.d/init.d這個(gè)目錄,這個(gè)目錄里放的腳本是真正的腳本,而rcN.d里放置的都是init.d目錄里的軟連接,也就是說(shuō)所有rcN.d里的文件最終都需要來(lái)init.d里找真正的腳本
 看一下具體細(xì)節(jié):

執(zhí)行到這一步,界面就會(huì)提示輸入用戶(hù)名和密碼了,也就是說(shuō)系統(tǒng)已經(jīng)起來(lái)了,輸入用戶(hù)名和密碼的過(guò)程后面再說(shuō),這次的引導(dǎo)流程就結(jié)束了
   
    最后需要說(shuō)明的是,LINUX的引導(dǎo)流程的思想大致相同,但細(xì)節(jié)因?yàn)榘姹镜膯?wèn)題,在配置文件的名字或者是位置都不盡相同,此次我用的是CentOS版本,而Ubuntu版本是沒(méi)有inittab文件和grup.conf文件的,所以如果有興趣,大家可以按照這種思路去探索探索.

PS:關(guān)于GRUB
GNU GRUB(簡(jiǎn)稱(chēng)“GRUB”)是一個(gè)來(lái)自GNU項(xiàng)目的啟動(dòng)引導(dǎo)程序。GRUB是多啟動(dòng)規(guī)范的實(shí)現(xiàn),它允許用戶(hù)可以在計(jì)算機(jī)內(nèi)同時(shí)擁有多個(gè)操作系統(tǒng),并在計(jì)算機(jī)啟動(dòng)時(shí)選擇希望運(yùn)行的操作系統(tǒng)。GRUB可用于選擇操作系統(tǒng)分區(qū)上的不同內(nèi)核,也可用于向這些內(nèi)核傳遞啟動(dòng)參數(shù)。

GNU GRUB的前身為Grand Unified Bootloader。它主要用于類(lèi)Unix系統(tǒng);同大多Linux發(fā)行版一樣,GNU系統(tǒng)也采用GNU GRUB作為它的啟動(dòng)器。Solaris從10 1/06版開(kāi)始在x86系統(tǒng)上也采用GNU GRUB作為啟動(dòng)器。

GRUB可動(dòng)態(tài)配置;它在啟動(dòng)時(shí)加載配置信息,并允許在啟動(dòng)時(shí)修改,如選擇不同的內(nèi)核和initrd。為此目的,GRUB提供了一個(gè)簡(jiǎn)單的類(lèi)似Bash的命令行界面,它允許用戶(hù)編寫(xiě)新的啟動(dòng)順序。

GRUB非常輕便。它支持多種可執(zhí)行格式;它除了可適用于支持多啟動(dòng)的操作系統(tǒng)外,還通過(guò)鏈?zhǔn)絾?dòng)功能支持諸如Windows和OS/2之類(lèi)的不支持多啟動(dòng)的操作系統(tǒng)。GRUB支持所有的Unix文件系統(tǒng),也支持Windows適用的FAT和NTFS文件系統(tǒng),還支持LBA模式。GRUB允許用戶(hù)查看它支持的文件系統(tǒng)里文件的內(nèi)容。

GRUB具有多種用戶(hù)界面。多數(shù)Linux發(fā)行版利用GRUB對(duì)圖形界面的支持,提供了定制的帶有背景圖案的啟動(dòng)菜單,有時(shí)也支持鼠標(biāo)。通過(guò)對(duì)GRUB的文字界面的設(shè)定,可以通過(guò)串口實(shí)現(xiàn)遠(yuǎn)程終端啟動(dòng)。

GRUB可以從網(wǎng)絡(luò)上下載操作系統(tǒng)鏡像,因此可以支持無(wú)盤(pán)系統(tǒng)。GRUB支持在啟動(dòng)操作系統(tǒng)前解壓它的鏡像。

與其它啟動(dòng)器不同,GRUB可以通過(guò)GRUB提示符直接與用戶(hù)進(jìn)行交互。載入操作系統(tǒng)前,在GRUB文本模式屏幕下鍵入c鍵可以進(jìn)入GRUB命令行。在沒(méi)有作業(yè)系統(tǒng)或者有作業(yè)系統(tǒng)而沒(méi)有"menu.lst"文件的系統(tǒng)上,同樣可以進(jìn)入GRUB提示符。通過(guò)類(lèi)似bash的命令,GRUB提示符允許用戶(hù)手工啟動(dòng)任何操作系統(tǒng)。把合適的命令記錄在"menu.lst"文件里,可以自動(dòng)啟動(dòng)一個(gè)操作系統(tǒng)。

GRUB擁有豐富的終端命令,在命令行下使用這些命令,用戶(hù)可以查看硬盤(pán)分區(qū)的細(xì)節(jié),修改分區(qū)設(shè)置,臨時(shí)重新映射磁盤(pán)順序,從任何用戶(hù)定義的配置文件啟動(dòng),以及查看GRUB所支持的文件系統(tǒng)上的其它啟動(dòng)器的配置。因此,即便不知道一臺(tái)電腦上安裝了什么,也可以從外部設(shè)備啟動(dòng)一個(gè)操作系統(tǒng)。

GRUB采用滾動(dòng)屏幕選擇想要啟動(dòng)的操作系統(tǒng)。通過(guò)向"menu.lst"文件中添加相關(guān)信息,GRUB可以控制150或者更多的啟動(dòng)選項(xiàng),在啟動(dòng)時(shí)用方向鍵進(jìn)行選擇。

通過(guò)鏈?zhǔn)絾?dòng),一個(gè)啟動(dòng)器可以啟動(dòng)另一個(gè)啟動(dòng)器。GRUB通過(guò)2到3行的命令就可以從DOS、Windows、Linux、BSD和Solaris系統(tǒng)啟動(dòng)。

盡管GRUB為類(lèi)Unix系統(tǒng)進(jìn)行了編譯和打包,但也有供DOS和Windows使用的GRUB。GRUB也可以不附帶任何操作系統(tǒng)而作為孤立系統(tǒng)安裝。從CD上啟動(dòng)時(shí)運(yùn)用GRUB需要1個(gè)文件,而從軟盤(pán)、硬盤(pán)和USB設(shè)備上啟動(dòng)時(shí)需要2個(gè)文件。這些文件可以在任何支持GRUB的Linux CD上找到,用戶(hù)可以很容易的找到它們。

標(biāo)簽:海東 優(yōu)質(zhì)穩(wěn)定 臺(tái)州 玉樹(shù) 昌都 九江 哈密 孝感

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《解析Linux系統(tǒng)啟動(dòng)的引導(dǎo)流程》,本文關(guān)鍵詞  解析,Linux,系統(tǒng),啟動(dòng),的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《解析Linux系統(tǒng)啟動(dòng)的引導(dǎo)流程》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于解析Linux系統(tǒng)啟動(dòng)的引導(dǎo)流程的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章