Here’s a tip for those still running a 32-bit version of Ubuntu on machines with more than 3 Gb of RAM (like myself).
Earlier versions of the ‘generic’ linux kernel that shipped with Ubuntu had PAE (Physical Address Extension) enabled by default. This meant that on 32-bit installations, you had access to greater that 3 Gb of RAM. This seems to not be the case with the default Lucid (10.04) kernel – it’s not PAE enabled. I’m not sure exactly when the change was made (it could have also been the case with 9.10), but I noticed that after upgrading to Lucid, my 32-bit installation was only seeing ~3 Gb or RAM, when previously I had access to the full 4 Gb installed.
You can tell how much RAM is accessible by in a terminal typing:
For 4 Gb of RAM, the ‘total’ mem should be something like 4003.
To fix this, simply install the PAE-enabled kernel:
sudo apt-get install linux-generic-pae
This kernel should automatically become your default in GRUB. All going well, after a reboot, you should be able to type ‘free -m’ again and see that you are using 4 Gb of RAM.