Linux啓動流程分析

Linux啓動流程分析

  當你按下開機鍵後,BIOS就開始進行自檢,主要是檢測硬件(CPU、內存等)是否完好。 

  等BIOS自檢完成以後,根據BIOS中的設置(也就是設置的開機啓動項),就會把系統的引導權交給相應的設備,默認是本地的硬盤。

  當引權到達本地硬盤後,首先根據硬盤第1個扇區中MBR(Master Boot Record)的設置,將系統引導權交給包含操作系統引導文件的分區,或是直接調用啓動菜單(如GRUB),並把系統引導權交給GRUB。

  當系統引導權到了GRUB以後,GRUB會顯示內核的版本給用戶(在這個地方可以做很多設置,比如說是進入到單用戶模式),如果有多個內核的版本的話,用戶是可以選擇的。然後就是加載相應的內核文件,並把系統引導權交給Linux內核。Linux內核是一個預先編譯好的一個二進制文件,介於硬件資源和系統程序之間,負責資源的分配與調度。在RHEL 5系統中Linux內核文件是:“/boot/vmlinuz-2.6.18-8.e15”。

  當系統引導權到了Linux內核後,內核首先會將系統中的/sbin/init程序加載到內存中運行(運行中的程序稱爲進程),其pid爲1。隨後就由init進程來對系統進行一系列的初始化過程:

         首先會根據init程序的配置文件/etc/inittab的設置來執行系統初始腳本/etc/rc.d/rc.sysinit,這一過程主要是設置主機名,還有就是一些網絡信息如ip等。接下來就是要根據/etc/inittab中設置的系統默認進入的系統級別,來進入到/etc/rc.d/rcX.d/目錄中,並且執行相應的腳本來啓動相關的服務。該目錄下的服務的腳本,其實就是/etc/init.d/下部分腳本的一個鏈接。

        最後,啓動終端/sbin/mingetty程序,開啓相應的終端,來等待用戶的登陸(登陸過程由/bin/login程序負責驗證)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章