1. 程式人生 > >計算機啟動過程個人小記

計算機啟動過程個人小記

電腦的開機過程,從開啟電源到進入作業系統所經歷的過程。

        1、當按下電源的那一刻首先進入的是主機板的BIOS系統,這個系統存放在主機板的一個ROM裡面,屬於出廠的時候跟隨主機板燒進去的,這裡又該問了,ROM和RAM的區別,前者斷電資料依舊還在,而後者斷電之後資料就沒了。另外還有一些別的區別,不過這裡講的是ROM,現在的ROM又分了好幾種,很多的主機板都支援BIOS升級,而升級必然要重新寫入到ROM裡面,所以現在的ROM很多支援重複寫入,以往的都是一次性寫入,就像光碟一樣,有的可以重複燒錄,有的只能燒錄一次就不能用了。回到正題,當進入BIOS之後又分為三個階段:

        (1)進入BIOS之後先要做的就是自診斷程式,先對硬體配置識別然後自檢一遍,主要是看缺不缺什麼硬體配置或者那些硬體找不到或者有問題的,一般都會蜂鳴聲警報,具體的什麼問題根據蜂鳴聲判斷。然後初始化顯示卡,這個時候一般電腦上就會顯示顯示卡廠商的logo啊或者別的一些資訊,如何初始化的呢,其實顯示卡也有自己的BIOS叫做GUIB,一看就知道這起名字很專業。

        (2)做完自診斷之後,系統硬體都沒問題,那個過程是很快的,一閃而過。我相信很多人都有過裝系統的經歷,也就是進入系統boot裡面修改啟動順序,而大家有沒有想過這個boot是什麼呢,是的它就是BIOS的設定程式,但是這個設定程式並不存放在ROM裡面,因為這個設定程式是可以修改設定的,大家有沒有這種經歷,就是主機板電源沒電的時候以前主機板上所有的設定資訊都沒了恢復出廠設定,這個設定程式其實儲存在RAM中的由主機板電源供電,它還被稱作cmos設定程式,在BIOS晶片周圍的一塊晶片,主要用來存放設定資訊,進入過程也就在電腦啟動之後顯示器第一次出現圖示時按熱鍵進入。

        (3)當設定程式也載入完成之後就會去找系統,這個怎麼找呢,這就是第三個過程,系統自動裝載程式,就是讀取磁碟相對0道0扇區的程式,把它載入到記憶體中執行,同時呢把一些主要的驅動和服務也載入進去。畢竟需要和硬體打交道。至此BIOS乾的活就完了,它把控制權移交出去了。

        2、你的電腦上可能不止一塊硬碟,可能有磁碟,固態硬碟,行動硬碟,電腦怎麼知道你係統在哪裡的,這就用到你之前設定的boot的啟動順序了,電腦會根據你設定的啟動順序挨個找,而這也被成為引導順序。BIOS幹完活之後其實已經把這個工作給做完了,找到第一個硬碟讀取它的MBR主引導記錄,並放在記憶體中的指定位置中(0x7c000),然而這個MBR總共有512個位元組,分三部分組成:

(1) 第1-446位元組:呼叫作業系統的機器碼。

(2) 第447-510位元組:分割槽表(Partition table)。
(3) 第511-512位元組:主引導記錄簽名(0x55和0xAA)。

這裡主要說的是分割槽表和主引導記錄簽名:

    (4)分割槽表有64個位元組,所以規定一塊硬碟最多有四個主分割槽,每個主分割槽表由16個位元組,而有時候我們的自己電腦上的硬碟又不止四個,所以這裡又引入了擴充套件分割槽,也就是四個主分割槽裡面最多有一個擴充套件分割槽,而每個分割槽都有自己的引導記錄,在擴充套件分割槽中的引導記錄中最多能有兩個邏輯分割槽,第一個邏輯分割槽是代表自己,第二個則可以記錄下一級的邏輯分割槽,就這樣一層一層拓展直到這個邏輯分割槽表中只記錄自己一個為止,就這樣可以延伸無數多個分割槽。而正是有了主分割槽的存在,才能夠支援一個電腦裝兩個系統,但是這兩個系統必須裝在一個硬盤裡面。當找到哪個主分割槽是啟用狀態的就會把控制權給它。

    (5)主引導記錄簽名則是為了檢測這個硬碟是否可以啟動,如果檢測不到0x55和0xAA就會根據BIOS設定的啟動順序進入下一個。

3、當找到哪個分割槽表是啟用的之後,並且把控制權移交給它,這時候計算機根據分割槽表讀取啟用分割槽的第一個扇區,叫做”卷引導記錄”VBR。這個作用就是告訴電腦,作業系統在這個分割槽的哪個位置,然後就會去載入作業系統,把控制權移交給作業系統。當作業系統拿到控制權之後,首先載入的就是核心模組,通過核心模組的載入,相繼會把各個模組載入進去,然後就會進入到登入頁面,而這個核心模組的程序是主程序,別的都是在它的執行緒加載出來的。具體載入之後怎麼幹活的,請繼續關注後期更新。

後記:啟動作業系統的過程還有兩種,一種是從擴充套件分割槽的啟動,另一種是啟動器啟動,一般linux系統較多使用,window一般使用的都是主分割槽啟動的。