I want to install Ubuntu GNOME 16.04 on a laptop with an intel core i3-7100U processor. What architecture do I choose? According to the installation guide page the choices are:

  1. amd64 (AMD64 & Intel EM64T)
  2. armhf (32-bit hard-float ARMv7)
  3. arm64 (64-bit ARM)
  4. i386 (Intel 32-bit PC)
  5. powerpc (IBM/Motorola PowerPC)
  6. ppc64el (PowerPC 64-bit Little-endian)
  7. s390x (IBM System z)

Every main-series (so the kind you'd find in your average computer) Intel processor is based off of the 8086 standard, as opposed to ARM or PowerPC. Meaning, our only two choices here will be amd64 and i386.

Now, the difference between these is whether we want 64-bit support or not. The vast majority of modern computers now have 64-bit support, so we'd usually almost always want to choose amd64. There are very specific reasons to choose i386, but almost none of them apply to the standard home user (for example, i386 will limit the number and type of applications you can run, and will cap you at 4GB of RAM).

However, just for the sake of completeness, let's check the ARK page for your processor. If we look at it, we can see that this processor is Intel-64 supported, meaning we can run the 64-bit OS (amd64).

The other architectures are rarely used in desktop computers, so we can usually ignore them. But, as we've already gone down the road of completeness:

  • armhf: This is known as ARMv7, and has been (in most cases) deprecated in favor of the new ARMv8 spec. This is primarily used in mobile/SoC-type devices, such as phones or IoT devices like your smart fridge or a Raspberry Pi.
  • arm64: ARM64 (also known as ARMv8 or aarch64) is the next generation of ARM processors that support a full 64-bit instruction set. It is still primarily used in mobile and SoC applications, but it is slowly starting to breach the "full" computer environment, especially as it's very power-light and an open spec.
  • powerpc: PowerPC is a very old processor architecture created by IBM and Motorola. It was famously used in older Apple computers. Currently, the primary use of PowerPC is in the realm of enterprise-grade applications and servers. However, some people will still use old PowerPC computers (e.g. old Macs) for lightweight servers or computers.
  • ppc64el: PowerPC's original spec did not support the 64-bit instruction set (though was later added in the PowerPC 620 processor), which was critical for enterprise applications dealing with large amounts of data. As such, ppc64el was created for use by enterprise servers.
  • s390x: IBM System Z is very rarely used outside of heavy datacenters. It describes a processor architecture used by IBM's mainframe line of servers. Finding a home computer running this architecture would be impossible.

TL;DR: If you have a reasonably modern computer and don't know what to install, use amd64.

| improve this answer | |
  • +1 for a very complete and broadly useful answer. – Zeiss Ikon Jun 29 '17 at 18:34
  • 1
    Thank You for the clear and detailed answer! I'll be choosing 64-bit support and now know which choice to make. I especially like the link to the ARK page for my processor and the explanations about each type of architecture in the list. – jllintex Jun 29 '17 at 19:47
  • 1
    The main reason to use i386 on a 64-bit computer is if the computer will never have more than about 3GB of RAM installed. i386 is a bit more memory-efficient than amd64, so you'll make better use of the limited amount of RAM available. – Mark Jun 29 '17 at 21:47
  • 2
    @Mark: i386 Linux can take advantage of much more than 3 or 4GB of RAM, it's just less efficient (because the kernel can't have it all mapped at the same time and has to use PAE). And no single process can map more than 3GB. But you could have two separate processes each using 3GB of RAM (without either one paging to disk). Since Chrome (the web browser) uses a separate process for each tab, there's definitely a real use-case here. – Peter Cordes Jun 30 '17 at 4:10
  • 1
    "Every Intel processor"... currently, as long as you discount the Itaniums and the ARMs they made in the past, and the ARMs that they will soon be making again :) Which is to say, I know what you mean, but "every Intel desktop processor and most of the server ones that you've heard of" is closer to the truth. – hobbs Jun 30 '17 at 6:18

If you want to install 64 bit operating system then install amd64. If you want to install 32 bit operating system then install i386.

| improve this answer | |

I'd like to add that i386 architecture still has its uses, even if the CPU supports x64.

  1. It indeed can use more than 4 GB of memory using PAE, the limit related to pointer size applies to individual processes, not the whole system.

  2. If you ever want to run 32-bit code on your machine, you'll have to install all runtime libraries twice (in 32 and 64 bit versions), which may count if you have an SSD with limited available space. Two notable examples are Wine (which runs Win32 code in Linux) and Java (which is known to be slower and significantly more memory-hungry in its 64-bit incarnation).

  3. Old code designed during 32-bit era (read: large parts of GNU/Linux) is somewhat more efficient when built for 32-bit architecture.

Of course, if you take this decision, you won't be able to run any 64-bit code (for example, Steam announced they are not supporting their 32-bit build anymore), so most users should stick to amd64 nevertheless.

| improve this answer | |

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.