PAE mode
2026/8/9 6:58:01 网站建设 项目流程

PAE(Physical Address Extension,物理地址扩展)。

什么是PAE模式?

简单来说,PAE 是 x86 处理器的一项功能,它允许 32 位的操作系统(在 32 位模式下运行)突破 4GB 物理内存的限制,访问更多的 RAM。

核心技术点

  • 突破4GB限制:标准32位系统最多只能寻址2^32 = 4GB内存。PAE模式通过将物理地址从32位扩展到36位或更多(最大可达52位,但Linux 32位内核受内核结构限制,通常上限是44位),让系统能支持最多64GB甚至更多的物理内存。

  • 页表结构变化:为支持更大的物理地址,PAE会修改内存页表的结构。标准32位系统使用二级页表,而启用PAE后,会扩展为三级页表。具体来说,Linux的页全局目录(PGD)会对应到x86硬件的页目录指针表(PDPT),页中间目录(PMD)对应页目录,页表(PTE)则保持不变。

对程序员的影响

作为一个应用程序开发者,PAE模式几乎是透明的。也就是说,编写的程序仍然只能看到一个标准的32位虚拟地址空间(通常用户态可用3GB左右),无法因为物理内存变大而拥有更大的虚拟地址空间。想要使用更大的虚拟地址,必须使用64位系统。

内核视角的PAE

在Linux内核开发中,PAE是一个编译时选项(CONFIG_X86_PAE)。启用后,内核才能使用所有超过4GB的物理内存。head_64.S中看到的页表相关代码,就是为支持这种多级页表结构而设计的。

/*
* Prepare for entering 64 bit mode
*/

/* Enable PAE mode */
movl %cr4, %eax # cr4的值存入eax
orl $X86_CR4_PAE, %eax # 或上PAE
movl %eax, %cr4 # 写回cr4,使PAE生效

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询