BIOS
此条目包含过多行话或专业术语,可能需要简化或提出进一步解释。 (2023年3月25日) |
存储位置 | PROM EPROM 闪存 |
---|---|
常见制造商 | 安迈科技 系微 凤凰科技 Byosoft |
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可以让用户选择由哪个启动设备启动电脑,如光盘驱动器、硬盘、软盘、U盘等等。现代大多数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已损坏,则可自动读取U盘/光盘中的特定BIOS文件并更新BIOS。主板厂商/OEM经常发出BIOS升级来更新他们的产品和修正已知的问题。
操作系统服务
[编辑]BIOS可通过BIOS中断调用为MS-DOS操作系统及MS-DOS程序提供磁盘、键盘、显示等标准服务。通过BIOS中断调用访问视频硬件非常缓慢,因此,有些DOS程序(尤其是游戏)通过直接访问视频硬件提高效率。
微代码更新
[编辑]自P6微架构开始,Intel处理器支持可重新编程的微码。自K7微架构开始,AMD处理器支持可重新编程的微码。BIOS包含处理器微代码更新。微代码被加载到处理器的SRAM中,所以微代码更新并不是持久的,需要在每次系统启动时更新处理器微代码。操作系统也可以更新主处理器的微代码[2][3]。
其他固件
[编辑]现代BIOS包括英特尔管理引擎[4],AMD平台安全处理器和板载Video BIOS固件。
一些BIOS支持超频。
现代用途
[编辑]BIOS以16位实模式执行。现代操作系统以保护模式或长模式执行,因为使用BIOS的16位实模式服务(如BIOS中断调用)是低效的。在1990年代,BIOS为操作系统提供APM、旧式即插即用、桌面管理接口功能;在2000年代至今,BIOS则为操作系统提供ACPI、SMBIOS功能[5][6][7]。
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兼容性支持模块)[8]。
参见
[编辑]- 可扩展固件接口(UEFI)
- 固件
- 系微公司
- American Megatrends
- SMBIOS
- 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).