簡單的說,系統的啟動過程如下:
1.開機自檢:
按下電源按鍵后,計算機硬件會主動讀取BIOS加載硬件信息并進行硬件的自我測試,然后系統會根據BIOS里的啟動順序讀取第一個可啟動的設備,從而移交系統控制權,大多數時候移交給本機硬盤。
2.MBR引導
當從本機硬盤中啟動系統時,首先根據硬盤第一個扇區中MBR(Master Boot Record,主引導記錄)的設置,將系統的控制權傳遞給包含操作系統引導文件的分區,或者直接根據
MBR記錄中的引導信息調用啟動菜單(如GRUB)。
3.GRUB菜單
啟動過程中,每個引導裝載程序使用的軟件可能都不一樣。目前各大linux distributions的主流為grub,但是早期默認使用LILO,包括現在有很多朋友喜歡使用spfdisk。當系統
控制權交給grub后,顯示啟動菜單供用戶選擇,并根據所選項(或者默認值)加載Linux內核文件,然后將系統控制權轉交給內核。
4.加載Linux內核
linux內核是一個預先編譯好的特殊二進制文件,介于各種硬件資源和系統程序之間,負責資源分配和調度。當加載內核到內存中,內核會檢測所有硬件信息和加載適當的驅動
程序來使這部主機可以開始運行.。
5.init進程初始化
當內核檢測和加載驅動成功后,將主動調用'/sbin/int'程序到內存中運行,(運行中的程序叫進程)init進程則負責完成一系列的系統初始化過程,最后等待用戶登錄。
(1)init會取得run-level信息;
(2)init執行/etc/rc.d/rc.sysinit文件來準備軟件執行的操作環境(如網絡、時區等);
(3)init執行run-level的各個服務的啟動(script方式);
(4)init執行/etc/rc.d/rc.local文件;
(5)init執行終端機模擬程序mingetty來啟動login進程,最后等待用戶登錄。