在现代计算机上启动时的第一微秒究竟发生了什么?

问题描述

这里和其他地方有很多关于一般启动顺序和逻辑设计的问题和答案。但是,我无法理解一开始在基本层面上实际发生的情况。

例如,描述第一步的常用方法是“一旦主板通电,它就会初始化自己的固件——芯片组和其他花絮——并试图让 CPU 运行。”来自:https://manybutfinite.com/post/how-computers-boot-up/

关键问题在于“它初始化”。 “它”的确切性质和“初始化”意味着什么根本不清楚。

(我也不太确定固件什么时候可以被认为已经“启动”了)

我能理解的前几纳秒是“电源开关”打开,然后又是几纳秒,以使电源跨越距离到达主板上“初始化”电路的任何位置。然后大概是一些电脉冲序列开始,然后???然后机器代码开始执行。

据我所知,大概就这些了。

那么在剩余时间内会发生什么,以便“初始化”发生?

解决方法

当主板通电时,不仅CPU,所有其他芯片和设备(内存、定时器、中断控制器、DMA、视频、磁盘等)都进入明确定义的状态。

我猜这就是 Gustavo Duarte 所说的固件初始化。实际上固件是一个程序 硬连线在 ROM 中,它不会初始化。 RAM 中较低地址的 BIOS 内存变量稍后将由 CPU 执行开机自检和其他杂务来初始化。

更多详情见 Booting at Wikipedia,
How Does an Intel Processor Boot?,
Booting an Intel System Architecture

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...