What is the difference between i686 and x86_64?

I have an AMD Turion and do not know which version to choose from when installing Arch Linux.


Solution 1:

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.

Solution 2:

Short answer:

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

Solution 3:

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.

Solution 4:

macemoneta explains

Basically, the different kernel designations identify which instruction set the compiler was told to optimize for. An i686 CPU can run i586 and i386 instructions, so, as you observed, an i686 can run an i386 kernel. However, it may not execute as optimally as one specifically compiled for an i686.

These are the designations you will typically run into:

x86_64 Processors

  • AMD's Athlon 64, Athlon 64-FX, and Opteron
  • Intel EMT64 processors - Nocona Xeon, Pentium 4's using the E0 revision of the Prescott core (AKA Pentium 4, model F)

i686 Processors * All Intel 32-bit Pentiums (excluding Pentium 1 and Pentium MMX) * All AMD 32-bit Athlons

i586 Processors

  • All 32-bit AMD Ks
  • Pentium 1
  • Pentium MMX

i386 Processors

  • A generic "lowest common denominator" designation for Intel 80386 compatible CPUs (includes all of the above, but does not take advantage of extended instructions on those later CPUs).