If you’ve ever wondered what terms like x86, x64, or IA-32 mean, this guide is for you. This is mostly about x86 compatible CPUs, although we do briefly touch on PPC and IA-64 (IBM PowerPC and Intel Itanium).
The Intel 8086 and x86
The x86 instruction set began life sometime between 1976 and 1978 with the 16-bit Intel 8086 microprocessor. Since then, most of the processors found in our desktop and laptop computers have maintained backward compatibility with the x86 instruction set.
What is an instruction set? Think of it as the language any particular processor speaks. It is different from the physical design of the processor (microarchitecture). CPUs from two different manufacturers might have very different microarchitectures, but still both be x86 compatible.
The large number of computers with x86 processors means cross compatibility of software. Until 2006, none of the Macintosh computers being sold were x86 compatible. When the Mac made the switch from IBM’s PowerPC to x86 compatible Intel CPUs, it became possible to install Windows on a Mac. Pretty awesome, right?
Although the name x86 is rooted in Intel history, it doesn’t necessarily mean an Intel processor. Today, there are several manufacturers producing x86 processors, including Intel, AMD and VIA.
Although it is typically believed that x86 means 32-bit, this technically isn’t correct. Think about it this way: x86-64 is x86, but x86 isn’t x86-64.
IA-32 and i386
Intel Architecture 32-bit (IA-32) was the third generation of x86 and the first version of x86 to be 32-bit. The first and second generation were 16-bit.
i386 refers to the the Intel 80386, which was a very popular 32-bit CPU. The 80386 was Intel’s first processor to use the IA-32 instruction set.
While IA-32 refers to 32-bit Intel microarchitecture, i386 refers to a specific processor. It is common for these terms to be used interchangeably.
i486, i586 and i686
i486 refers to the Intel 80486, which was the fourth generation of x86 processors. It was released in 1989 and manufactured by Intel, AMD, IBM, Texas Instruments, and others.
i586 is really more of an unofficial name for the P5 microarchitecture released with the first Pentium branded CPU in 1993. It was the fifth generation of the x86 processor family.
The i686 is another unofficial name that refers to the P6 microarchitecture. This was the sixth generation of x86 based microarchitectures and was used by the Pentium Pro, released in 1995.
It’s pretty common to see Linux distributions with one of the minimum system requirements being i686. This means it’ll work on just about any x86 compatible computer with an Intel Pro or later. So if you have a computer released after 1995, chances are its i686 compatible.
x86-64 and the many other names of the 64-bit x86 instruction set
x86-64, x64, AMD64, EM64T, IA-32e and Intel 64 are all essentially the same thing. They all refer to the 64-bit variety of the x86 instruction set. AMD created the 64-bit version of x86 which is now implemented by Intel, AMD, and VIA. The AMD Opteron, using the K8 microarchitecture, was the first CPU to implement x86-64.
Right now, if you download the 64-bit version of Ubuntu, you’ll get a file called “ubuntu-14.04.1-desktop-amd64.iso”. The “amd64” at the end of the name might lead you to believe this version of the distribution is for AMD processors. Actually, it should work fine on any 64-bit x86 CPU.
Even though x86 has it’s name strongly rooted in Intel history, Intel doesn’t necessarily mean x86. This is the case with the Intel Itanium, which uses the IA-64 architecture (known more simply as the Intel Itanium architecture).
This is a very counterintuitive name. While IA-32 refers to the 32-bit variant of x86, IA-64 refers to the 64-bit variant of Intel Itanium, which is vary different from and incompatible with x86 CPUs.
PPC is short for PowerPC. This kind of processor was common in Macs until 2006, when the Mac dropped PowerPC in favor of Intel.