詳細瞭解計算機的啓動過程

出處:http://publish.it168.com/2002/0414/20020414006001.shtml

電腦的啓動過程中有一個非常完善的硬件自檢機制。對於採用Award BIOS的電腦來說,它在上電自檢那短暫的幾秒鐘裏,就可以完成100多個檢測步驟。首先我們先來了解兩個基本概念:第一個是BIOS(基本輸入輸出系統),BIOS實際上是被“固化”在計算機硬中、直接與硬件打交道的一組程序,計算機的啓動過程是在主板BIOS的控制下進行的,我們也常把它稱做“系統BIOS”。第二個基本概念是內存地址,通常計算機中安裝有32M、64M、或128M等內存,爲了方便於CPU訪問,這些內存的每一個字節都被賦予了一個地址。32M的地址範圍用十六進制數表示就是0~1FFFFFFH,其中0~FFFFFH的低端1MB內存非常特殊,因爲我們使用的32位處理器能夠直接訪問的內存最大隻有1MB,因此這1MB中的低端640KB被稱爲基本內存,而A0000H~BFFFFH要保留給顯示卡的顯存使用,C000H~FFFFFH則被保留給BIOS使用,其中系統BIOS一般佔用最後的64KB或更多一點的空間,顯示卡BIOS一般在C000H~C7FFFH處,IDE控制器的BIOS在C8000H~CBFFFH處,下面我們就來仔細瞭解一下計算機的啓動過程。
  
   當我們按下電源開關時,電源就開始向主板和其它設備供電,此時電壓還是不穩定,主板控制芯片組會向CPU發出一個RESET信號,讓CPU初始化。當電源開始穩定供電後,芯片組便撤去RESET信號,CPU馬上就從地址FFFF0H處開始執行指令,這個地址在系統BIOS的地址範圍內,無論是AWARD BIOS還是AMI BIOS,放在這裏的只是一條跳線指令,跳到系統BIOS中真正的啓動代碼處。
  
   在這一步中,系統BIOS的啓動代碼首先要做的事情就是進行POST(Power On Self Test,加電自檢),POST的主要任務是檢測系統中的一些關鍵設備是否存在和能否正常工作,如內存和顯卡等。由於POST的檢測過程在顯示卡初始化之前,因此如果在POST 的過程中發現了一些致命錯誤,如沒有找到內存或者內存有問題時(POST過程只檢查640K常規內存),是無法在屏幕上顯示出來的,這時系統POST可通過喇叭發聲來報告錯誤情況,聲音繁榮長短和次數代表了錯誤的類型。
  
   接下來系統BIOS將檢查顯示卡的BIOS,存放顯示卡BIOS的ROM芯片的起始地址通常在C0000H處,系統BIOS找到顯卡BIOS之後調用它的初始化代碼,由顯卡BIOS找來完成顯示卡的初始化。大多數顯示卡在這個過程通常會在屏幕上顯示出一些顯示卡的信息。如生產廠商、圖形芯片類型、顯存容量等內容,這就是我們開機看到的第一個畫面,不過這個畫面幾乎是一閃而過的,也有的顯卡BIOS使用了延時功能,以便用戶可以看清楚顯示的信息。接着系統BIOS會找到之後同樣要調用這些BIOS內部的初始化代碼來初始化這些設備。
  
   查找完所有其它設備的BIOS之後,系統BIOS將顯示它自己的啓動畫面,其中包括有系統BIOS的類型、序列號和版本號等內容。同時屏幕低端左下角會出現主板信息代碼,包括BIOS的日期、主板芯片組型號、主板的識別編碼及廠家的代碼等。
  
   接着系統BIOS將檢測CPU的類型和工作頻率,並將檢測結果顯示在屏幕上,這就是我們開機看到的CPU類型和主頻。接下來系統BIOS開始測試主機所有的內存容量,並同時在屏幕上顯示內存測試數值,就是大家所熟悉的屏幕上半部分那個飛速翻滾的內存計數器。
  
   內存檢測通過之後,系統BIOS將開始檢測系統中安裝的一些標準硬件設備,這些設備包括:硬盤、CD-ROM、軟驅、串行接口和並行接口等連接的設備,另外絕大多數新版本的系統BIOS在這一過程中還要自動檢測和設備內存的相關參數、硬盤參數和訪問模式等。
  
   標準設備檢測完畢後,系統BIOS內部的支持即插即用的代碼將開始檢測和配置系統中安裝的即插即用設備。每找到一個設備之後,系統BIOS都會在屏幕上顯示出設備的名稱和型號等信息,同時爲該設備分配中斷、DMA通道和I/O端口等資源。
  
   到這一步爲止,所有硬件都已經檢測配置完畢了,系統BIOS會重新清屏並在屏幕上方顯示出一個系統配置表,其中簡略地列出系統安裝的各種標準硬件設備,以及它們使用的資源和一些相關工作參數。
  
   接下來系統BIOS將更新ESCD(Extended System Configuration Data,擴展系統配置數據)。ESCD是系統BIOS用來與操作系統交換硬件配置信息的數據,這些數據被存放在CMOS中。通常ESCD數據只在系統硬件配置發生改變後纔會進行更新,所以不是每次啓動機器時我們都能夠看到“Updata ESCD…Success”這樣的信息。不過,某些主板的系統BIOS在保存ESCD數據時使用了與WINDOWS 9X不相同得數據格式,於是WINDOWS 9X在它自己的啓動過程中會把ESCD數據轉換成自己的格式,但在下一次啓動機器時,系統BIOS又會把ESCD的數據格式改回來,如此循環,將會導致在每次啓動機器時,系統BIOS都要更新一遍ESCD,這就是爲什麼有的計算機在每次啓動時都會顯示:“Updata ESCD…Success”信息的原因。
  
   ESCD數據更新完畢後,系統BIOS的啓動代碼將進行它的最後一項工作,既根據用戶指定的啓動順序從軟盤、硬盤或光驅啓動。以從C盤啓動爲例,系統BIOS將讀取並執行這個活動分區的分區記錄,主引導記錄接着從分區表中找到第一個活動分區,然後讀取並執行這個活動分區的分區引導記錄。而分區引導記錄將負責讀取並執行IO.SYS,這是DOS和WINDOWS 9X最基本的系統文件。WINDOWS 9X的IO.SYS首先要初始化一些重要的系統數據,然後就顯示出我們熟悉的藍天白雲,在這幅畫面之下,WINDOWS將繼續進行DOS部分的引導和初始化工作。
  
   上面介紹的便是計算機在打開電源開關(或按RESET鍵)將進行冷啓動時所要完成的各種初始化工作,如果我們在DOS下按Ctrl+Alt+Del組合鍵(或從WINDOWS中選擇重起計算機)來進行熱啓動,那麼POST過程將被跳過去,另外檢測CPU和內存測試也不會再進行。無論是冷啓動還是熱啓動,系統BIOS都會重複上面的硬件檢測和引導過程,正是這個不起眼的過程保證了我們可以正常的啓動和使用計算機。 
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章