Ubuntu – Why is 12.04 using a PAE dependent kernel by default

12.04kernelpae

Recently when I was trying Ubuntu 12.04 beta I got to know that it was using a PAE kernel, but I am not sure of the reason.

Why has Ubuntu shifted to PAE kernel ?
Also Is there a non PAE version also available?

Best Answer

Simple: To support vast quantities of RAM in a 32bit environment.

Lots of people were installing the (then) recommended 32bit install and wondering why their new computers with 4 and even 8GB of RAM were only showing 2-3GB. By using the PAE kernel, the vast majority of that RAM is now addressable and usable.

This is fine for people who have computers built this century. To get a computer that doesn't have 32bit PAE support, we need a really old computer. We're talking PII/Geode level old, but also Pentium M machines like lots of Thinkpads.

These are computers that should be thrown into the sun. They are far below what people throw out and much better machines can be had for almost nothing on Ebay and the like.


There's an added side-effect of PAE that I've only just become aware of: NX. In 64bit mode all users get NX (No eXecute) which allows the system to separate out storage RAM from process RAM. This allows an application to suffer a buffer overflow without then being able to stuff a ton of malicious executable code in RAM and run it.

That's a obviously massive simplification but to further answer the question: it makes the computer more secure too.


And what's more to appease the super-low-end users the defaults for Lubuntu and Xubuntu will be a non-PAE kernel.

If you are on a lower-end computer, chances are you won't want Unity eating up the few remaining CPU cycles you have left, so they're a much saner starting point anyway.