Possible Duplicate:
Difference between x86_64 and i386

Whenever I download any files, I notice that the end of filename is sometimes x86_64.iso & sometimes it is i386.iso

What's the difference between these two?

I thought x86_64 means that iso would work on 32-bit as well as 64-bit OS, then what is i386.iso?


x86 refers to the general family of processors made by Intel, AMD, Cyrix, Siemens and etc. that use a common instruction set. Think of it as how we refer to certain human languages as being "latin based."

Within the x86 set of "languages" there are stair-stepped sub-languages. The most common three that you will run across in modern times are

  • i386
  • i486
  • i686

For more information on the different CPU instruction sets, see the Wikipedia article x86 instruction listings and note how each chip introduced a new set of instructions that, generally speaking, improved upon and added to the previous set before it.

Once again, I speak in general terms when I say this: The newer the instruction set that the OS can "speak", the more advanced features within the chip that can be taken advantage of to the benefit of the OS.

i[n]86 refers to the highest set of instructions within the x86 family of processors that the program / OS will utilize. Specific generations of chips have specific subsets of instructions such as the 80386, 80486, 80686 etc. If an ISO is demarcated as being i386, it means that it doesn't use instruction sets for the CPU above the 80386 standard set. It will run on all x86 CPUs however.

enter image description here

Generally, the older the instruction set that a OS needs, the broader the possible hardware that you can install it on. However, i686 is broad enough these days to where you'll likely never have any trouble installing it unless you're trolling through the dumpsters behind a dollar store.

32-bit vs 64-bit: If an ISO is designated as 64-bit, it will not run on 32-bit hardware. It must have 64-bit hardware. If the ISO is 32-bit, it will run on 64-bit hardware, but not utilize the extra address space that the hardware can see. Think of the "bit-rate" (poorly chosen term, I know) as being backward compatible, but not forward compatible. You can fit 32-bits onto 64-bits, but not 64-bits onto 32-bits.

  • 32-bit OS onto 32-bit hardware == Yep!
  • 32-bit OS onto 64-bit hardware == Yep!
  • 64-bit OS onto 32-bit hardware == Nope! (Chuck Tes... nevermind)
  • 64-bit OS onto 64-bit hardware == Yep!
  • Awesome pic. I'd give you a +2 if I could. – Aaron Dec 30 '11 at 3:31
  • 1
    @BryceAtNetwork23 A picture says a thousand instruction sets. – Wesley Dec 30 '11 at 3:33
  • Is there any command to see if my hardware is 32 bit or 64 bit??? I know there are different 32 bit & 64 bit OS but how do I confirm my hardware whether its 32 bit or 64 bit??? – Mike Dec 30 '11 at 4:21
  • @Mike Find out what CPU you have and then search its model online. Most hardware manufactured since the mid-2000s should be 64-bit. – Wesley Dec 30 '11 at 4:23
  • 1
    @Mike In linux run grep flags /proc/cpuinfo and see if lm is in the list. lm mean "long mode" and implies a 64-bit CPU. Real mode means 16 bit and Protected Mode means 32-bit. – Wesley Dec 30 '11 at 4:25

"I thought x86_64 means that iso would work on 32-bit as well as 64-bit OS"

"x86_64" will not work on a 32-bit processor. In fact, it shouldn't even let you install it.

Not the answer you're looking for? Browse other questions tagged or ask your own question.