2011年2月8日 星期二

[學習linux kernel][part1][開機]


(零)
*BIOS就是在開機的時候,電腦系統會主動執行的第一個程式。
接下來BIOS會去分析電腦裡面有哪些儲存設備,我們以硬碟為例,BIOS會依據使用者的設定去取得能夠開機的硬碟, 並且到該硬碟裡面去讀取第一個磁區的MBR位置。 MBR這個僅有446 bytes的硬碟容量裡面會放置最基本的開機管理程式, 此時BIOS就功成圓滿,而接下來就是MBR內的開機管理程式的工作了。

簡單的說,整個開機流程到作業系統之前的動作應該是這樣的:

1.BIOS:開機主動執行的韌體,會認識第一個可開機的裝置;
2.MBR:第一個可開機裝置的第一個磁區內的主要開機記錄區塊,內含開機管理程式;
3.開機管理程式(boot loader):一支可讀取核心檔案來執行的軟體;
4.核心檔案:開始作業系統的功能...

(一)開機流程
流程彙整如下:
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 程式,最後就等待使用者登入。

(二)開機管理程式(Boot Loader)
boot loader 主要的功能如下:
1.提供選單:使用者可以選擇不同的開機項目,這也是多重開機的重要功能!
2.載入核心檔案:直接指向可開機的程式區段來開始作業系統;
3.轉交其他 loader:將開機管理功能轉交給其他 loader 負責(表示你的電腦系統裡面可能具有兩個以上的開機管理程式呢!)

沒有留言:

張貼留言