本页使用了标题或全文手工转换

BIOS

维基百科,自由的百科全书
跳到导航 跳到搜索
BIOS
Elitegroup 761GX-M754 - AMIBIOS (American Megatrends) in a Winbond W39V040APZ-5491.jpg
American Megatrends BIOS
儲存位置 PROM
EPROM
快閃記憶體
常见制造商 American Megatrends
Insyde Software
Phoenix Technologies
Byosoft

BIOSBasic Input/Output System的縮寫、中文:基本輸入輸出系統),在IBM PC相容系統上,是一种業界標准的韌體介面[1]。BIOS这个字眼是在1975年第一次由CP/M操作系统中出现。BIOS是个人电脑启动时加载的第一个软件。

BIOS用於電腦開機時執行系统各部分的自我檢測(Power On Self Test),並載入引导程序(IPL)或儲存在主記憶體的作業系統。此外,BIOS還向作業系統提供一些系统參數。系统硬體的變化是由BIOS隱藏,程序使用BIOS功能而不是直接控制硬體。現代作業系統會忽略BIOS提供的抽象層並直接控制硬體元件。

歷史[编辑]

BIOS技術源於IBM PC/AT機器的流行以及第一台由康柏公司研製生產的“克隆”PC。在PC啟動的過程中,BIOS擔負着初始化硬體,檢測硬體功能,以及啟動作業系統的責任。在早期,BIOS還提供一套運行時的服務程式給作業系統及應用程式使用(尤其是DOSWindows 3.xWindows 9x等作業系統,DOS嚴重依賴BIOS)。對於現代作業系統(如Windows NT系列和Linux)而言,BIOS的作用僅是讓作業系統的啟動程式可通過BIOS提供的運行時服務啟動作業系統,當作業系統啟動完畢後,硬體由作業系統及其驅動程式控制,作業系統的絕大部分功能與BIOS無關。BIOS程式存放於一個斷電後內容不會丟失的唯讀記憶體中;系統過電或被重置(reset)時,處理器第一條指令的位址會被定位到BIOS的記憶體中,讓初始化程式開始執行(實際上對於現在的x86平台而言,UEFI BIOS並不是開機時第一個被處理器執行的程式)。英特尔公司於2000年開發出可扩展固件接口(Extensible Firmware Interface),後被重命名為UEFI,用以规范UEFI韌體的开发。而支持EFI规范的BIOS也被称为EFI BIOS(實際上許多早期的(2011年以前)採用UEFI規範的BIOS並不支援UEFI開機,且此種BIOS常見於OEM PC)。之后为了推广EFI,业界多家著名公司共同成立统一可扩展固件接口论坛(UEFI Forum),英特尔公司将EFI 1.1规范贡献给业界,用以制订新的国际标准UEFI规范。2011年以後UEFI已在個人電腦上得到普及。

啟動電腦原理[编辑]

當電腦的電源開啟,BIOS就會由主機板上的快閃記憶體(flash memory)執行,並將晶片組和記憶體子系統初始化。BIOS會把自己從快閃記憶體中,解壓縮到系統的主記憶體;並且從那邊開始執行。PC的BIOS程式碼也包含診斷功能,以保證某些重要硬體元件,像是鍵盤磁碟(通常現代的BIOS在開機時只簡單偵測硬碟的S.M.A.R.T狀態)、輸出輸入埠等等,可以正常運作且正確地初始化。幾乎所有的BIOS都包含設定程式(BIOS Setup),可以進行BIOS的設定,如設定系統時間,設定開機裝置順序,啟用/禁用電腦的某些周邊裝置。主板的CMOS晶片(UEFI多使用NVRAM儲存UEFI設定值/硬體偵測資訊)用於儲存BIOS設定值及硬體偵測資訊。主板上的鈕扣電池用於讓CMOS晶片儲存BIOS設定值,以及電腦在斷電時依然可以讓系統時鐘運作。CMOS在沒有電力供應(CMOS所需電力由主板上的鈕扣電池提供)的情況下會遺失儲存的資料,而NVRAM則不會。

IBM技術參考手冊中曾經包含早期PC和AT BIOS的80x86原始碼。

現代的BIOS可以讓使用者選擇由哪個裝置啟動電腦,如光碟機硬碟軟碟、USB 隨身碟等等。這項功能對於安裝作業系統、以LiveCD啟動電腦、以及改變電腦找尋開機媒體的順序特別有用。

有些BIOS系統允許使用者可以選擇要載入哪個作業系統(例如從第二顆硬碟載入其他作業系統),雖然這項功能通常是由第二階段的引导程序(boot loader)來處理。

許多OEM個人電腦亦包含可在載入作業系統前執行的硬體診斷程式/系統還原程式,可在開機時按特定的按鍵執行硬體診斷程式/系統還原程式,或者在BIOS的開機選單中執行。對於早期的OEM個人電腦,診斷程式可能內建於BIOS程式,也可能內建於一個隱藏的OEM磁碟分割中;對於基於UEFI韌體的OEM個人電腦而言,診斷程式可能內建於UEFI韌體中,也可能內建於EFI系統磁碟分割(ESP)/OEM磁碟分割中。

BIOS韌體[编辑]

