GNU/Linux Desktop Survival Guide
by Graham Williams
Linux is limited by hardware limitations in terms of access to memory. For a 32 bit machine (i386) the total amount of memory that the processor can address is or 4GB. Linux allocates one quarter of this for the kernel, and the rest for processes. (MS/Windows allocates half for the operating system and only half for the user processes.) Thus a single user process can access up to about 3GB of memory (seems to actually be about 2.6GB or 2680MB).
Intel's PAE (Physical Address Extension) is a feature of all Pentium Pro and newer CPU's. The PAE extension allows up to a maximum of 64GB of Physical Memory (RAM) to be addressed by the operataing system, but not a process. This is achieved by using indirect pointers to the higher memory locations. There is a CPU and RAM hit for using this, and seems to be of the order of 3-6% CPU. Note again that PAE does not increase Linux's ability for a single process to see more than 3GB of RAM.
A 64 bit processor allows much more memory to be addressed. The AMD Opteron uses 40 bits for addressing (due to a current physical limit on address pins) but uses 64 bit addressing, so up to bytes can be addressed. However, some applications actually run slightly slower because the pointers are larger and garbage collection will take longer.