linux系統開機流程詳解

2021-09-26 10:00:15 字數 1372 閱讀 3347

今天,我們主要來談談計算機系統的啟動流程

1、bios啟動

bios是寫入到主機板上的乙個韌體(韌體就是寫入到硬體上的乙個軟體程式)。開機的時候,bios是計算機系統會主動執行的第乙個程式。bios主要的乙個功能就是儲存了磁碟的啟動順序,它會按照啟動順序去讀取能夠開機的硬碟的第乙個扇區的mbr資訊

2、讀取mbr

磁碟的第乙個扇區(大小為512bytes)主要記錄兩個資訊:主引導分割槽(mbr)和分割槽表。其中,mbr大小為446bytes用於儲存引導引導程式(bootloader),分割槽表大小為64bytes記錄硬碟分割槽狀態,最後2bytes用於mbr的有效性檢查。bios啟動的目的就是讓mbr中引導引導程式啟動

3、引導引導程式(boot loader)

目前常用的引導引導程式就是grub,它是一支可讀取核心檔案並讓其執行的軟體。grub程式會根據/boot/grub/grub.conf檔案查詢kernel的資訊,然後開始載入kernel程式,當kernel程式被檢測並在載入到記憶體中,grub就將控制權交接給了kernel程式

4、kernel載入

核心(kernel)是linux系統最主要的程式,它的作用就是進行硬體檢測並載入驅動程式。由於kernel為了精簡且以壓縮的檔案形式儲存在硬碟中,故只保留了最基本的模組,並沒有各種硬體的驅動程式,也就無法識rootfs所在的裝置,故產生了initrd這個檔案。該檔案是在安裝系統時產生的,是乙個臨時的根檔案系統(rootfs)。它裝載了必要的驅動模組,當kernel啟動時,可以從initrd檔案中裝載驅動模組,直到掛載真正的rootfs,然後將initrd從記憶體中移除。硬體驅動成功後,kernel會主動呼叫init程序

5、啟動init程序

init是系統啟動的第乙個程序,是所有程序的父程序,打個比喻它就是女媧的級別,所有的人類(程序)都是它造出來的,所有幹這行的同學們在kill程序的時候千萬不要執行kill -9 init,你乾掉了造物主,你說會是什麼後果,那就是自己作死。init會根據/etc/inittab中設定的動作進行指令碼的執行,init執行第乙個指令碼/etc/rc.d/rc.sysinit來準備軟體執行的操作環境(如網路、時區、設定主機名,掛載檔案系統等)。系統的操作環境準備好之後,接下來就是系統服務的啟動

6、根據run-level 進行服務啟動

7、使用者自定義開機啟動程式

完成預設runlevel指定的各項服務的啟動後,系統最後會自動執行/etc/rc.d/rc.local這個指令碼(該指令碼的作用請看大標題),至此,系統啟動完成,你可以看到登入介面啦

——我今天才知道,我之所以漂泊就是我還沒有成為大俠

LINUX開機流程詳解

from 在了解啟動流程之前,我們應該先知道系統的幾個重要指令碼和配置檔案,他們對應的路徑為 1.sbin init 2.etc inittab 3.etc rc.d rc.sysinit 4.etc rc.d rcn.d 這是幾個資料夾n代表數字1,2,3,4.5.etc fstab 檔案介紹 1...

linux開機流程詳解

載入 bios 的硬體資訊並進行自我測試,並依據謳定取得第乙個可開機的裝置 讀取並執行第乙個開機裝置內 mbr 的 boot loader 亦即是 grub,spfdisk 等程式 依據 boot loader 的設定載入 kernel kernel 會開始偵測硬體與載入驅動程式 在硬體驅動成功後,...

Linux開機流程

1,bios自檢,檢測硬體,決定啟動介質 bios為寫入到主機板上的一塊快閃儲存器或eeprom的程式,它在開機時候執行,並通過bios程式去載入cmos的資訊,並通過cmos內的設定取得主機的各項硬體配置,bios程式也可以修改cmos當中的引數,一般使用del按鍵進入bios設定介面。2,從硬碟...