系統開機過程
首先,按下電源時開始上電自檢即POST,是根據主機闆上CMOS中
的BIOS檢查周邊的硬體裝置的健康狀況,如:主機闆,記憶體,
顯示卡,CPU等。
若正常,BIOS開始初始化,在BIOS裡有啟動次序,就是說在
系統啟動時先啟動哪些有一定的優先級,是根據BOOT SEQ
判定,然後加載對應儲存設備的MBR。
硬碟上第0磁盤的一個扇區被稱為RMB,MBR裡面最重要的是
bootloader,它是一段程式很小446個位元組,但在Linux裡開機
引導界面還有圖形還可以引導很多作業系統,那是因為MBR分
成三段,bootloader僅放第一個段,第一段什麼也不做隻用
引導第二段,在系統啟動時bootloader預設會找到辨別活動
分區的那個分區加載作業系統的核心,如果加載的到就把核心
讀到記憶體中,在記憶體中展開并讓它運作起來,核心加載後就開
始核心的初始化Kernel initalization,核心會在實體記憶體中
展開并運作起來。
若完成後bootloader把權利交給核心,此時核心就擁有整
個系統的控制權利,核心獲得控制權後加載外圍裝置的驅動并
進行初始化,但核心很小,固化的驅動很少,但磁盤啟動是必
不可少的,然後以隻讀的方式加載根檔案系統,核心加載後
運作的第一個程式是/sbin/init,該檔案會讀取/etc/inittab
檔案,并依據此檔案來初始化工作。
/etc/inittab檔案最主要的作用是設定Linux的運作級别,
有7個運作級别,
0:關機
1:單使用者模式,不需要輸入賬戶密碼,直接登入root使用者,
很多服務不啟用,一般用于修複,維護模式,一般用S或或
single辨別
2:多使用者模式,不啟動檔案服務
3:完全多使用者模式,正常模式,預設非圖形界面,可用作
預設級别
4:預留,沒有被使用
5:完全多使用者模式,正常模式,啟動圖形界面Xil
6:重新開機reboot
在等級設定完成之後,Linux系統執行第一個使用者層檔案
/etc/rc.d/rc.sysinit腳本程式,它可以設定網絡配置,設定
/proc,啟動/swap分區等,所有的啟動流程都有。/etc/rc.d/rc
會利用/etc/rc.d/rc[0-6].d/目錄下所有腳本啟動或停止服務,
K表示kill,S表示start,數字越小優先級越高
/etc/rc.local(/etc/rc.d/rc.local)提醒使用者這是最後一個
運作的腳本,例改變主機名