第四十八章:按下电源:复位与固件
复习
- 裸机程序必须自己从约定地址开始,并直接面对硬件。
TL;DR
- CPU 上电后会进入确定的初始状态,并从固定位置取第一条指令。
- 固件是预先存放在非易失性存储器中的第一段软件。
正文
按下电源并不会让操作系统凭空出现。电路稳定后,CPU 会经历复位:寄存器被放入规定初值,程序计数器指向架构约定的启动位置。它随后取出的第一条指令,来自一段早已放好的软件。
这段软件叫固件。它通常保存在断电仍能留住内容的闪存中,负责检查最基本的硬件、找到可启动设备,并把控制权交给下一阶段。它像建筑开工前先搭好的脚手架:功能有限,却让后面的复杂软件有了落脚处。
固件不能知道每个用户想运行哪个程序,所以它只解决“怎样找到并启动一个系统”。下一步,专门负责把操作系统送进内存的引导程序登场。
思考题
如果 CPU 上电后没有约定的第一条指令地址,会出现什么问题?
小结
- 复位给 CPU 一个确定起点。
- 固件是开机后最先运行的软件。
思考题答案(仅供参考)
CPU 无法决定应从哪里取指令,启动过程也就没有共同的开始。
协议
本文采用 CC BY-NC-SA 4.0 协议发布。