Version 14 (modified by wade, 17 years ago) (diff) |
---|
Linux 開機流程 ¶
來源:Booting Linux: The History and the Future, Werner Almesberger
1 Introduction ¶
在開機程序中包兩個部份:
- 將 Linux kernel 載入記憶體中並將控制權傳給它
- 初始化作業環境
1.1 Load the kernel ¶
在 Boot loader 的第一階段,它會從外部的儲存媒體(storage media)(如硬碟)或是外部的資源(如網路上的 boot server ),取得 kernel 及額外的資料,並且將它們載入正確的記憶位置,接著開始啟動 kernel 。
當 Boot loader 執行一些附加的工作時,例如提供 kernel 一些韌體資訊或命令列,有些 Boot loader 也可以當作 Boot selector ,載入其它的作業系統。
Boot loader 的責任還有一些常見的設計將會在第2節中討論。
1.2 Up and running ¶
當 kernel 開始執行的時候,它會初使化內部的資料結構、偵測硬體並驅動個別的驅動程式,直到它準備好執行 user-space 的程式。在它可以啟動 user-space 環境之前,它需要一個 file system ,所以它必需先掛載 root file system 。
為了要掛載 Root file system , kernel 需要以下二項條件:
- 它必須知道媒體( media )位於 Root file system 的何處。
- 它必須透過驅動程式來存取媒體。
最常見的配置是,當 Root file system 是一種簡單的在 IDE 碟磁中的 ext2 分割時,root 裝置的號碼會以一個參數的型式送給 kernel。
1.3 Complications ¶
假如 kernel 沒有裝置的驅動程式,那事情將變得很複雜。這對使用 generic kernel 新安裝的 Linux 系統是很常見,因為包了一大堆驅動程式的 kernel 將會非常肥大,而且有些驅動程式在搜尋它們的裝置時還會搞亂其它硬體裝置。
這個問題已經被 initrd 機制解決,它可以在載入實際的 Root file system 前使用 RAM disk。這個 RAM disk 由 Boot loader 載入, initrd 會在第三節談到。
當initrd已被證實是非常有用的,在 initrd 完成工作後,用來戴入 Root file system 的機制設計就沒那麼令人滿意。同樣地,其它在 kernel 上的改變也使得想以「乾淨」的方法使用這些機制越來越困難。
1.4 The future ¶
在未來有三個挑戰等待著 Boot 程序:
- Boot loader接口的韌體與硬體會漸漸變得越來越多功能,
出處:Booting Linux: The History and the Future, Werner Almesberger
Attachments (3)
-
boot_process.jpg
(14.0 KB) -
added by wade 17 years ago.
boot
- boot_process2.png (17.4 KB) - added by wade 17 years ago.
- The_History_and_the_Future.ps.gz (90.0 KB) - added by wade 17 years ago.
Download all attachments as: .zip