歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux開機啟動詳解

Linux開機啟動詳解

日期:2017/2/28 15:48:59   编辑:Linux教程

Linux開機啟動過程指的是從打開計算機電源到顯示用戶登錄畫面的過程。

第一步:加載BIOS

BIOS(Basic Input Output System)信息存儲在計算機的主板上,需要靠主板的锂電池來維持。其中包含有CPU、硬盤、內存等計算機自身最基礎的信息。計算機加載BIOS與安裝的操作系統沒有任何關系。

第二步:讀取MBR

BIOS加載完畢後,計算機將控制權轉交給硬盤第0磁道第1扇區,也就是硬盤的MBR(Master Boot Record),俗稱主引導記錄。MBR的容量很小,一般只有512字節,裡最主要的部分是分區表和引導程序,受物理大小的限制,分區表只能存儲4個硬盤分區的信息,所以硬盤都只能有4個主要分區。引導程序指的是grub,lilo這類的東西,這些程序也可以不寫在MBR裡,而是直接寫在硬盤的數據區域裡,一般裝系統的時候會提示讓你選擇安裝的引導程序的位置。

第三步:加載引導程序(Boot Loader)

引導程序是為加載內核前的一小段程序片,幫內核准備一些環境,同時還記錄有內核的地址。如上所述,引導程序可能存在MBR裡也可能存在硬盤數據區域裡。

第四步:加載Linux內核

根據引導程序記錄的內核地址加載內核以及內核的外掛模塊,還有swap等數據。到了這一步才算是真正進入了Linux的世界。

第五步:執行init程序

1. init程序首先尋找的文件是/etc/inittab,該文件定義了系統的運行級0-6。

運行級

定義

0

關機

1

單用戶模式

2

無網絡支持的多用戶模式

3

有網絡支持的多用戶模式(標准級)

4

保留,未使用

5

有網絡支持有X-Window支持的多用戶模式

6

重新引導系統,即重啟

更多運行級的信息可以參考其他資料。

提前聲明:2和3的順序我不確定。

2. init程序接著會加載/etc/rc.d/rc0.d~rc6.d目錄下的文件,0~6的數字代表著該目錄的運行級,目錄裡面的文件如S80postfix、K45named,其中S代表start,K代表kill,數字代表順序。這些目錄下的文件即是Linux啟動項組成的一部分,主要是跟系統緊密相關的一些啟動項,建議不要隨便修改。

3. init程序接著會加載/etc/rc.d/init.d目錄下的文件,這些文件一般是使用rpm安裝的時候生成的啟動項,主要以二進制文件為主。chkconfig命令管理的就是這些文件了。www.linuxidc.com 順便提一下另一個目錄/etc/init.d,該目錄其實都是軟鏈接過去的,本質上和/etc/rc.d/init.d是同目錄。

4. 系統內置的啟動項加載完了,init程序會加載用戶自定義的啟動腳本,文件為/etc/rc.d/rc.local,打開這個文件寫著:

#This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don’t
# want to do the full Sys V style init stuff.

如果你想在系統啟動的時候加載自己寫的一些腳本,沒錯,就是它了!

第六步:運行登錄程序。

不多說,/bin/login

附上一張邏輯圖,理解更深刻些。

以上是綜合網絡資料和自己經驗的結論,有錯誤的地方麻煩大神指點一二。

Copyright © Linux教程網 All Rights Reserved