32-bit and 64-bit
As of 2008, most new consumer desktop PCs being sold contain processors from AMD or Intel which are capable of operating in 32-bit and 64-bit modes. List of processors with 64-bit support:
- Athlon64, Athlon FX, Athlon X2, Phenom, Semprons that use AM2/AM2+/AM3 socket, Turion64
- F and 5x1 series Pentium 4 using the "Prescott" core
- Pentium D
Core 2 (Solo, Duo & Quad)
- Core i3 (all)
- Core i5 (all)
- Core i7 (all)
In addition to the list above, a number of other architectures also support 64-bit processing (Itanium, S/390, PowerPC, SPARC, MIPS, etc.), but these are not supported by Ubuntu. For support of these architectures, see Debian, on which Ubuntu is based.
Each manufacturer has a different name for 64-bit, such as: AMD's AMD64 and Intel's IA-32e (later EM64T). We use AMD64 to refer to all implementations.
Whilst your processor probably already supports 64-bits, in order to benefit from it you need a 64-bit operating system.
What is it?
32-bit and 64-bit refer to the size (or width) of a chunk of memory or more accurately, the memory registers in a computer's CPU - this defines how much data the processor can handle in a single operation.
So what does that mean? Well, the two main characteristics of the AMD64 architecture are:
A 32-bit computer has a word size of 32 bits, this limits the memory theoretically to 4GB. This barrier has been extended through the use of 'Physical Address Extension' (or PAE) which increases the limit to 64GB although the memory access above 4GB will be slightly slower.
A 64-bit computer will be able to address up to 16.8 million TB (16 exabytes) although constraints are in place that limit this to around 1TB.
The AMD64 processors have additional general purpose registers which will allow 64-bit code to run faster (in some cases) than its 32-bit cousins.
Which is Better - 32 or 64 Bits?
If you are doing heavy work where you have started to hit the 4GB memory barrier, then 64-bit is for you. Certain intensive tasks such as encoding video or audio also run significantly faster on 64-bit operating systems (NOTE: this is implementation specific).
Phoronix has done some testing (2009), comparing 32bit/PAE/64bit, and this seems to indicate that 64bit performs better than 32bit in almost all cases.
Early 64-bit adopters were plagued by incompatibility problems (most noticeably Java and Flash), however most issues have now been resolved.
Some applications such as Flash do run slower in 64-bit mode, however work continues to improve on this.
Other platforms which also come in 32 and 64-bit flavours may experience more problems especially due to a lack of 64-bit device drivers as incompatible user application. As Ubuntu is entirely open source, this is not the case as all hardware supported by Ubuntu works equally well in 32-bit and 64-bit environments. The same applies to open source user applications as well.
Which Should I Choose?
Unless you have specific reasons to choose 32-bit, we recommend 64-bit to utilise the full capacity of your hardware.
How to Check
If you are running Linux or have access to Live Linux media, open the terminal prompt and run:
grep --color=always -iw lm /proc/cpuinfo
If this command returns lm (Long Mode) as one of the flags, then your processor is capable of 64-bit.
If you're running Windows, download, install, and run CPU-Z to check for AMD64 (AMD processors) or EM64T (Intel processors).
How to Make 32-bit Applications Work on a 64-bit Operating System
It is possible to install and use 32-bit software on a 64-bit computer in different ways:
- Installation of 32-bit compatibility libraries (ia32-libs or Multiarch support)
A 32-bit chroot
Another option in a pinch is getlibs getlibs
A use case for getlibs was installing the Amazon MP3 Downloader software, it is written for 32 bit only and without their software downloading mp3s would otherwise be incredibly time consuming.
Applications found in the Ubuntu archives should however all work out of the box in 64-bit mode.