由於BIOS與硬體系統整合在一起(將BIOS程式指令燒錄在IC中),所以有時候也被稱為韌體。在大約1990年BIOS是保存在ROM唯讀記憶體)中而無法被修改。因為BIOS的大小和複雜程度隨時間不斷增加,而且硬體的更新速度加快,令BIOS也必須不斷更新以支援新硬體,於是BIOS就改為儲存在EEPROM或者快閃記憶體中,讓使用者可以輕易更新BIOS。然而,不適當的執行或是終止BIOS更新可能導致電腦或是裝置無法使用。為了避免BIOS損壞,有些新的主機板有備份的BIOS(「雙BIOS」主機板)。有些BIOS有「啟動區塊」(Boot Block),屬於唯讀記憶體的一部份,一開始就會被執行且無法被更新。這個程式會在執行BIOS前,驗證BIOS其他部分是否正確無誤(經由檢查碼,湊雜碼等等)。如果啟動區塊偵測到主要的BIOS已損壞,通常會自動由軟碟機等裝置啟動電腦,讓使用者可以修復或更新BIOS。一部份主機板會在確定BIOS已損壞後自動搜尋軟碟機等裝置看看有沒有完整的BIOS檔案。此時使用者可以放入儲存BIOS檔案的軟碟(例如由網上下載的更新版BIOS檔案,或是自行備份的BIOS檔案)。啟動區塊會在找到軟碟中儲存的BIOS檔案後自動嘗試更新BIOS,希望以此修復已損壞的部份。硬體製造廠商經常發出BIOS升級來更新他們的產品和修正已知的問題。現在的BIOS多內建BIOS更新程式,且在更新BIOS時會校驗BIOS檔案。

CMOS的联系和区别[编辑]

BIOS与CMOS的关系[编辑]

CMOS是计算机上另一个重要的存储器。之所以提到它,是因为BIOS程序的设置结果就保存在CMOS中。而且,在BIOS程序引导计算机启动后,计算机需要载入CMOS中的用户信息和常规设置后才能正常使用。UEFI系統則多用NVRAM儲存設定。

BIOS与CMOS的区别[编辑]

二者的区别是,BIOS是儲存在唯读记憶體(EEPROM),而CMOS为随机存储器(RAM);BIOS中存储的是程序,而CMOS中存储的是普通信息。

EEPROM即是我們常用的隨身碟和各類記憶卡,因此我們可以更新BIOS,其內容亦能在斷電後保存。

CMOS RAM的內容在斷電會消失。所以,把主機板的電池拆出,便可重置其內容。另外,拆出電池也會重設時間。UEFI多使用NVRAM儲存設定資料,主板電池沒有電量會導致時間不正確,可能不會導致UEFI設定值遺失。可通過主板的有關Jumper重設UEFI設定。

介面卡上的BIOS晶片[编辑]

一台電腦系統可以包含多個BIOS韌體晶片。開機BIOS主要是包含存取基本硬體元件(例如鍵盤軟碟機)的程式碼。額外的介面卡,例如SCSISAS硬碟介面卡、網路介面卡顯示卡等,也會包含他們自己的BIOS,補充或取代系統BIOS程式碼中有關這些硬體的部份。 為了在開機時找到這些記憶體映射的擴充唯讀記憶體,PC BIOS會掃描實體記憶體,從0xC0000到0xF0000的2KB邊界中尋找0x55 0xaa記號,接在其後的是一個位元,表示有多少個擴充唯讀記憶體的512位元區塊佔據真實記憶體空間。接著BIOS馬上跳躍到指向由擴充唯讀記憶體所接管的位址,以及利用BIOS服務來提供使用者設定介面,註冊中斷向量服務供開機後的應用程式使用,或者顯示診斷的資訊。

确切地说界面卡上的ROM不能稱之為BIOS。它只是一个程式片段,用来初始化自身所在的界面卡。比如顯示卡的VGA BIOS,網路卡上用於網路開機的PXE Option ROM,RAID卡用於在系統開機時讓BIOS識別RAID硬碟及顯示RAID卡設定訊息的Option ROM(在開機時會尋找並執行Option ROM,此時會顯示Option ROM的相關訊息,按特定熱鍵可以執行該Option ROM的設定)。UEFI Option ROM多基於UEFI Driver,可在UEFI Firmware Setup中執行UEFI Driver中的設定程式。

BIOS開機規格[编辑]

如果擴充的唯讀記憶體想要更改系統開機啟動的方式(像是從網路或是SCSI界面卡這些BIOS沒有驅動的程式的裝置)他可以使用BIOS開機規格(BBS)程式設計界面註冊他的能力來達到這點。如果一旦這些擴充的唯讀記憶體使用了BBS APIs註冊了之後,使用者可以從BIOS的使用者界面選擇這些可用的開機選項。這就是為什麼大部分的BBS相容之PC BIOS皆不會允許使用者進入BIOS使用者界面,直到這些擴充的唯讀記憶體已經完成執行且已經使用BBS API將他們自己註冊之後才行。

供應商[编辑]

目前全球只有四家獨立BIOS供應商,曾經的Award SoftwareGeneral Software均被Phoenix Technologies收購,Microid ResearchUnicore Software收購,SystemSoftInsyde Software收購。

取代[编辑]

2006年,微软曾在WinHEC會議上表示UEFI將會取代已经使用20多年的BIOS。這兩個技術都在電腦啟動的時候發出第一個命令指示,並使得操作系統能夠被順利加載。[2]

相關鏈接[编辑]

外部連結[编辑]

  1. ^ The PC Guide - System BIOS
  2. ^ 微软承诺明年年底前UEFI取代BIOS2006年