简单来说,如果你专门做 firmware 相关工作,对这些内容应该不会陌生。这篇文章主要面向新手,聊聊对 BIOS 的理解和实现,希望能帮刚入门的同学理清思路。
先说说刷写。对于 rom 文件,不管是 .bin 还是 .rom 格式,文件本身对 rom 芯片来说其实没什么实际意义——刷写软件只关心它自己是否支持这个格式。
不少人在接触 BIOS 以前,对它的认识可能很模糊:以为 Setup 界面就是 BIOS,CMOS 就是 BIOS……这些不恰当的想法曾经伴随了很多人整个学生时代。
其实从根本上去理解,BIOS 并没有那么复杂。BIOS 就是基本输入输出系统,既然是个系统,它就会像 Windows、Linux 那样做很多事情。那么问题来了:为什么每台机器都能装操作系统,但每个型号的机器 BIOS 却各不相同?
记住一个核心:操作系统是给所有人用的,而 BIOS 是给特定平台用的。所以,操作系统并不知道当前硬件怎么操作,它需要一个帮手来协调和控制,这个帮手就是 BIOS。
BIOS 要做的事情,主要集中在这几个方面:
1. 让所有设备都能正常使用
2. 为操作系统和其他软件提供信息和管理方法
3. 实现计算机厂商的特定功能
逐条解释一下。
第一条就不展开了(没什么好说的)。
第二条:为了让用户能通过操作系统提供的功能进行管理,各方需要事先约定好实现方式。以电源管理为例,Win98 SE 以前用的是 APM,之后是 ACPI。既然有了规范,硬件、软件、BIOS 都得照做。类似的规范还有 SMBIOS 等。
第三条:比如超频功能、SLP 2.0、联想的特色功能等等。
PC 从 IBM 设计出来到现在已经发展了几十年,BIOS 为了兼容 IBM 的架构,架构层面一直没有太大变化。无论是 x86 还是其他架构,BIOS 都已经非常成熟。随着 UEFI 的到来,这一传统正在被碘伏。大家要做的无非是依照 UEFI 规范,按部就班地去实现,入门的门槛已经大幅降低了。
以上就是对 BIOS 的理解和实现的详细介绍。
