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

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是个人电脑启动时加载的第一个软件(實際上自Intel Haswell平台以後,UEFI並不是系統開機時第一個被載入的軟體)。

BIOS用於電腦/PC平台開機時執行系统各部分的自我檢測(Power On Self Test),並載入引导程序(IPL)或儲存在儲存裝置(Storage Device)上的作業系統。在MS-DOS等舊式16位元作業系統中,DOS及DOS程式通過BIOS提供的BIOS中斷呼叫以控制硬件。現代作業系統會忽略BIOS提供的BIOS中斷呼叫並直接控制硬體。

歷史[编辑]

BIOS最早可追溯到1970年代CP/M作業系統。隨後IBM發明了IBM PC,但是IBM當時並不開放BIOS,給IBM PC的複製(Clone)帶來了麻煩。隨後COMPAQ複製了IBM PC。Phoenix Technologies等公司亦複製了IBM PC的BIOS部件,可為當時的IBM PC相容機廠商提供BIOS。在PC啟動的過程中,BIOS擔負着檢測、初始化硬體的功能,以及啟動作業系統的責任。在早期,BIOS還提供一套稱為BIOS中斷呼叫的運行時的服務程式給作業系統及應用程式使用(尤其是DOSWindows 3.x等16位元作業系統,因為DOS嚴重依賴BIOS)。對於現代作業系統(如Windows NT系列和Linux)而言,BIOS的作用是初始化硬件和啟動作業系統,當作業系統啟動完畢後,硬體由作業系統及其驅動程式控制,但是BIOS仍然通過SMM負責ACPI電源管理等功能。BIOS程式存放於一個斷電後內容不會丟失的唯讀記憶體中;系統過電或被重置(reset)時,處理器第一條指令的位址會被定位到BIOS的記憶體中,讓初始化程式開始執行(實際上對於現在的x86平台而言,UEFI並不是開機時第一個被處理器執行的程式)。英特尔公司於2000年開發出可扩展固件接口(Extensible Firmware Interface),後被重命名為UEFI,用以规范UEFI韌體的开发。而支持UEFI规范的BIOS也常被称为UEFI BIOS(實際上許多早期的(2011年以前)採用UEFI/EFI規範的BIOS韌體並不支援UEFI開機,此種BIOS常見於OEM電腦)。之后为了推广EFI,业界多家著名公司共同成立统一可扩展固件接口论坛(UEFI Forum),英特尔公司将EFI 1.1规范贡献给业界,用以制订新的UEFI规范。2012年以後UEFI已在x86平台上得到普及。

啟動電腦原理[编辑]

當電腦的電源開啟,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所需電力由主板上的鈕扣電池提供)的情況下會遺失儲存的資料。

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

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

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

BIOS韌體[编辑]

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

CMOS的联系和区别[编辑]

BIOS与CMOS的关系[编辑]

CMOS是计算机上另一个重要的存储器。之所以提到它,是因为BIOS程序的設定值、硬件參數偵測值就保存在CMOS中。而且,在BIOS程式啟動计算机時,需要载入CMOS中的設定值。CMOS通常被整合在南橋晶片組中。UEFI系統則多用NVRAM儲存設定。

BIOS与CMOS的区别[编辑]

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

CMOS的內容在斷電會消失。所以,把主機板的電池拆出,便可重置其內容。另外,拆出電池也會重設時間。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開機規範[编辑]

如果PCI擴充ROM(PCI Expansion ROM或Option ROM)要允許BIOS從SCSI卡、網路卡等裝置開機,Option ROM可通過註冊BIOS Boot Specification (BBS) API來達到這點。

供應商[编辑]

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

取代[编辑]

2006年,微软曾在WinHEC會議上表示UEFI將會取代已经使用20多年的BIOS。現時UEFI已經取代傳統BIOS,Intel將於2020年棄用Legacy BIOS,屆時Intel產品不再支援基於16位真實模式的UEFI CSM(UEFI相容性支援模組)[2]

相關鏈接[编辑]

外部連結[编辑]

  1. ^ The PC Guide - System BIOS
  2. ^ http://www.uefi.org/sites/default/files/resources/Brian_Richardson_Intel_Final.pdf