当系统重新启动时,为什么它不会进入某个最小状态(如 Linux 中的 init 1)并从那里开始,而不是完全关闭设备并打开它们(导致大量延迟)
答案1
PC 中的许多内部硬件都需要启动时初始化才能正确显示在 CPU 上。虽然外部即插即用设备设计为可随时移除和添加,但这些接口背后的主板控制器硬件却不能。无论如何,所有此类设备都连接到芯片组,而芯片组本身必须初始化。通常,这种初始化是一次性的,直到设备重置。有些(但并非所有)设备都提供了一种无需物理重置即可将设备重新初始化到其启动时状态的方法。对所有此类设备进行物理重置可确保系统处于已知状态,从而可以有序启动。
还有一个问题是,一些(如果不是大多数) PC 芯片组(它们构成了所有系统 I/O 甚至 RAM 配置等的物理枢纽)需要 BIOS 在您获得显示之前执行专有的初始化步骤。
话虽如此,Linux(不是 Windows)提供了一种可以重新启动内核的功能,有效地“热启动”系统,而无需 BIOS 参与。查看kexec
。据我所知,Windows 没有类似的东西。
答案2
系统并未关闭设备。设备本身正在检测复位线路上的信号并自行复位。