Nowadays, many machines are running with 2-4 gigabytes of RAM, and their
owners are discovering a problem: When they run 32-bit GNU/Linux distributions,
their extra RAM is not being used. Fortunately, correcting the problem is only a
matter of installing or building a kernel with a few specific parameters enabled
or disabled.
The
problem exists because 32-bit Linux kernels are designed to access only 1GB of
RAM by default. The workaround for this limitation is vaguely reminiscent of
the virtual memory solution once used by DOS, with a high memory area of virtual
memory being constantly mapped to physical addresses. This high memory can be
enabled for up to 4GB by one kernel parameter, or up to 64GB on a Pentium Pro or
higher processor with another parameter. However, since these parameters have
not been needed on most machines until recently, the standard kernels in many
distributions have not enabled them.
To check whether your kernel is configured to use all your RAM, enter the
command
free -m. This command gives you the total amount of unused RAM on
your system, as well as the size of your swap file, in megabytes. If the total
memory is 885, then no high memory is enabled on your system (the rest of the
first gigabyte is reserved by the kernel for its own purposes). Similarly, if
the result shows over 1 gigabyte but less than 4GB when you know you have more,
then the 4GB parameter is enabled, but not the 64GB one. In either case, you
will need to add a new kernel to take full advantage of your RAM.