linux啟動流程 (1)

2021-07-15 09:28:28 字數 1857 閱讀 7519

啟動流程一覽:

1.載入bios的硬體資訊與進行自我測試,並依據設定取得第乙個可啟動的裝置

2.讀取並執行第乙個啟動裝置內mbr的boot loader(也就是grub,spfdisk等程式)

3.依據boot loader的設定載入kernel,kernel會開始檢測硬體與載入驅動程式

4.在硬體驅動成功後,kernel會主動呼叫init程序,而init會取得run-level資訊

5.init執行/etc/rc,d/rc.sysinit檔案來準備軟體執行的操作環境

6.init執行run-level的各個服務的啟動(script)

7.init執行/etc/rc.d/rc/local檔案

8.init執行終端機模擬程式mingetty來啟動login程序,最後等待使用者登陸。

bios與mbr:

由於我們系統軟體大多放置在硬碟,所以bios會制定起懂得裝置好讓我們可以讀取磁碟中的作業系統核心檔案,但由於不同的作業系統的檔案系統格式不同,因此我們必須要以乙個引導裝載程式來處理內盒檔案載入(load)的問題,因此這個引導程式成為boot loader,而這個程式是安裝在第乙個扇區也就是mbr中,而bios是通過硬體的int13這條通道來讀取mbr的。

boot loader功能:

安裝windows和linux雙系統時,每個系統都有自己的boot loader,而系統的mbr只有乙個,那該如何安裝呢?

其實每個系統都會保留一塊引導扇區提供作業系統安裝boot loader,也就是每個系統都會預設安裝一套boot loader到它自己的檔案系統中,在linux安裝時,可以選擇將boot loader安裝到mbr中,也可以不安裝,而在windows安裝時,缺省會主動將mbr與boot sector都裝乙份boot loader。

boot loader功能:1.提供選單:使用者可以選擇不同的啟動選項,這也是多重引導的重要功能。2.載入核心檔案:直接指向可啟動的程式區段來開始作業系統。3.轉交其他loader:將引導裝載功能轉交給其他loader負責。

在安裝雙系統時,要先安裝windows再安裝linux:

原因在於windows的loader預設不具有控制權轉交的功能,因此你不能使用windows的loader來載入linux的loader,因此要後安裝linux,保證linux的boot loader覆蓋windows的。

載入核心檢測硬體與initrd的功能

linux會將核心解壓縮到記憶體當中,並利用核心的功能,測試與驅動各個周邊裝置,核心檔案一般放置在/boot下,/boot/vmlinuz

虛擬檔案系統:initialram disk,

一般使用的檔名是/boot/initrd,這個檔案的特色在於,也能夠通過boot loader來載入到記憶體中,然後這個檔案會被解壓縮並在記憶體中**成乙個根目錄,並且能夠提供乙個可執行的程式,通過該程式來載入啟動過程中所最需要的核心模組,通過這些模組就是usb,raid等檔案系統與磁碟介面的驅動程式。

第乙個程序init:

在核心載入完畢進行完硬體檢測和驅動程式載入後,此時你的主機硬體已經準備就緒,此時核心會主動呼叫第乙個程序,/sbin/init,最主要的功能就是準備軟體執行的環境,包括系統 的主機名、網路設定等,而所有的操作都會通過init的配置檔案,/etc/inittb來規劃,而inittab內還有乙個很重要的設定選項,那就是預設的run level(啟動執行等級)。

run level 執行等級

0  halt(系統直接關機)

1 single user mode(單使用者維護模式,用在系統出問題時維護)

2 multi user without nfs

3 full multi user mode

4 unused

5 x11 載入使用x window

6 reboot 重啟

linux啟動流程

linux系統主要通過以下步驟啟動 讀取mbr的資訊,啟動boot manager windows使用ntldr作為boot manager,如果您的系統中安裝多個版本的windows,您就需要在ntldr中選擇您要進入的系統。linux通常使用功能強大,配置靈活的grub作為boot manage...

linux啟動流程

bios basic input output system mbr main boot record kernel kernel自解壓 核心初始化 核心啟動 start kernel 自身為0 程序,建立1 程序執行,直接執行在物理記憶體空間上,沒有虛位址。1 程序裝入並執行程式 sbin ini...

Linux啟動流程

下面簡單介紹下啟動,詳細的後續再補。1.載入bios的硬體資訊並進行自我測試,並依據設定取得第乙個可以啟動的裝置 2.讀取並執行第乙個裝置內的mbr master boot record,硬碟的主引導記錄 的boot loader 即是grub,spfdisk等程式 3.依據boot loader的...