Linux系統啟動過程

來源:互聯網
上載者:User

 1.BIOS:基本輸出入系統 (BIOS),記錄主板晶片集和相關設定,比如cpu與介面的通訊頻率,啟動裝置的搜尋順序,中斷資訊等。
當機器上電後,系統開始讀取BIOS,當擷取到BIOS的相關設定值,系統進行開機自我測試 (POST)。當擷取到硬體資訊的完後,主機開始嘗試由儲存媒體載入作業系統,然後由BIOS引導讀取硬碟的MBR讀取,MBR上記錄的是引導載入作業系統的grub載入程式,為什麼不直接引導載入作業系統呢?因為MBR的儲存是有限的,最多隻有512KB的空間。之後由grub或者LILO引導程式載入作業系統。要想引導程式能夠載入作業系統,引導程式必須要能夠具有識別核心的功能。
引導程式除了可以直接指定核心檔案夾來啟動外,也可以指定某個超級塊的引導載入程式接管啟動的核心載入流程,這同時說明引導程式可以存在在MBR與超級塊中,這也就多重系統能夠存在的原因。Window的引導程式強制安裝在MBR與超級塊中,linux可以選擇安裝在MBR或者超級塊中,因此要裝window與linux兩個系統的時候,需要先裝好Window然後再裝Linux,或者window的引導程式無法識別到linux的核心檔案。
引導程式引導開始讀取核心檔案(/boot/vmlinuz)後,Linux將核心解壓到主儲存空間中,利用核心的功能以及相應的驅動程式,開始測試與驅動相應的硬體裝置。在載入核心時,系統只會載入根目錄,而且是以唯讀方式載入,此外,為了某些功能可以用檔案的方式讀取,系統在啟動的時候,會建立虛擬盤(RAM DISK),這就需要使用initrd以及linuxrc,協同啟動的過程。
核心載入完畢後,系統就緒,程式開始執行。運行第一個程式/sbin/init(PID=1),該程式從/etc/inittab中擷取到運行等級(runlevel)之後,執行/etc/rc.d/rc.sysinit指令碼來設定系統的環境,在執行sysinit指令碼中,預設調用/etc/sysconfig中的檔案來進行設定系統的環境,若想看系統載入的資訊可以利用dmesg來查看。若想要載入自定的模組,則將整個模組寫入到etc/sysconfig/modules/*.modules中,該目錄下,只要檔案以.modules結尾即可。若新加了硬體,但是系統不支援需要做的事情:1.重新編譯核心,並加入最新的硬體驅動程式源碼。
2.將該硬體的驅動程式編譯為模組,在啟動時載入該模組。
當上述步驟完成後,系統順利運行,需要啟動系統相關的服務與網路服務了,這時利用由/etc/inittab擷取到的運行等級來載入相應的系統與網路服務,每個等級都對應一個啟動目錄,對應於/etc/rc.d/rc.n中,這些啟動目錄存放的是一些連結檔案,連結到init.d的指令檔中去。該目錄下的檔案都以K、S字母開頭的,S表示啟動時需要的檔案,K則表示關閉時需要的檔案。
/etc/init.d目錄放的是服務的啟動指令碼,而/etc/sysconfig則是系統設定的啟動指令碼,用來設定系統內容的。
因此當要切換不同的運行等級的時候,用init runlevel就可以切換,不同的運行等級載入的服務是不一樣的。若你隨系統的啟動執行自訂的命令,可以利用/etc/rc.d/rc.local這個檔案來執行,該檔案相當於window下的autoexec.bat檔案。
開機啟動過程:
BIOS-àMBR---àKernel code-à/sbin/init--àsysinit(期間用到/etc/sysconfig)-à/etc/rc.d/rc.n(用到/etc/initd.d)--à/etc/rc.d/rc.local 其中服務的啟動在/etc/rc.d/rc.n以及/etc/rc.d/rc.local這兩個過程中。
 
核心模組:
核心:/boot/vmlinuz
核心解壓縮所需的RAM DISK:/boot/initrd
核心模組:/lib/modules/version/kernel
核心源碼:/usr/src/linux
核心被載入到系統中,記錄的資訊。
核心版本:/proc/version
系統核心功能:/proc/sys/kernel
 
要想處理核心模組,自然要瞭解核心提供的模組之間的關聯性,linux提供了一些模組依賴性的解決方案,/lib/modules/modules.dep檔案記錄著模組之間的關聯性,利用depmod命令可以用來更新模組之間的依賴關係。利用lsmod可以查看所核心所載入的模組,modinfo可以查看模組的相應的資訊,模組的手工載入與刪除用insmod與rmmod,但是不解決依賴性關係,而才用modprobe可以載入依賴關係。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.