歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux引導過程全面講解

Linux引導過程全面講解

日期:2017/2/28 17:27:44   编辑:Linux教程

 首先說明一下,這裡講的是Linux引導經過的步驟,而不涉及KERNEL引導過程的內部細節。希望本文能對初學Linux的朋友有所幫助。

  一、從BIOS到KERNEL

  計算機在接通電源之後首先由BIOS進行自檢,即進行所謂的POST(Power On Self Test),然後依據BIOS內設置的引導順序從硬盤、軟盤或CDROM中讀入“引導塊”。 如通常BIOS中設的引導順序為C在最前面,那麼就把C盤(第一個IDE硬盤)的第0柱面 ,第0頭的第1個扇區讀入內存,然後跳到那裡開始執行。這個扇區有一個大家熟悉的 名字——MBR(Main Boot Record)。換句話說,MBR裡面存放的是一小段程序以及分 區表的數據。在使用WIN9X和DOS時,這裡面放的代碼就把分區表裡標記為Active的分區的第一個扇區(一般存放著操作系統的引導代碼)讀入內存並跳轉到那裡開始執行。

  而在用LILO引導LINUX時,有兩種選擇:

  (1) 把LILO安裝在MBR。這時就由BIOS直接把LILO代碼調入內存,然後跳轉執行LILO。

  即BIOS——>LILO(在MBR中)——>KERNEL

  (2) 把LILO安裝在LINUX分區,並把LINUX分區設為Active。這時,BIOS調入的是WIN9X/DOS下的MBR代碼,然後由這段代碼來調入LILO的代碼(位於活動分區的第一個扇區)。

  即BIOS——>MBR——>LILO(在活動分區的第一個扇區)——>KERNEL

  因為在讀入及執行MBR時,操作系統還沒有起來,所以只能用BIOS提供的INT13來進行磁盤操作,而INT13只能讀寫硬盤1024柱面之前的數據,由此可知任何操作系統的引導代碼必須在1024柱面之前。對於LINUX來說,不管你使用方式(1)還是方式(2)啟動,都要保證KERNEL放在1024柱面之前。只有在KERNEL起來以後,才有讀/寫1024柱面以後數據的能力。因為LINUX不使用INT13來進行硬盤操作。從上面我們也可以看到,不存在什麼“WIN95可以,而LINUX不可以”的問題,作為操作系統要能被正確引導,在現有的BIOS下,它們的引導部分都必須在1024柱面之前。如果操作系統本身還是基於INT13

  來進行磁盤操作的話,那麼它也只能讀/寫1024柱面之前的數據。

Copyright © Linux教程網 All Rights Reserved