linux作業系統的啟動過程一般分為四個階段:
bios啟動引導階段
系統上電開機後,主機板
bios
執行post
(power on self test
)**,檢測系統外圍一些裝置(如:
cpu、記憶體、顯示卡、
i/o、鍵盤滑鼠等),
當裝置檢測通過後,系統開始啟動自舉程式,根據在
bios
中設定的啟動順序搜尋啟動驅動器(比如硬碟、光碟機、網路伺服器等),並獲取第乙個啟動裝置的代號,讀取第乙個啟動裝置的mbr的引導引導程式(即lilo、grub、spfdisk等)的啟動資訊,從
mbr中裝載啟動引導管理器(
grub
)並執行該啟動引導管理
。至此進入
grub
啟動引導階段。
grub啟動引導階段
主要操作是裝載
stage1
,裝載stage1.5
,裝載stage2。
然後讀取
/boot/grub.conf
檔案顯示啟動選單,裝載所選的
kernel
和initrd
檔案到記憶體中。
bios
通過下面兩種方法之一
來傳遞引導記錄:
上面兩種方法比較後,無論上面的哪種情況中,
ipl都是
mbr的一部分,都需要
mbr的參與。
ipl是grub
階段的第乙個部分(
stage1
),他的作用就是定位和裝載
grub
的第二個部分(
stage2
);因為
stage1
沒有檔案系統識別能力,所以具有檔案系統識別能力的
stage1.5
成為stage1
和stage2
之間連線的橋梁,這樣grub才有能力去訪問/boot分割槽/boot/grub目錄下的 stage2檔案,將stage2載入記憶體並執行。
stage2
對啟動系統起關鍵作用,該部分提供了
grub
啟動選單和互動式的
grub
的shell。
啟動選單在啟動時候通過
/boot/grub/grub.conf
檔案所定義的內容生成。
在啟動選單中選擇了
kernel
之後,grub
會負責解壓和裝載
kernel image
並且將initrd
裝載到記憶體中,最後
grub
初始化kernel
啟動**,完成之後後續的引導權
,被移交給
kernel。
核心階段
作業系統的核心是放在檔案系統中的,要想正確載入核心就必須提前識別檔案系統。
要想載入linux的核心就必須能識別linux的檔案系統,核心檔案一般會放在/boot/vmlinuz。
在系統啟動的控制權移交給
kernel後,
kernel
會立即初始化系統中各裝置並做相關配置工作,其中包括
cpu、
i/o、儲存裝置等。
配置過程中進行裝置驅動載入的時候,一部分裝置的驅動編入
linux kernel
中,kernel
會呼叫這部分驅動初始化相關裝置;另外有一部分裝置驅動並沒有編入
kernel
,而是作為模組形式放在
initrd中。
initrd
是一種基於記憶體的檔案系統,啟動過程中,系統在訪問真正的根檔案系統時,會先訪問
initrd
檔案系統。 將
initrd
中的內容開啟來看,會發現有
bin、
dev、
etc、
lib、
proc
、sys
、sysroot
、init
等檔案(包含目錄)。
initrd
中的內容釋放到
rootfs
(根檔案系統)
中後,kernel
會執行其中的
init
檔案。
這個時候核心的控制權移交給
init
檔案處理。
驅動載入後,會建立乙個根裝置,然後將根檔案系統以唯讀的方式掛載。
這步結束後釋放未使用記憶體並執行
switch root
,轉換到真正的根上面去,同時執行
/sbin/init
程式,開啟系統的
1號程序,此後系統啟動的控制權移交給
init
程序。
init初始化階段
在核心載入完成之後,系統就準備好了,等待程式的執行。整個linux系統中,第乙個執行的程式就是「/sbin/init」。
具體步驟如下:
執行系統初始化指令碼
(/etc/rc.d/rc.sysinit)
,對系統進行基本的配置,以讀寫方式掛載根檔案系統及其它檔案系統,到此系統基本算執行起來了;通過
讀取配置檔案
/etc/inittab
確定啟動後進入的執行級別,在選定執行級別後進入相應的「/etc/rc.d/rcx.d」目錄中執行相應的服務內容,該目錄下的內容全部都是以s或k開頭的鏈結檔案,這些鏈結檔案都鏈結到「/etc/rc.d/init.d」目錄下的各種shell指令碼,通過執行這些shell指令碼,完成了系統所有的啟動任務,linux會啟動終端或x-window來等待使用者登入。
linux
系統啟動流程圖及其相關檔案
系統執行流程圖
作業系統的啟動過程
一 計算機的工作模式 實模式 計算機剛剛加電啟動時進入的模式 程式按照8086定址方式訪問0h ffffh空間 1mb cpu單任務執行 實模式訪問的1mb空間 00000 9ffff 640k 基本記憶體 a0000 bffff 128k 顯示卡視訊記憶體 儲存顯示卡將要處理的資料 c0000 f...
作業系統啟動過程
當我們按下開機鍵後,作業系統究竟是如何跑起來的?這個過程詳細說來很複雜。這裡只簡單描述一下。當機器剛從生產線上下線的時候,裡面沒有作業系統,稱之為裸機。裸機什麼事都幹不了,於是需要裝上作業系統。機器中固化了乙個用於讀取磁碟或者其他裝置的程式,於是當你在啟動時按下f2鍵,就會執行這個程式安裝作業系統。...
作業系統啟動過程
計算機的儲存器分為 大容量儲存器 通常為硬碟 和 主儲存器 即 記憶體 操作 系統 如 windows unix linux mac os 安裝在大容量儲存器上,而主儲存器又分為兩部分 能夠永久儲存資料的rom read only memory 和易失性儲存器部分 即在關機後資料全部丟失 bios ...