【发布时间】:2021-12-07 15:20:29
【问题描述】:
我正在 QEMU 上做操作系统实验室。我发现在分页后访问大于 RAM 的物理地址时允许读/写。在真正的 x86 机器上情况是否相同? x32 或 x64 会导致不同的结果吗?
【问题讨论】:
-
当然,物理地址空间包括 MMIO,而不仅仅是 DRAM,而且它可以位于比 RAM 更高的地址。 (这对于 1GiB 以下的系统很典型;IIRC、MMIO 空间通常略低于 1GiB)。分页与否无关紧要(尽管 PAE 允许访问比没有更高的物理地址,而且 x86-64 需要分页。)
-
@PeterCordes 您可能只是将您的评论复制粘贴到答案中。
-
@PeterCordes 感谢您的回答!那么如果物理地址没有映射到DRAM、MMIO等,可以访问吗?
-
我想是的,尽管 IDK 你读过什么值;可能是 0 或 -1 什么的。 (写入无效。)我不认为物理地址存在标准错误,这与某些类型的错误线性地址的#GP、#SS 或#PF 不同。
标签: memory x86 ram address-space