As RAM increasingly becomes a commodity, the prices drop and computer users are able to buy more. 32-bit archictectures face certain limitations in regards to accessing these growing amounts of RAM. To better understand the problem and the various solutions, we begin with an overview of Linux memory management. Understanding how basic memory management works, we are better able to define the problem, and finally to review the various solutions. This article was written by examining the Linux 2.6 kernel source code for the x86 architecture types.
“32-bit architectures can reference 4 GB of physical memory (2^32).” This is correct but misleading. The 4GB limitation is for virtual (per process memory). Using PAE (physical address extensions), the physical memory address in Pentium Pro and above can be 36-bit. Contrary to what the article claims, PAE are not Intel’s answer to x86-64.
“It is advised to not enable CONFIG_HIGHMEM in the kernel to utilize the extra 128 MB you get for your 1 GB RAM system.” If this is correct, then substantial memory related advantages of x86-64 over x86 already occur at 1GB of RAM.