【问题标题】:Can an x86 based OS use an x86-64 processor in protected mode and use PAE?基于 x86 的操作系统能否在保护模式下使用 x86-64 处理器并使用 PAE?
【发布时间】:2023-04-09 09:42:01
【问题描述】:

我对使用 32 位保护模式处理器分段的操作系统感兴趣。当 AMD 添加长模式时,他们没有对其进行分段硬件保护。任何处于 32 位保护模式的 x86-64 处理器都可以使用物理地址扩展来寻址超过 4 GB 的内存吗?

【问题讨论】:

  • 是的,但是只有 4GiB 的虚拟地址空间而拥有更多的物理地址空间是很痛苦的。 (只为内核保留 1 或 2 GiB。)分段没有帮助。请参阅 Linus Torvalds 关于 PAE 的 cmets (cl4ssic4l.wordpress.com/2011/05/24/linus-torvalds-about-pae)。像您所描述的传统模式下的 x86-64完全类似于带有 PAE 的仅 32 位 CPU,这就是 x86-64 CPU 在首次发布时可以运行现有操作系统的方式。
  • 在 64 位长模式下,不支持 32 位保护模式提供的硬件保护模式。

标签: x86 operating-system x86-64 hardware


【解决方案1】:

任何处于 32 位保护模式的 x86-64 处理器都可以使用物理地址扩展来寻址超过 4 GB 的内存吗?

是的。

这样的操作系统将能够使用超过 PAE 最初限制的 64 GiB 内存(物理地址空间);并且仍然可以使用分段和 virtual8086 模式。

不幸的是,32 位代码不能使用添加的额外寄存器,这(取决于软件)可能意味着大多数软件的性能损失高达 20%(与同一 CPU 上的 64 位软件相比)。

【讨论】:

    猜你喜欢
    • 2017-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-15
    • 2011-06-01
    • 2016-04-06
    相关资源
    最近更新 更多