53 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.

Your donation will support ongoing availability and give you access to the PDF version of this book. Desktop Survival Guides include Data Science, GNU/Linux, and MLHub. Books available on Amazon include Data Mining with Rattle and Essentials of Data Science. Popular open source software includes rattle, wajig, and mlhub. Hosted by Togaware, a pioneer of free and open source software since 1984. Copyright © 1995-2022 Graham.Williams@togaware.com Creative Commons Attribution-ShareAlike 4.0