BIOS

BIOS（英文：Basic Input/Output System），即基本輸入輸出系統，亦稱為ROM BIOS、System BIOS、PC BIOS，是在通電啟動階段執行硬體初始化，以及為作業系統提供運行時服務的韌體。BIOS最早隨著CP/M作業系統的推出在1975年出現。BIOS預安裝在個人電腦的主機板上，是个人电脑启动时加载的第一个軟體。 現在，BIOS的作用是初始化和測試硬體元件，以及從大容量儲存裝置（如硬碟）載入啟動程式，並由啟動程式載入作業系統；當載入作業系統後，BIOS通過系統管理模式為作業系統提供硬體抽象。在DOS時代，BIOS為DOS作業系統提供鍵盤、顯示及其他I/O裝置的硬體抽象層。 許多BIOS程式都只能在特定電腦型號或特定主機板型號上執行。早年，BIOS儲存於ROM晶片上；現在的BIOS多儲存於快閃記憶體晶片上，這方便了BIOS的更新。 1980年代，IBM發明了IBM PC，但最初BIOS是IBM PC上唯一不開放的元件，給IBM PC的複製（Clone）帶來了麻煩。隨後COMPAQ複製了IBM PC，Phoenix Technologies等公司亦複製了IBM PC的BIOS部件，可為當時的IBM PC相容機廠商提供BIOS。 統一可延伸韌體介面（UEFI）正在逐步取代舊式BIOS，但仍有很多产品支持兼容模式，通过Legacy选项，不过这种支持已经逐渐减少。目前，UEFI与兼容支持模式（UEFI+CSM）成为主流，但最新的产品已经不再支持兼容模式，仅支持UEFI。 當電腦的電源開啟，BIOS就會從主機板上的ROM晶片執行，執行加電自檢（POST），測試和初始化CPU、RAM、直接記憶體存取控制器、晶片組、鍵盤、軟碟、硬碟等裝置。當所有的Option ROM被載入後，BIOS就試圖從啟動裝置（如硬碟、軟碟、光碟）載入啟動程式，由啟動程式載入作業系統。BIOS也可從網卡等裝置啟動。 大約從80386 PC開始，個人電腦的BIOS ROM整合了設定程式（Setup）。主板的CMOS晶片用於儲存BIOS設定值及硬體偵測值。主板上的鈕扣電池用於讓CMOS儲存BIOS設定值，以及電腦在斷電時依然可以讓系統時鐘運作。 現代的BIOS可以讓使用者選擇由哪個啟動裝置啟動電腦，如光碟機、硬碟、軟碟、隨身碟等等。现代大多数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升級來更新他們的產品和修正已知的問題。 BIOS可通過BIOS中斷呼叫為MS-DOS作業系統及MS-DOS程式提供磁碟、鍵盤、顯示等標準服務。通過BIOS中斷呼叫存取視訊硬體非常緩慢，因此，有些DOS程式（尤其是遊戲）通過直接存取視訊硬體提高效率。 現代作業系統僅在啟動時使用BIOS中斷呼叫。 自P6微架構開始，Intel處理器支援可重新編程的微碼。自K7微架構開始，AMD處理器支援可重新編程的微碼。BIOS包含處理器微代碼更新。微代碼被載入到處理器的SRAM中，所以微代碼更新並不是持久的，需要在每次系統啟動時更新處理器微代碼。作業系統也可以更新主處理器的微代碼。 現代BIOS包括英特爾管理引擎，AMD平台安全處理器和板載Video BIOS韌體。 一些BIOS支援超頻。 BIOS以16位元真實模式執行。現代作業系統以保護模式或長模式執行，因為使用BIOS的16位元真實模式服務（如BIOS中斷呼叫）是低效的。在1990年代，BIOS為作業系統提供APM、舊式隨插即用（英语：Legacy PnP）、桌面管理介面（英语：Desktop Management Interface）功能；在2000年代至今，BIOS則為作業系統提供ACPI、SMBIOS（英语：SMBIOS）功能。 CMOS是计算机上另一个重要的存储器。之所以提到它，是因为BIOS程序的設定值、硬件參數偵測值就保存在CMOS中。而且，在BIOS程式啟動计算机時，需要载入CMOS中的設定值。CMOS通常被整合在南橋晶片組中。UEFI系統則多用NVRAM儲存設定。 二者的区别是，BIOS是儲存在只读存储器（EEPROM或快閃記憶體），而CMOS为随机存储器（RAM）；BIOS中存储的是程序，而CMOS中存储的是普通信息。 CMOS的內容在斷電會消失。所以，把主機板的電池拆出，便可重置其內容。另外，拆出電池也會重設時間。 擴充卡如硬碟控制器、顯示卡、網卡可能包含BIOS擴充程式（即Option ROM），為BIOS提供附加的功能。在BIOS啟動作業系統前，Option ROM被BIOS執行。部分內建於主板的裝置（如板載RAID），其Option ROM可能包含在主機板BIOS中。Option ROM通過BIOS啟動規範（英语：BIOS Boot Specification）擴充BIOS的啟動功能。 系統在加電自檢（POST）階段，尋找並執行Option ROM。Option ROM通過BIOS中斷呼叫對硬體進行測試、初始化，並顯示診斷資訊或顯示設定畫面。 目前全球只有四家獨立BIOS供應商（IBV），曾經的Award Software（英语：Award Software）與General Software（英语：General Software）、Microid均被凤凰科技（英语：Phoenix Technologies）收購，SystemSoft（英语：Systemsoft）被Insyde Software收購。 Phoenix Technologies（英语：Phoenix Technologies），美國鳳凰科技（英语：Phoenix Technologies）。 American Megatrends，美國安邁科技，目前為全球最大的BIOS供應商。之前被鳳凰科技超過。 Insyde Software，台灣系微公司。 Byosoft，新興廠商，中國大陸的百敖軟體公司。 英特尔於2000年開發出可扩展固件接口（Extensible Firmware Interface），隨後，由业界多家著名公司共同成立统一可扩展固件接口论坛（UEFI Forum），EFI被更名為UEFI，且由UEFI論壇制定新的UEFI規範。 現UEFI正在取代傳統BIOS，且Intel已經於2020年棄用傳統BIOS介面，屆時Intel產品不再支援基於16位真實模式的UEFI CSM（UEFI相容性支援模組）。 可延伸韌體介面（UEFI） 韌體 系微公司 American Megatrends SMBIOS（英语：SMBIOS） Option ROM（英语：Option ROM） ACPI Aptio VESA BIOS Extensions El Torito Basic Input Output System（页面存档备份，存于互联网档案馆） OpenBIOS（页面存档备份，存于互联网档案馆） SPI Flash Solutions for BIOS updates From bootloader to kernel · Linux Inside. 0xax.gitbooks.io. [2020-09-18]. （原始内容存档于2020-08-06）.  KB4100347: Intel microcode updates. support.microsoft.com. [2020-09-20]. （原始内容存档于2020-09-08）.  Microcode - Debian Wiki. wiki.debian.org. [2020-09-19]. （原始内容存档于2020-06-20）.  ME - flashrom. www.flashrom.org. [2020-09-19]. （原始内容存档于2019-08-05）.  What is ACPI (Advanced Configuration and Power Interface)? - Definition from WhatIs.com. SearchWindowsServer. [2020-09-18]. （原始内容存档于2019-05-15） （英语）.  Changing hardware abstraction layer in Windows 2000 / XP – Smallvoid.com. [2020-09-18]. （原始内容存档于2020-02-11） （美国英语）.  What is ACPI?. www.spo-comm.de. [2020-09-18].  存档副本 (PDF). [2019-03-17]. （原始内容存档 (PDF)于2019-02-01）.