首页 > 编程笔记

BIOS固件是什么?

BIOS 是固化到主板上的软件,是开机后执行的第一个程序。

固件(Firmware)是指向电子硬件中嵌入的软件程序。这种电子硬件一般带有可擦写的存储器,软件程序可以写入存储器中来改变电子硬件的功能。

计算机中最重要的固件是基本输入输出系统(Basic Input Output System,BIOS),BIOS 包含了计算机在开机时需要运行的初始化程序。

BIOS 存储在主板上的一个“只读存储器”(Read-only Memory,ROM)芯片中,这个芯片的内容是在计算机出厂之前使用专业的生产设备写入的,出厂后就固化住,用户一般不用修改。

BIOS 是 CPU 运行的第一个软件。在计算机主板开机上电时,CPU 从 ROM 中读取软件代码来执行。

BIOS 主要执行3方面的功能,工作流程如图1所示。

BIOS 的工作流程
图1:BIOS 的工作流程

1) 系统自检

BIOS 会对计算机上所有硬件进行探测,确保计算机中已经正确安装了所有必要的模块。要探测的内容有 CPU 型号、物理内存容量、键盘、鼠标、硬盘、显示器、网卡等。

BIOS 还会对内存条进行数据读写校验,如果写入内存的数据和读出来的不一致,则代表内存有坏单元,BIOS 会发出警告,停止启动。

2) 初始配置

BIOS 提供菜单界面,用户可以对计算机进行一些配置。计算机的说明书中都会专门讲述 BIOS 的设置方法。

BIOS 有很多用途,比如:

3) 加载操作系统

这是 BIOS 最重要的功能,在系统自检通过后,BIOS 从存储设备(硬盘或光盘)上找到操作系统的文件,把操作系统的引导程序加载到内存中运行。

至此,BIOS 就完成了全部任务,接下来就由操作系统来接管整个计算机。

BIOS 的整个生命周期就是从计算机上电开机,直到操作系统投入运行。在龙芯计算机上,BIOS 的运行时间只有短短几秒。BIOS 的代码规模也很小,现在一个 4MB 的 ROM 芯片就可以装下。

龙芯计算机使用的 BIOS 一般采用开源软件项目进行改造。2018 年之前的龙芯计算机一直使用 PMON 项目,2018 年之后则转为使用功能更先进、更符合业界最新标准的 UEFI 项目。

固件属于一个专业狭窄的开发领域,不会直接向消费者销售,只能销售给 CPU 厂商、计算机厂商。固件又是一个开发难度非常高的产品,需要开发人员对计算机原理有全面的理解,又需要开发人员与时俱进地学习各种新型硬件设备。因此,专业做固件的厂商在市场上只有很“小众”的几家,从事固件开发的人员也是计算机人才中的精英,掌握固件开发能力是会“造计算机”不可缺少的环节。

推荐阅读