x86, i386, x86-64, x64, and amd64? Oh My!

The first time I tried downloading Linux, my head nearly exploded. I was drowning in options I didn’t understand. One major knowledge deficit was what weird terms, like those pictured below, mean.

The Debian Linux download page is overflowing with nonsensical options. WTF is amd64?

If you too are lost, worry not.  Together you and I are going to learn what those are, which are important to you, and what you want to choose.


A Note On Processors

What good is a computer processor if it can’t receive orders on what to process?

Being incapable of receiving orders would make it nothing more than an expensive paper weight.  Something must tell the processor what to process, and those somethings need a language the processor understands to communicate those instructions.

We call that language an instruction set or instruction set architecture (ISA for short).

Most of these instruction sets are not compatible with the other instruction sets.  You can’t tell a processor with one what to do in another’s language.  And, some have more features or capabilities than others.  You don’t want to tell a processor to do something it can’t do.


These various instruction sets are given funny names like x86_64, ia64, ARM, and so on.  When choosing an operating system, you must choose a version that will work with your processor’s instruction set, and preferably, you want to choose a version that will take advantage of all the features.


Finding Your ISA

Desktop and laptop computers predominantly use only two of the available instruction sets.  Either x86 or x86-64.  Since you are most likely trying to install Linux on a desktop or laptop, these are the instruction sets we are going to focus on.

x86 instruction sets are found on 32-bit processors, x86-64 instruction sets are found on 64-bit processors.  Therefore, to find your instruction set, you must figure out if you have a 32-bit or a 64-bit processor.  If your computer is less than ten years old, it almost certainly has a 64-bit processor, but it’s still a good idea to verify that:


What’s In a Name?

To make things confusing, x86 and x86-64 go by different names as well.  Most of the time, these name discrepancies are nothing more than marketing rivalries between the top two processor manufacturers, Intel and AMD.  Occasionally, the names are different due to slight differences in the instruction set that do not matter to the end-user, us.

It is common to find x86 called i386, or occasionally IA-32.  x86-64 is commonly called x64 or amd64, and less often IA-32eEM64T, or Intel64.


Typically, knowing x86, i386, x86-64, x64, and amd64 is enough for downloading Linux.  This makes it easy because, of these, all the x86-64 ones have 64 in their name.  The other, confusing names are more esoteric.


Which Version of Linux Do I Get?

If your processor supports the x86-64 ISA, you’ll want a Linux distribution with one of the x86-64 equivalent names, or one that says 64-bit.  These distributions take advantage of the additional features and capabilities in the 64-bit processor.  In this picture of Debian Linux’s download page, you would want to choose amd64:


If your computer has an x86 only processor, then you’ll want a distribution with an x86 equivalent name, or one that says 32-bit.  In the picture above, you’d want i386.

Typically, the distributions that commonly cater to beginners, like Ubuntu, simply gives a 32-bit or 64-bit option.  Distributions more popular among advanced users, like Debian pictured above, break it down by ISA.


Compatibility FTW

There is good news.  Unlike most instruction sets, the x86-64 instruction set is compatible with the x86 instruction set.  x86-64 is merely an improved version of x86 with a lot more features added on.

So, if you download an x86 version of a distribution, it should still work on your computer, even if it is x86-64.  However, it won’t take advantage of the improvements in x86-64 processors.

Using x86-64 to run x86 is like driving a Lamborghini in a funeral procession.

The Lamborghini is capable of so much more.


Moral of the Story

x86-64  =  64-bit  =  x64  =  amd64
x86  =  32-bit  =  i386

If your processor supports it, use x86-64.

And that’s all you need to decipher those download options.  When you advance in your Linux skills, you may find yourself trying to install Linux on another architecture, like ARM, but by then you’ll be a super-genius and you’ll know exactly what to look for.

We will be happy to hear your thoughts

Leave a reply