✔ 最佳答案
BIOS(Basic Input Output System)基本輸出輸入系統是載入在電腦硬體系統上的最基本的軟體程式碼,主要的功能為
開機自我測試(Power On Self Test):檢查各CPU及各控制器之狀態是否正常。
初始化動作:針對記憶體、主機板晶片組、顯示卡及週邊裝置做初始化動作。
紀錄系統設定值:提供各元件的基本設定,如顯示器、鍵盤、處理器、記憶體等等。
提供常駐程式庫:提供作業系統或應用程式呼叫的中斷常駐程式,如INT 10H等。
載入作業系統:從第二儲存系統中載入作業系統到隨機存取記憶體。
BIOS 可以被視為與硬體溝通的核心的微小作業系統,通常是使用組合語言寫成的。(參考CMOS)
這個字眼是第一次由 CP/M 作業系統中出現,描述在開機階段載入 CP/M 與硬體直接溝通的部份。(CP/M 機器通常只有ROM裡面的一個簡單開機載入程式) 最早的 DOS 版本有個檔案叫做 "IBMIO.COM" 或是 "IO.SYS",類似於 CP/M 的磁碟 BIOS。
雖然 BIOS 的名稱是字母縮寫,但他也可能扮演的是希臘文字 βιος(bios) "生命"。
BIOS 如何開機
當電腦開機,BIOS 是由電路板上的快閃記憶體(flash memory)執行,並且他將晶片組和記憶體子系統順序地起始化。他把自己從快閃記憶體中解壓縮到系統的主記憶體,並且從那邊開始執行。PC 的 BIOS 程式碼也包含診斷功能,以保證某些重要硬體元件的正確,像是鍵盤,磁碟裝置,輸出輸入埠等等,這些可以正常運作且正常地初始化。幾乎所有的 BIOS 都可以選擇性地執行 CMOS 記憶體的設定程式; 也就是保存 BIOS 會存取的使用者自訂設定資料(時間、日期、硬碟細節,等等)。早期 PC 和 AT 的 BIOS 都有在 IBM 的技術參考手冊中包含 80x86 原始碼。
在最近現代的 BIOS 實作中,使用者可以選擇由哪個裝置先開機: 光碟機、硬碟、軟碟、flash keydrive 以及其他。這項功能對於安裝作業系統或是由開機光碟特別有用處,以及可以選擇這些可以開機媒體的順序。
有些 BIOS 系統允許使用者可以選擇要載入哪個作業系統 (例如從第二顆硬碟載入其他作業系統),雖然這項功能通常是由第二階段的boot loader來處理。
BIOS 韌體
BIOS 有時候稱做為韌體因為它是與硬體系統整合在一起的。在大約 1990年 BIOS 是保存在 ROM (唯讀記憶體)中而無法被修改。當他們的複雜度和更新需要的成長,BIOS 韌體於是就儲存在 EEPROM 或者是 flash memory 裝置,可以輕易地讓使用者升級。然而,不適當的執行或是終止 BIOS 更新可能導致電腦或是裝置的不堪使用。為了避免 BIOS 損壞,有些新的主機板有備份的 BIOS ("雙BIOS"主機板)。有些 BIOS 有 "啟動區塊" 是屬於唯獨記憶體的一部份,一開始就會被執行且無法被更新。這個程式會在執行 BIOS 前驗證 BIOS 其他部分的正確性無誤 (經由檢查碼,湊雜碼等等)。如果開機區塊偵測到主要的 BIOS 已損壞,那他會典型地開機載入軟碟機,使得使用者可以嘗試再升級更新,希望能夠得到更佳的 BIOS 程式>硬體製造廠商經常發出 BIOS 升級來更新他們的產品和移除 bugs.
[編輯] 介面卡上的韌體
一臺電腦系統可以包含多個 BIOS 韌體晶片。除了開機 BIOS 主要是包含存取基本硬體元件的程式碼,像是鍵盤或是軟碟機。額外的介面卡像是 SCSI 或是 USB 硬碟介面卡或是網路介面卡或是顯示卡也會包含他們自己的 BIOS,補充或取代這些已知元件的系統 BIOS 程式碼。
為了在開機時找到這些記憶體映射的擴充唯讀記憶體,PC BIOS 會掃描實體記憶體,從 0xC8000 到 0xF0000 的 2KB 邊界中尋找 0x55 0xaa 記號,接在其後的是一個位元,表示有多少個擴充唯讀記憶體的 512 位元區塊佔據真實記憶體空間。接著 BIOS 馬上跳躍到指向由擴充唯讀記憶體所接管的位址,以及利用 BIOS 服務來提供使用者設定介面,註冊中斷向量服務供開機後的應用程式使用,或者顯示診斷的資訊。
在 UNIX 作業系統上,有個工具可以讓你傾列出你的 BIOS 韌體
http://www.linkus.mine.nu/ree
BIOS 開機規格
如果擴充的唯獨記憶體想要更改系統開機啟動的方式(像是從網路或是 SCSI 界面卡這些 BIOS 沒有驅動的程式的裝置)他可以使用 BIOS 開機規格 (BBS) 程式設計界面註冊他的能力來達到這點。如果一旦這些擴充的唯獨記憶體使用了 BBS APIs 註冊了之後,使用者可以從 BIOS 的使用者界面選擇這些可用的開機選項。這就是為什麼大部分的 BBS 相容之 PC BIOS 皆不會允許使用者進入 BIOS 使用者界面,直到這些擴充的唯獨記憶體已經完成執行且已經使用 BBS API 將他們自己註冊之後才行。