基本輸入輸出系統BIOS。基本輸入輸出系統(BasicInput Output System,BIOS)是計算機系統軟件中與硬件關系最密切的軟件之一,它包含最基本的中斷服務程序、系統設置程序、加電自檢程序和系統啟動自舉程序。BIOS程序是計算機開機加電後第一個開始執行的程序,完成硬件檢測及基本的設置功能,BIOS也為操作系統及其他自啟動程序的開發、加載提供接口,是計算機系統中最基礎的系統軟件。本文主要介紹BIOS的構成及功能。
一、 BIOS的概述
在日常使用計算機的過程中,特別是在進行安裝操作系統、設置開機密碼等操作時,經常會接觸到BIOS的相關概念。BIOS是“BasicInput Output System”的縮寫,其中文名稱為“基本輸入輸出系統”。BIOS是固化在計算機主板上的ROM芯片中的一組程序,直接對計算機系統中的輸入輸出設備進行硬件級的控制,為其他軟件程序與硬件設備之間建立連接提供基礎。BIOS是計算機加電後最先執行的程序,完成對系統的各個硬件設備初始化設置和測試等功能,以確保系統能夠正常工作。若硬件不正常則立即停止工作,並把出錯的設備信息反饋給用戶。
在計算機主板中,保存BIOS程序的ROM及其配套電路構成瞭BIOS芯片。BIOS芯片通常是一塊32針的雙列直插式長方形或正方形集成電路,表面貼有“BIOS”字樣的標簽。
BIOS芯片根據其ROM存儲器特點的不同,可以分為EPROM和EEPROM兩種類型。EPROM稱為可擦除可編程隻讀存儲器,其芯片的中央有一個透明的小窗口,通過這個小窗口可以使用紫外線光將芯片上保存的信息擦除掉,因此需要一塊不透明的標簽將已保存瞭信息的EPROM芯片的紫外線窗口封住。在向EPROM寫入內容時,必須先用紫外線擦除器將EPROM中的信息清除掉,即將EPROM中的每個信息存儲比特位單元都變成“1”狀態。而EEPROM是電可擦除可編程隻讀存儲器,在通常情況下,EEPROM與EPROM一樣也是隻讀的,當需要寫入內容時,隻要在指定的引腳加上一個高電壓即可快速地寫入或擦除。另外還有一種EEPROM就是現在主板上常見的FLASHROM——閃速存儲器,其讀寫速度更快、更可靠,而且可以用單電壓進行讀寫和編程,為便攜式設備的在線操作提供瞭極大的便利,也因此廣泛應用在計算機主板上。通常,在Intel486以及486以下檔次計算機中使用的BIOS芯片基本上采用的是EPROM芯片,而586及以上檔次計算機中使用的BIOS芯片基本上均是EEPROM。
在微型計算機主板上使用的主流BIOS產品有AMIBIOS、AwardBIOS、PhoenixBIOS三種類型。AMIBIOS是AMI公司出品的BIOS系統軟件,開發於80年代中期,早期的286、386大多采用AMIBIOS,它對各種軟、硬件的適應性好,能保證系統性能的穩定。AwardBIOS是由AwardSoftware公司開發的BIOS產品,在臺式機的主板中應用最為廣泛。PhoenixBIOS是Phoenix公司的產品,在性能和穩定性方面要優於AwardBIOS和AMIBIOS,多用於服務器系統、品牌機和筆記本電腦中。目前,Phoenix公司已經與Award公司合並,其產品Phoenix-AwardBIOS應用於各種類型的微型計算機主板系統。
二、 BIOS的組成
固化在ROM中的BIOS程序包括以下幾部分。
1.BIOS中斷服務程序
中斷是改變處理器執行指令順序的一種事件,這樣的事件與CPU芯片內外部硬件電路產生的電信號相對應。計算機在執行程序的過程中,當出現中斷時,計算機停止現行程序的運行,轉向對這些中斷事件的處理,處理結束後再返回到現行程序的間斷處。引起中斷產生的事件稱為中斷源,包括外部設備請求、發生設備故障、實時時鐘請求、數據通道中斷、軟件中斷等等。CPU對中斷的處理是通過執行中斷服務程序來實現的,中斷服務程序是系統開發者針對某種中斷事件事先編寫好的,保存在內存的某個地址空間,每個中斷服務程序的入口地址保存在中斷向量表中。中斷源在向CPU進行中斷請求時,會告知CPU一個中斷類型號n(n在x86系統中規定為0-255之間的整數),每個n是一個整型數,對應一種中斷服務程序。CPU根據中斷類型號,查找中斷向量表,找出對應的中斷服務程序的入口地址,進而調用該中斷服務程序。BIOS中包含很多中斷服務程序(或者稱為中斷服務例程),比如顯示服務(INT10H)、直接磁盤服務(INT13H)、鍵盤服務(INT16H)等等,可以為微型計算機軟件和硬件之間提供可編程接口,用於軟件功能與硬件設備實現銜接。 DOS、Windows等操作系統對軟盤、硬盤、光驅與鍵盤、顯示器等外圍設備的管理即建立在系統BIOS的基礎上。程序員也可以直接調用BIOS中斷服務程序。
2.BIOS系統設置程序
微型計算機中各部分組件的配置參數是放在一塊可讀寫的CMOSRAM芯片(簡稱CMOS)中的,它保存著系統CPU、軟/硬盤驅動器、顯示器、鍵盤等部件的配置信息。微型計算機關閉電源後,系統通過一塊後備電池向CMOS供電以保持其中的信息。如果CMOS中關於微機部件的配置信息不正確,會導致系統性能降低和零部件不能識別,並由此引發一系列的軟硬件故障。在BIOS芯片中裝有一個程序稱為系統設置程序,其作用就是用來設置CMOS中的各種參數。各品牌和型號的微型計算機對進入CMOS設置界面使用的按鍵有不同的規定。可以在開機後按下規定的按鍵進入到CMOS系統配置程序進行相關參數的設置。系統配置程序提供瞭良好的界面供用戶使用。設置CMOS參數的過程,習慣上也稱為“BIOS設置”。增加瞭新的部件或者要進行操作系統的安裝或升級,通常都需要進行BIOS設置。
在這裡要註意CMOS設置和BIOS設置概念的區別。CMOS是微型計算機主機板上一塊特殊的RAM芯片,是系統參數存放的地方,而BIOS是一組程序,存儲在主板上EPROM或EEPROM芯片中,BIOS中所包含的系統設置程序是完成參數設置的手段。因此,準確的說法應是通過BIOS中的系統設置程序對CMOS參數進行設置。
3.POST加電自檢程序
微型計算機在接通電源後,系統有一個對內部各個設備進行檢查的過程,該過程是由一個通常稱之為 POST(PowerOn Self Test, 加電自檢 ) 的程序來完成的。完整的 POST 自檢過程包括瞭 CPU 、 640K 基本內存、 1M 以上的擴展內存、 ROM 、主板、 CMOS 存儲器、串口、並口、顯示卡、硬盤及鍵盤的測試。自檢中若發現問題,系統將給出提示信息或鳴笛警告。
4.BIOS系統啟動自舉程序
BIOS系統啟動自舉程序的作用是在完成POST自檢後,按照系統CMOS設置中的啟動順序搜尋硬盤驅動器及CDROM、網絡服務器等有效的啟動驅動器,讀入操作系統引導程序,然後將系統控制權交給引導程序。操作系統從執行引導程序開始逐步完成操作系統內核的加載和初始化,完成系統的啟動。
三、 BIOS的基本功能
根據BIOS所包含的各種程序,歸納出BIOS的基本功能如下。
1.自檢及初始化
在微型計算機接通電源到操作系統開始工作之前,BIOS程序負責系統的啟動。首先是通過POST自檢程序對系統各個部件進行檢查測試,一旦在自檢中發現問題,系統將給出提示信息或鳴笛警告。其次,BIOS可以為微型計算機系統提供初始化服務,包括創建中斷向量、設置寄存器、對一些外部設備進行參數設置等等,隻有當硬件參數設置與實際微型計算機硬件相符合時,系統才能正常工作。最後,BIOS還負責操作系統的引導。BIOS先從硬盤的開始扇區讀取引導記錄,如果沒有找到,則會在顯示器上顯示沒有引導設備,如果找到引導程序會把微型計算機系統的控制權轉給引導程序,通過執行引導程序開始,逐步把操作系統裝入內存,並執行操作系統程序。
2.提供程序服務處理
BIOS是連接微型計算機系統軟件和硬件之間的“橋梁”,它可以為各種操作系統軟件和應用程序提供微型計算機輸入輸出設備的處理服務,比如磁盤的讀寫、鍵盤的讀取、將文件輸出到打印機等。為瞭完成這些操作,CPU通過執行BIOS程序直接與計算機的輸入輸出設備之間進行命令和數據的交換,通過特定的端口向輸入輸出設備發出命令,向這些外部設備傳送數據或者接收這些設備傳過來的數據,從而實現操作系統或應用程序對輸入輸出設備的硬件操作。
3.提供硬件中斷處理
因為BIOS中包含瞭各種中斷服務程序,當系統需要對不同硬件進行操作時,BIOS可以調用其中的中斷服務程序來實現微型計算機硬件設備的控制和使用。
2、3兩部分功能雖然是各自獨立,但在使用上密切相關。這兩部分分別為軟件和硬件服務,通常情況下都是聯合在一起工作,保證微型計算機系統的正常運行。
四、 微型計算機啟動的一般過程
微型計算機設備從打開電源到進入操作系統界面,在這短短的幾秒鐘時間裡,是由BIOS系統控制和配合計算機硬件進行工作的,下面來簡單分析一下微型計算機啟動的一般過程。
1.當電源開關按下時,電源開始向主板和其他設備供電,此時電壓並不穩定,於是,當主板認為電壓並沒有達到CMOS中記錄的CPU的主頻所要求的電壓時,就會向CPU發出RESET信號(復位信號),當電壓達到符合要求的穩定值時復位信號撤銷,CPU立刻從基本內存的BIOS段讀取一條跳轉指令,跳轉到BIOS的啟動代碼處,開始執行啟動系統的BIOS程序。
2.執行BIOS啟動程序會進行加電自檢POST。這個過程進行得很快,它的主要工作是檢測關鍵設備,如電源、CPU芯片、BIOS芯片、基本內存等電路是否存在,供電情況是否良好。如果自檢出現瞭問題,系統喇叭會發出警報聲(根據警報聲的長短和次數可以知道出現瞭什麼問題)。
3.如果自檢通過,系統BIOS會查找顯卡BIOS,找到後會調用顯卡BIOS的初始化代碼,此時顯示器就開始顯示瞭,BIOS會在屏幕上顯示顯卡的相關信息。
4.顯卡檢測成功後會進行其他設備的測試,通過測試後系統BIOS重新執行代碼,並顯示啟動畫面,將相關信息顯示在屏幕上,而後會進行內存測試,最後是短暫出現系統BIOS設置的提示信息,此時按下進入BIOS程序設置CMOS參數界面的按鍵,可以對系統BIOS進行需要的設置,完成後系統會重新啟動。
5.此後BIOS會檢測系統的標準硬件(如硬盤、光驅、串行和並行接口等),檢測完成後會接著檢測即插即用設備,如果有的話就為該設備分配中斷、DMA通道和I/O端口等資源,至此所有的設備都已經檢測完成瞭,比較老的計算機會進行一次清屏操作並顯示一個系統配置表,如果與上次啟動相比出現瞭硬件變動,BIOS還會更新擴展系統配置數據ESCD(ExtendedSystem Configuration Data,ESCD),它是系統BIOS用來與操作系統交換硬件配置信息的數據,這些數據被存放在CMOS中。新型機器則不再顯示這些內容瞭。
6.當上面的所有步驟都順利完成以後,BIOS將執行最後一項任務:按照用戶指定的設備順序,依次從設備中找啟動程序,以完成系統啟動。例如:我們設置的啟動順序是先從光驅啟動,然後從硬盤啟動,BIOS會先去光驅中找啟動程序,如果光驅中沒有光盤的話,系統接著從硬盤啟動。如果啟動的目的是要加載操作系統的話,接下來微型計算機將會先執行啟動程序,然後加載操作系統、完成操作系統初始化、將系統的控制權交給操作系統。