Go to TogaWare.com Home Page.
GNU/Linux Desktop Survival Guide
by Graham Williams
Google

Memory


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 $2^{32}$ 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 $2^{64}$ bytes can be addressed. However, some applications actually run slightly slower because the pointers are larger and garbage collection will take longer.

Copyright © 1995-2006 Graham.Williams@togaware.com
Contribue and access the PDF Version