Linux 系統啟動過程

2021-07-13 17:25:11 字數 1693 閱讀 6766

linux 系統啟動過程的分析

1、對於一台安裝了linux系統的主機來說,當使用者按下開機按鈕時,一共要經歷以下幾個過程:

bios自檢 ---> 系統引導 ---> 啟動核心 ---> 初始化系統。

2、bios自檢 

(1) bios(basic input/output system),又稱基本輸入輸出系統。

(2) bios 的功能由兩部分組成,分別是post碼和runtime服務。

(3) post碼:上電自檢post(power-on self test),主要負責檢測系統外圍關鍵裝置(如: cpu、記憶體、顯示卡、i/o、鍵盤滑鼠等)是否正常。

(4) runtime服務: 根據在bios中設定的系統啟動順序來搜尋用於啟動系統的驅動器,如硬碟、光碟、u盤、軟盤和網路等。以硬碟啟動為例,bios此時去讀取硬碟驅動器的第乙個扇區(mbr,512位元組),然後執行裡面的**。實際上這裡bios並不關心啟動裝置第乙個扇區中是什麼內容,它只是負責讀取該扇區內容、並執行。

(5) 至此,bios的任務就完成了,此後將系統啟動的控制權移交到mbr部分的**。

3、系統引導

(1) mbr(master boot record)主引導記錄:硬碟的0柱面、0磁頭、1扇區稱為主引導扇區。它由三個部分組成,主引導程式(bootloader)、 硬碟分割槽表dpt(disk partition table)和硬碟有效標誌(55aa) 。

(2) 通常情況下,諸如lilo、grub這些常見的引導程式都直接安裝在mbr中。我們以grub為例來分析這個引導過程。

(3) grub引導也分為兩個階段stage1階段和stage2階段

(4) stage1: stage1是直接被寫入到mbr中去的,這樣機器一啟動檢測完硬體後,就將控制權交給了grub的**。stage1的任務非常單純,僅僅是將硬碟0頭0道2扇區讀入記憶體。

(5) stage2:0頭0道2扇區的/stage2/start.s檔案,當它的內容被讀入到記憶體之後,主要作用就是負責將stage2或stage1.5從硬碟讀到記憶體中。

4、 啟動核心 

(1) 當stage2被載入記憶體執行時,它首先會去解析grub的配置檔案/boot/grub/grub.conf,然後載入核心映象到記憶體中,並將控制權轉交給核心。

(2) 核心會立即初始化系統中各裝置並做相關的配置工作,其中包括cpu、i/o、儲存裝置等,linux的裝置驅動程式的載入,有一部分驅動程式直接被編譯進核心映象中,另一部分驅動程式則是以模組的形式放在initrd(ramdisk)中。

(3) 當所需的驅動程式載入完後,會建立乙個根裝置,然後將根檔案系統rootfs以唯讀的方式掛載。這一步結束後,釋放未使用的記憶體,轉換到真正的根檔案系統上面去,同時執行/sbin/init程式,執行系統的1號程序。此後系統的控制權就全權交給/sbin/init程序了。

5、 初始化系統

(1) /sbin/init程序是系統其他所有程序的父程序,當它接管了系統的控制許可權之後,它首先會去讀取/etc/inittab檔案來執行相應的指令碼進行系統初始化,如設定鍵盤、字型,裝載模組,設定網路等。

(2) 執行系統初始化指令碼: 對系統進行基本的配置,以讀寫方式掛載根檔案系統及其它檔案系統。

(3) 執行/etc/rc.d/rc指令碼

(4) 執行使用者自定義引導程式/etc/rc.d/rc.local 。

(5) 完成了系統所有的啟動任務後,linux會啟動終端或x-window來等待使用者登入。

rhel系統啟動過程 Linux 系統啟動過程

按下系統的電源開關,過一會就可以看到linux的登入介面了。你是否曾經想過,從按下電源開關到登入介面出現,這後面到底發生了什麼?linux 系統在啟動過程中,首先是韌體 pc 上大多是 cmos bios 的物理檢測,諸如檢測系統的顯示卡 cpu 和硬碟等,可從系統按下電源後看到此檢測資訊 檢測無問...

rhel系統啟動過程 Linux系統啟動過程簡介

1 bios加電自檢 計算機啟動後,首先會進行韌體bios的自檢,即所謂的post,然後把保持在mbr主引導記錄中的主引導引導程式到記憶體中 2 載入主引導引導程式 mbr 主引導引導程式通過分割槽表查詢活動分割槽,然後將活動分割槽的次引導引導程式從裝置讀入記憶體並執行 3 載入次引導引導程式 gr...

rhel系統啟動過程 Linux 系統啟動過程

linux系統啟動過程 linux啟動時我們會看到許多啟動資訊。核心的引導。執行 init。系統初始化。建立終端 使用者登入系統。init程式的型別 sysv init,centos 5之前,配置檔案 etc inittab。upstart init,centos 6,配置檔案 etc initta...