啟動流程如下:
第一步:POST加電自檢
主要實作的功能是偵測各個外圍硬體設備是否存在且能夠正常運作起來,實現此自檢功能的是固化在主機板上的ROM(主要代表為CMOS)晶片上的BIOS(Basic Input/Output System)程式;
#第二步:Boot Sequence(選擇啟動設備以載入MBR)
主要實作的功能是選擇要啟動的硬體設備,選擇了之後就可以讀取這個設備上位於MBR裡頭的bootloader了。這一步驟的實作是這樣的:根據BIOS中對啟動順序的設定,BIOS自己會依序掃描各個引導設備,然後第一個被掃描到具有引導程式(bootloader)的設備就被當作要啟動的引導設備。
第三步:載入bootloader(MBR)
這一步實作起來的步驟比較多,前面的BIOS透過讀取並執行啟動裝置的MBR中的bootloader,而bootloader要實現的功能就是提供一個選單給用戶,讓用戶去選擇要啟動的系統或不同的核心版本,然後把用戶選擇的核心版本載入到RAM中的特定空間,接著在RAM中解壓縮、展開,而後把系統控制權移交給核心。
(推薦教學:centos教學)
第四個步驟:Kernel自己初始化
Kerenl在得到系統控制權之後,首先要進行自身初始化,而初始化的主要作用是:
(1)探測可識別到的所有硬體設備;
bootloader將系統控制權移交給核心就好例如後朝推翻前朝,統治者(內核)當權之後,首先要檢查一下有哪些是前朝所留下的,例如有哪些領土、人力、財力、兵力可用等等。
(2)載入硬體驅動程序,即載入真正的根檔案系統所在裝置的驅動程式(有可能會藉助於ramdisk載入驅動);
這就像統治者(內核)在得知底下存在的人力、財力之後,開始將可以「為我所用」的人力納入麾下,聽自己使喚,而不聽使喚的殺掉;
#(3)以只讀方式掛載根檔案系統;
如果有借助於ramdisk這個臨時檔案系統(虛根),則在這一步驟之後會執行根切換;否則不執行根切換。
(4)運行用戶空間的第一個應用程式:/sbin/init.
到這裡核心空間的啟動流程就結束了,而接下來是用戶空間完成後續的系統啟動流程。
第五步:init管理使用者空間服務流程
init可以理解成是核心派來管理使用者空間的使者,就好像天使代表上帝來存取人間一樣。 init這個初始化程序會根據其設定檔執行一系列操作。雖然CentOS 5、CentOS 6以及CentOS 7的init設定檔各不相同,但整體的啟動流程是不變的。
以上是centos7系統啟動流程的詳細內容。更多資訊請關注PHP中文網其他相關文章!