Physical Address Extension (PAE) is a processor feature that allows 32-bit systems to access more than 4GB of physical memory. While most modern 64-bit systems don't require PAE, checking its status remains relevant for:
- Legacy 32-bit systems with >4GB RAM
- Virtualization environments
- Kernel debugging scenarios
# Method 1: Using cpuinfo flags
grep --color=always -i pae /proc/cpuinfo
# Example output for enabled PAE:
# flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext lm 3dnowext 3dnow
Alternative approaches:
# Method 2: Checking kernel parameters
dmesg | grep -i pae
# Method 3: Kernel configuration check
zgrep -i pae /proc/config.gz 2>/dev/null || echo "Config not available"
A positive PAE indication appears when:
- The 'pae' flag appears in cpuinfo
- Kernel boot messages show PAE activation
- CONFIG_X86_PAE=y appears in kernel config
For virtualization environments or custom kernels:
# Check kernel image features
file /boot/vmlinuz-$(uname -r) | grep -i pae
# Cross-verify with kernel modules
lsmod | grep -i pae
Create this reusable function in your .bashrc:
function check_pae() {
if grep -q pae /proc/cpuinfo; then
echo "PAE is ENABLED on this system"
return 0
else
echo "PAE is NOT enabled" >&2
return 1
fi
}
Watch for these scenarios:
- Virtual machines with nested paging
- Systems with NX (No Execute) bit requirements
- Certain ARM architectures that implement similar features
Physical Address Extension (PAE) is a processor feature that allows 32-bit systems to access more than 4GB of physical memory. This is particularly useful for servers or high-performance workstations running memory-intensive applications.
There are multiple ways to verify PAE support in Linux systems:
# Method 1: Using cpuinfo flags
grep --color=always -i pae /proc/cpuinfo
# Method 2: Checking kernel features
uname -a | grep PAE
# Method 3: Using dmidecode (root required)
sudo dmidecode -t processor | grep PAE
For Windows users, these methods can determine PAE status:
# PowerShell command:
Get-WmiObject Win32_OperatingSystem | Select-Object PAEEnabled
# Alternative via System Information:
msinfo32.exe
Positive results will typically show:
- "pae" in CPU flags (Linux)
- "PAE" in kernel version (Linux)
- True/1 for PAEEnabled (Windows)
If PAE isn't showing as enabled but should be:
# Check kernel configuration (Linux)
grep CONFIG_X86_PAE /boot/config-$(uname -r)
# Windows boot configuration:
bcdedit | grep pae
While PAE enables access to more memory, be aware that:
- Individual 32-bit processes are still limited to 4GB address space
- There might be a minor performance overhead (1-3%)
- Some older drivers may not be PAE-compatible