linux系統啓動流程

    在linux系統中,啓動流程主要可分爲五個階段

一、開始

二、初始化BIOS

三、加載主引導加載程序(MDR)

四、加載次引導加載程序(GRUB)

五、linux內核映像

六、init進程{rc.sysinit→rc→rc.local}

七、結束

    計算機在啓動後首先會進行BIOS的加電自檢,檢測計算機的硬件設備,然後按照CMOS的設置順序搜索處於活動狀態並且可以引導的設備。

    GRUB是linux默認的引導加載程序,其引導過程又可以分爲啓動主引導加載程序(MDR)和啓動次引導加載程序(GRUB)。所以,這個過程可以分爲兩個階段來完成。第一階段是保存在MBR中的主引導加載程序的加載,MBR中的主引導加載程序是一個512字節大小的映像,其中包含有機器的二進制代碼和一個小分區表。主引導加載程序的任務就是查找並加載保存在硬盤分區上的次引導加載程序,他通過分區表查找活動分區,然後將活動分區的次引導加載程序從設備讀入內存中並運行。然後,系統會進入引導加載程序的第二階段。第二階段的次引導加載程序也就是內核加載程序,這個階段的任務是加載linux內核。當該階段完成後,便會顯示GRUB的圖形界面,在該界面中用戶可以通過上下方向鍵選擇需要加載的操作系統以及他們的內核,並且,GRUB的配置主要通過修改/boot/grub/grub.conf文件來完成。

    當用戶選擇啓動linux操作系統後,GRUB會根據/boot/grub/grub.conf配置文件中所設置的信息,從/boot所在的分區上讀取linux內核映像,然後把內核映像加載到內存中並把控制權交給linux內核。linux內核獲得控制權後,將會按一下步驟繼續引導系統。

    1)內核映像首先會檢測系統中的硬件設備,包括內存、CPU、硬盤等,並對這些設備進行初始化並配置。

    2)內核映像是經過壓縮的。接下來他要對自身進行解壓,同時加載必要的設備驅動。

    3)初始化於文件系統相關的虛擬設備。

    4)裝載根文件系統(/),把根文件系統掛在到根目錄下。

    5)完成引導後,linux內核會在其進程空間內加載init程序,並把控制權交給init進程,由init進程繼續完成接下來的系統引導工作。

    init進程是linux系統所有進程的起點,內核在完成內核引導後,便會加載init進程,進程號爲1,init進程啓動後,會初始化操作系統,並啓動特定的運行級別下的自動運行程序。init進程對應的執行文件爲/sbin/init,他是系統中所有進程的發起者和控制者。所有的進程都是由它所衍生。

    當init進程獲得控制權後,它首先會執行/etc/rc.d/rc.sysinit腳本,根據腳本中的代碼配置環境變量、配置網絡、啓用SWAP、檢查並掛在文件系統、執行其他系統初始化所必須的步驟

   

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