0

I don't know whether to use Intel x86 or AMD64 image on my computer. I have a 2011 Macbook Air with a Sandy Bridge i7 and Intel HD3000 which is definately capable of handling 64 bits, however, due to the wording on Ubuntu's website. It says that Intel x86 should be used on almost all pcs as well as newer Intel Macs. Since I clearly have an Intel Mac, should I be using Intel x86 image?

Download

Ubuntu MATE is currently available for four architectures, PC (Intel x86), 64-bit PC (AMD64), Mac (PowerPC) and IBM-PPC (POWER5) and Raspberry Pi 2 aarch32 (ARMv7).

PC (Intel x86) For almost all PCs. This includes most machines with Intel/AMD/etc type processors and almost all computers that run Microsoft Windows, as well as newer Apple Macintosh systems based on Intel processors. Choose this if you are at all unsure.

64-bit PC (AMD64) Choose this to take full advantage of computers based on the AMD64 or EM64T architecture (e.g., Athlon64, Opteron, EM64T Xeon, Core 2). If you have a non-64-bit processor made by AMD, or if you need full support for 32-bit code, use the Intel x86 images instead.

Mac (PowerPC) and IBM-PPC (POWER5) For Apple Macintosh G3, G4, and G5 computers, including iBooks and PowerBooks as well as older IBM OpenPower 7xx machines.

  • How big is your RAM? – PSkocik Sep 13 '15 at 19:10
  • If you're ram is >= 4GiB, you need a 64 bit operating system or if you plan on increasing it to that size, you need a 64 bit operating system, otherwise a 32 bit operating system is enough. A 32 bit operating system will take a little bit less space and a little bit less RAM at runtime. It might perform slightly worse on certain operations (+slightly better on others; the performance characteristics of the two tend to be very similar). – PSkocik Sep 13 '15 at 19:14
  • You can install 64bit os even on intel macs, even on a 2007 macbook. – peterh - Reinstate Monica Sep 13 '15 at 19:20
1

Definitely choose 64 bit. You still could launch 32 bit applications, e.g. 32 bit wine. The only downside you could meet is a development of projects that you want to be compiled to 32 bit architecture, but for that case there's a well working workaround with lxc tools.

The upside you would get is a better performance. 64 bit code have to be faster, and there are reasons:

  • Function call convention. In general 32 bit code passes parameters through a stack — which is a memory; while 64 bit code uses CPU registers for passing arguments. Even supposedly that CPU cache would reduce the performance hit to the minimal, there's an overhead of copying parameters into a stack.
  • More registers size — a CPU register now could hold two times bigger value.
  • More registers number — 64 bit code have an access to two times more number of registers. This means that in cases where 32 bit code have to store a value into a memory, 64 bit code could just leave it in CPU.

There's a drawback though that pointers now have two times bigger size, but I tend to think that upsides are still stronger.

  • Isn't x32 a completely different ABI, the same as neither i386 nor amd64/x86_64? I don't think any version of Ubuntu is compiled for that architecture. – Celada Sep 13 '15 at 20:49
  • 1
    @Celada well, I didn't meant an exact ABI; actually I didn't know that there's an ABI that is called exactly x32 ABI. I used to use as synonims x32/x6432 bit/ 64 bit. To be clear: there is a number of different call conventions for both 32 and 64 bit code, but there's a tendency that 32 bit conventions use stack more often than 64 bit code. The reason is obviously a smaller number of registers. Thank you, I'll edit the answer to replace the "synonims" 😄 – Hi-Angel Sep 13 '15 at 20:54
  • 1
    64-bit code isn't always faster, that depends on what the code does. x86_64 is usually faster than x86_32, primarily because x86_64 has more registers. But 64-bit code can also be slower, moslty with symbolic code (code that manipulates a lot of pointers), because of the additional memory pressure. – Gilles 'SO- stop being evil' Sep 13 '15 at 22:32
2

x86 is the 32-bit version that should run on most Intel/AMD 'PC' hardware and later Apples.

AMD64 is the 64-bit version that should run on modern Intel/AMD 'PC' hardware and later Apples.

32-bit architecture has a 4GB RAM limit (with some chipsets being able to support PAE and up to 64GB RAM) whereas the 64-bit can address a vast amount of RAM.

The Intel i7 is most definitely a 64-bit CPU, therefore you should consider using the AMD64 architecture. The x86 will also work, but you may reach the 4GB RAM limit.

Phoronix benchmarked Ubuntu 14.10 as both 32-bit and 64-bit and the latter came out on top in most test cases.

Unless you've a reason to use 32-bit, go for the 64-bit (AMD64).

  • AFAIK Ubuntu x32 uses PAE, so there's more than 4Gb addressable. – Hi-Angel Sep 13 '15 at 20:10
  • @Hi-Angel - thanks. I've edited accordingly. – garethTheRed Sep 13 '15 at 20:14
1

Well, that isn't exactly "Ubuntu's website", is it? It's ubuntu-mate's web site (whatever that is — I don't know).

The text you quote is very misleading and arguably wrong in places. For example, "if you need full support for 32-bit code [...]" is just wrong, since Ubuntu supports 32-bit package installation even on 64-bit systems, so there is definitely no need to "downgrade" to 32-bit just because you need to install some 32-bit software.

More importantly, x86 arguably designates both 32-bit (i386) and 64-bit (amd64 or x86_64) systems, which makes it confusing terminology.

Really, if you have a 64-bit CPU it's very simple: you should install the 64-bit version. And if you try that and your CPU isn't 64-bit after all, you'll know it very quickly: it won't run at all, it won't even boot.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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