計算機啓動後的內幕

作爲這個分類下的第一篇文章,說說計算機在開機按鈕被按下後在黑色屏幕下幹了些什麼“勾當”。我想,這應該是每一位學習操作系統的人都應該瞭解的。

 

打開計算機機電源後到計算機準備接受你發出的命令之間計算機所運行的過程稱爲引導(Boot)過程。我們知道,當關閉電源後,RAM的數據將丟失,因此,計算機不是用RAM來保持計算機的基本工作指令,而是使用另外的方法將操作系統文件加載到RAM中,再由操作系統接管對機器的控制。這是引導過程中的一個主要部分。總的說來,引導過程有下面幾個步驟:

①加電→打開電源開關,給主板和內部風扇供電。

②啓動引導程序→CPU開始執行存儲在ROM BIOS中的指令。

③開機自檢→計算機對系統的主要部件進行診斷測試。

④加載操作系統→計算機將操作系統文件從磁盤讀到RAM中。

⑤檢查配置文件,定製操作系統的運行環境→讀取配置文件,根據用戶的設置對操作系統進行定製。

⑥準備讀取命令和數據→計算機等待用戶輸入命令和數據。

 

加電

   

    當按下電源開關時,電源就開始向主板和其它設備供電,此時電壓還不太穩定,主板上的控制芯片組會向CPU發出並保持一個RESET(重置)信號,讓CPU內部自動恢復到初始狀態,但CPU在此刻不會馬上執行指令。

 

啓動引導程序

    CPU是從內存地址FFFF0H處開始執行指令的,從前面的介紹可知,這個地址實際上在系統BIOS的地址範圍內,無論是哪家公司的 BIOS,放在這裏的只是一條跳轉指令,跳到系統BIOS中真正的啓動代碼處。

 

開機自檢

       系統BIOS的啓動代碼首先要做的事情就是進行POST(Power-On Self Test,加電後自檢),POST的主要任務是檢測系統中一些關鍵設備是否存在和能否正常工作,例如內存和顯卡等設備。由於POST是最早進行的檢測過程,此時顯卡還沒有初始化,如果系統BIOS在進行POST的過程中發現了一些致命錯誤,例如沒有找到內存或者內存有問題(此時只會檢查640K常規內存),那麼系統BIOS就會直接控制喇叭發聲來報告錯誤。正常情況下,POST過程進行得非常快。

     POST結束之後,系統BIOS將查找顯卡的BIOS並調用它的初始化代碼,由顯卡BIOS來初始化顯卡,此時多數顯卡都會在屏幕上顯示出一些初始化信息,介紹生產廠商、圖形芯片類型等內容。系統BIOS接着會查找其他設備的BIOS程序,找到之後同樣要調用這些BIOS內部的初始化代碼來初始化相關的設備。  

     查找完所有其他設備的BIOS之後,系統BIOS將顯示出它自己的啓動畫面,其中包括系統BIOS的類型、序列號和版本號等內容。然後檢測和顯示CPU的類型和工作頻率,然後開始測試所有的RAM,並同時在屏幕上顯示內存測試的進度。

     內存測試通過之後,系統BIOS將開始檢測系統中安裝的一些標準硬件設備,包括硬盤、CD-ROM、串口、並口、軟驅等設備,另外絕大多數較新版本的系統BIOS在這一過程中還要自動檢測和設置內存的定時參數、硬盤參數和訪問模式等。

     標準設備檢測完畢後,系統BIOS內部支持即插即用的代碼將開始檢測和配置系統中安裝的即插即用設備,每找到一個設備之後,系統BIOS都會在屏幕上顯示出設備的名稱和型號等信息,同時爲該設備分配中斷、DMA通道和I/O端口等資源。

    經過上面幾步,所有硬件都已經檢測配置完畢,多數系統BIOS會重新清屏並在屏幕上方顯示出一個表格,其中概略地列出了系統中安裝的各種標準硬件設備,以及它們使用的資源和一些相關工作參數。

    接下來系統BIOS將根據CMOS配置更新ESCD(Extended System Configuration Data,擴展系統配置數據),ESCD是系統BIOS用來與操作系統交換硬件配置信息的一種手段。通常ESCD數據只在系統硬件配置發生改變後纔會更新,所以不是每次啓動機器時我們都能夠看到“Update ESCD… Success”這樣的信息。

 

四  加載操作系統

 

     在POST成功之後,系統BIOS的啓動代碼將進行它的最後一項工作,即根據用戶指定的啓動順序從軟盤、硬盤或光驅啓動,定位並加載操作系統文件。首先計算機查找兩個操作系統文件:Io.sys和Msdos.sys。如果這兩個文件不存在,引導過程會顯示如下信息:“Non-system disk or disk error”或者“Invalid system disk”。

 

五  檢查配置文件並定製操作系統的運行環境

 

    在引導過程初期,計算機通過檢查CMOS中的信息對硬件作初始化等工作。但具體到不同的操作系統中,計算機還需要更多的配置信息來正確使用所有的設備並創建個性化的運行環境。

    我們以DOS和Windows兩種常用的PC操作系統爲例,在DOS中我們常通過創建並編輯Autoexec.bat文件實現開機後自動執行某些命令,比如設置硬盤緩衝區大小、自動啓動漢字環境等;在另一個文件Config.sys中可以加載鼠標、光驅、聲卡等設備的DOS驅動程序等,使在DOS中可以使用這些設備。在Windows中對運行環境進行配置的方法更多,比如修改註冊表,編輯System.ini、Win.ini等系統配置文件,或將希望啓動完Windows後立即執行的內容放入Windows的啓動(Startup)組中。

 

六  準備接受數據和命令

 

     當計算機準備好接收命令時就結束了引導過程。通常在引導結束後,計算機會顯示操作系統的屏幕或提示符。如果你使用的是Windows,那麼就會看到Windows的桌面;如果使用的是DOS,就會看到操作系統提示符。 

    上面介紹的整個過程便是計算機在打開電源開關(或按Reset鍵)進行冷啓動時所要完成的引導工作。如果我們在DOS下按Ctrl+Alt+Del組合鍵(或從Windows中選擇重新啓動計算機)來進行熱啓動,那麼POST過程將被跳過去,另外檢測CPU和內存測試也不會再進行。我們可以看到,無論是冷啓動還是熱啓動,系統BIOS都一次又一次地重複進行着這些我們平時並不太注意的事情,然而正是這些單調的步驟爲我們能夠正常使用電腦提供了基礎。

 

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