What is the difference between i686 and x86_64?

Short answer:

i686 = 32-bit Intel x86 arch 
x86_64 = 64-bit Intel x86 arch

i686 is the 32-bit version, and x86_64 is the 64-bit version of the OS.

The 64-bit version will scale with memory better, particularly for workloads like large databases which need to use lots of ram in the same process. Do not consider running a (significant) database server on a 32-bit machine.

However, for most other things the 32-bit version is ok. 32-bit code uses up less memory, so you'll have more for other things. The limit on the memory the OS can use is not different, just the memory per process.

So it really depends what you want to use it for. If you're planning on developing software for large servers, or running large servers, use 64-bit. Otherwise use 32.


ix86 is an indication of the processor instruction set by generation of processor. For example: Intel Pentium, Intel Core2Duo, AMD K6. ix86 has been around for many years, if you have a processor made after 2000, it probably at least has the i686 instruction set. The absence of other indicators hints that this would be the 32 bit version.

x86_64 is indicating use of 64 bit registers and address space. Only choose this if you have a 64 bit processor and you want to use the 64 bit version of the operating system.

The choice is yours. I believe all AMD Turion processors have 64 bit support. You just need to decide if you want the 64 bit version or the 32 bit version of Arch Linux.

Tags:

Architecture