The page table structure used by x86-64 CPUs when operating in 64-bit mode further extends the page table hierarchy to four levels, extending the virtual address space, and uses additional physical address bits at all levels of the page table, extending the physical address space. It also uses the topmost bit of the 64-bit page table entry as an NX bit.
The Linux kernel includes full PAE mode support starting with version 2.3.23, enabling access of up to 64 GB of memory on 32-bit machines. A PAE-enabled Linux kernel requires that the CPU also support PAE. The Linux kernel supports PAE as a build option and major distributions provide a PAE kernel either as the default or as an option.
The NX bit feature requires a kernel built with PAE support.
Linux distributions now commonly use a PAE-enabled kernel as the default, a trend that began in 2009. As of 2012 many, including Red Hat Enterprise Linux / CentOS, Ubuntu (and derivatives like Linux Mint), have stopped distributing non-PAE kernels, thus making PAE hardware mandatory.
Distributions that still provide a non-PAE option, including Debian (and derivatives like LMDE), Slackware, and LXLE typically do so with "i386", "i486" or "retro" labels.
FreeBSD and NetBSD also support PAE as a kernel build option. FreeBSD supports PAE in the 4.x series starting with 4.9, in the 5.x series starting with 5.1, and in all 6.x and later releases. Support requires the kernel
PAEconfiguration-option. Loadable kernel modules can only be loaded into a kernel with PAE enabled if the modules were built with PAE enabled; the binary modules in FreeBSD distributions are not built with PAE enabled, and thus cannot be loaded into PAE kernels. Not all drivers support more than 4 GB of physical memory; those drivers won't work correctly on a system with PAE.
Software can identify via the
PAEwhether a CPU supports PAE mode or not. A free-of-charge program for Microsoft Windows is available which will list many processor capabilities, including PAE support. In Linux, commands such as
cat /proc/cpuinfocan list the
paeflag when present.
To use PAE, motherboard and operating system support is required.