为什么 BIOS 以 16 位而不是 32/64 位运行?

Fer*_*ini 2 bios boot 64-bit 32-bit 16-bit

我的老师告诉我 BIOS(或传统模式)总是以 16 位启动我的电脑。

换句话说,我可以使用 23.9GHz 的英特尔酷睿 i291832,但如果我使用传统模式,我的电脑将在 16 位模式下运行。真的吗?如果是这样,为什么会发生?

PS:你可以很技术,我在学习计算机科学可能会理解你说的话。P.S2:我知道 UEFI 和传统模式之间的区别。

8bi*_*ree 5

向后兼容性。

现代 x86 处理器可以运行为原始8088编写的软件,例如 MS DOS,而无需求助于软件仿真。请注意,有些事情可能运行不佳,例如许多游戏依赖时钟速度进行计时,因此过去在 5 MHz 下发生在 10 秒内的情况现在在 2.5 GHz 下发生的时间接近 0.02 秒。祝你及时反应。

实模式(16 位)的行为与保护模式(32 位)和长模式(64 位)不同。为实模式编写的程序不能在保护模式或长模式下运行,它使用不同的指令。

由于向后兼容性是 x86 最重要的品质之一,因此所有 x86 处理器继续以实模式启动。(否则我们现在可能会转向一个不那么疯狂的架构。请记住,即使是 Intel 也想切换到Itanium。)

BIOS 和 UEFI 是主板的一部分,而不是 CPU。因此,BIOS 保持向后兼容原始 IBM PC,并且本身非常简单,在将控制权传递给引导加载程序时,使 CPU 处于实模式。UEFI 并不是为这种向后兼容性而设计的,因此可以在传递控制权之前自由切换到保护模式。但是,如果您从 UEFI 计算机中取出相同的 x86 CPU 并将其放入具有兼容主板的 BIOS 计算机中,它仍然可以工作,在加载引导加载程序之前跳转到 32 位保护模式的内容现在停留在 16 位模式在引导加载程序之前。