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与硬件系统整合在一起（将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升级来更新他们的产品和修正已知的问题。

## 操作系统服务

<image>

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、旧式随插即用、桌面管理界面功能；在2000年代至今，BIOS则为操作系统提供ACPI、SMBIOS功能。

## 与CMOS的联系和区别

### BIOS与CMOS的关系

CMOS是计算机上另一个重要的存储器。之所以提到它，是因为BIOS程序的设定值、硬件参数侦测值就保存在CMOS中。而且，在BIOS程式启动计算机时，需要载入CMOS中的设定值。CMOS通常被整合在南桥芯片组中。UEFI系统则多用NVRAM储存设定。

### BIOS与CMOS的区别

二者的区别是，BIOS是储存在只读存储器（EEPROM或闪存），而CMOS为随机存储器（RAM）；BIOS中存储的是程序，而CMOS中存储的是普通信息。

CMOS的内容在断电会消失。所以，把主板的电池拆出，便可重置其内容。另外，拆出电池也会重设时间。

## 扩充程式（Option ROM）

扩充卡如硬盘控制器、显卡、网卡可能包含BIOS扩充程式（即Option ROM），为BIOS提供附加的功能。在BIOS启动操作系统前，Option ROM被BIOS执行。部分内建于主板的装置（如板载RAID），其Option ROM可能包含在主板BIOS中。Option ROM通过BIOS启动规范扩充BIOS的启动功能。

### 系统初始化

系统在加电自检（POST）阶段，寻找并执行Option ROM。Option ROM通过BIOS中断呼叫对硬件进行测试、初始化，并显示诊断资讯或显示设定画面。

## 供应商

目前全球只有四家独立BIOS供应商（IBV），曾经的Award Software与General Software、Microid均被凤凰科技收购，SystemSoft被Insyde Software收购。

- 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相容性支援模组）。

## 外部链接

- Basic Input Output System
- OpenBIOS
- SPI Flash Solutions for BIOS updates

## 基本资料

- class-name：储存位置
- 纲：PROM
- 纲：EPROM
- 纲：闪存
- 安迈科技：系微
- 安迈科技：Byosoft