我有一个现代的64位CPU。我的BIOS是否仍以16位REAL模式运行?


11

由于仍然需要引导,因此我想知道在x64 / AMD64 64位系统上,BIOS是否仍使用16位指令?它也可以在实模式下运行吗?


Wikipedia:“ 对于较新的计算机平台,显然不可接受BIOS限制(16位处理器模式,仅1 MiB可寻址空间,PC AT硬件依赖性等)。可扩展固件接口(EFI)是一种替代运行时的规范旧版BIOS的接口。
丹尼尔·贝克

@Daniel Beck,我认为EFI仅适用于Mac和Itanium。
unixman83 2011年

7
@ unixman83-自从Sandy Bridge出现以来,大多数新的英特尔主板都在EFI上运行。推土机出现时,AMD可能会效仿。真正的理由是,如果MFT格式化的磁盘大于2TB,则无法启动……这是一个通常才开始达到的极限。您需要EFI才能启动GPT格式化的磁盘(可能更大很多)
Shinrai 2011年

@ unixman83:我删除了您的“答案”,因为它不是答案,而只是Shinrai评论的副本/粘贴。
studiohack

没有什么可以阻止BIOS读取和理解GPT,并且引导加载程序还可以使用BIOS调用访问超过2TB的内存,因此大磁盘的“ EFI需求”是一个(非常普遍的)神话。
Patrick Georgi

Answers:


6

x86处理器仍以实模式启动。BIOS在初始化硬件时可以自由(有时被迫)切换到保护模式或长模式,但是当将控制权移交给操作系统(或更确切地说是其引导加载程序)时,它们必须恢复为实模式,因为这就是事实。这些装载机希望系统能够投入使用。

corebootUEFI相当早就切换到保护模式,而对于PCBIOS(凤凰号/奖项,ami等),我们无法得知。它们是封闭源代码,通常不会告诉他们很多内部信息,它们的接口都被指定为实模式。

对于运行ECC RAM的系统,您可以相对确定地切换到能够寻址所有RAM的某种模式,因此至少要进入保护模式-这是因为它们需要初始化内存(将一些值写入每个地址)在启动时启动,否则如果某些后续代码读取从未写入的地址(由于错误检测可能会产生误报),系统将停止运行。但是,正如所说的,这是BIOS的内部功能,凡人都能轻松解决或需要考虑的任何事物。

tl; dr:BIOS在所有外部可见的点都处于实模式,因此出于所有意图和目的,BIOS可能一直都在实模式下运行。


1
甚至原始的IBM PC AT BIOS也切换到保护模式以进行内存测试。
于洪宝
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.