Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm using a laptop with 32-bit Ubuntu 10.04.

I used to have only 2 GB of RAM. Today, our IT-support upgraded my laptop to a total of 6 GB of RAM. They told me "Though you do now have 6 GB, when you use your current Ubuntu, you'll only have 3 GB available. You have to install the latest version of 64-bit Ubuntu to enable all of the 6 GB."

He was in a hurry to leave without explaining more. I turned on my laptop, used gnome-system-monitor to check, and as he said, it shows I only have 3 GB of RAM.

Could someone explain me why? Why do I have just 3 GB available, and why installing a 64-bit version makes all of the 6 GB available?

share|improve this question
Could you post what the uname -a command returns to you ? This will tell us what version you're using. – Maxime R. Jan 18 '12 at 15:44
I saw "i686" which means 32bit. Anyone can tell me what I am asking, that's why I have 3G available only, is it because of the 32bit version I am using? If so, why is that? – user842225 Jan 18 '12 at 15:51
Actually, 32bit systems have an hardware limitation of 4GB (see my comment to duffydack's answer) so you either need to install the pae version of the kernel to tweak this or to reinstall a 64bit version of ubuntu if you have a 64-bit cpu (which is more than likely) – Maxime R. Jan 18 '12 at 16:02
What you're asking is a duplicate of this question: (or this one – Maxime R. Jan 18 '12 at 16:07
up vote 10 down vote accepted

If you have the 32bit version installed then you either need to install the 64bit version or you can just install a PAE kernel that can access all your ram. From terminal or ALT+F2 run sudo apt-get install linux-image-generic-pae linux-headers-generic-pae and reboot

You need a pae/64bit kernel to use more than 3.2gb as 32bit can not address more than that. It's a hardware limitation, not a linux one.

share|improve this answer
How can I check my ubuntu bit version? – user842225 Jan 18 '12 at 15:40
Will the installation harm anything on my current system? – user842225 Jan 18 '12 at 15:41
And I still need explanation of why I have only 3G RAM available? – user842225 Jan 18 '12 at 15:46
Hi, can you put your last comment to your answer, that's what I need and what I am asking for, though your existing answer provides excellent further help. – user842225 Jan 18 '12 at 15:53
In a 32-bit system only 2^32 adresses can be referenced, thus the 4GB ram limitation. More info on Wikipedia thought you'll have to wait tomorrow to read it thanks to the sopa mess... – Maxime R. Jan 18 '12 at 15:56

You will be able to use all 6G of RAM if you will choose the *-pae kernel when you boot in the Grub menu. PAE stands for Physical Address Extension and if you can't see it in the menu you can use Synaptic to add it to your current kernel. Be sure to install the same version though.

share|improve this answer
How can I check my ubuntu bit version? – user842225 Jan 18 '12 at 15:39
Can you be more detailed on how to use Synaptic to add the PAE? And will it harm anything after install it? – user842225 Jan 18 '12 at 15:40
uname -p in a terminal should tell you if you are running 64 or 32-bit. Just search for "linux-image-generic-pae" in synaptic. – Zoke Jan 18 '12 at 15:42
And I still need explanation of why I have only 3G RAM available? – user842225 Jan 18 '12 at 15:44
@ Zoke, uname -p returns me 'unknown' – user842225 Jan 18 '12 at 15:47

RAM in common computers is addressed (i.e. referred to by programs) using sequences of bits that correspond to powers of two. When you're using a 32-bit operating system, it means that programs have (at most) 32 bits available to them to describe each address. This 32-bit limit, fundamentally, lies in hardware: the x86 family of processors originally reserved just 32 bits for addresses.

The total number of different unique sequences you can organise 32 bits in is 4,294,967,296. For computers, this means you can only refer to that many different addresses in the memory. To point to more addresses (so that each address still remains unique) you must have more bits.

That large total number translates to 4 GB. As for why, in practice, it can actually be a quarter less than that, the 3 GB barrier Wikipedia article will explain.

Physical Address Extension or PAE, on hardware level, is an extension the 32-bit addressing in x86 processors: PAE processors have 36 bits for memory, thus extending the range of addresses available for the operating system (which then divides this memory among the programs). When you're installing a PAE kernel, you're in effect installing low-level operating system support for this extended x86 hardware.

When you have a 64-bit processor (as most modern processors are), you can run operating systems and applications that are built to address memory using those 64 bits. This gives them a total of "18446744073709551616 different values, a number in excess of 18 quintillion". In theory, at least, that means you won't run out of addresses before you have more than 16,8 terabytes of RAM.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.