Please explain the difference between x86
, x32
and x64
? Its a bit confusing when it comes to x86
and x32
because most of the time 32-bit programs run on x86...
Related/possible duplicate which also covers terms like IA-32 used in official docs:
x86 refers to the Intel processor architecture that was used in PCs. Model numbers were 8086, 8088 (8-bit bus version of 8086 and used in the first IBM PC), 286, 386, 486. After which they switched to names instead of numbers to stop AMD from copying the processor names. Pentium etc, never a Hexium :).
x64 is the architecture name for the extensions to the x86 instruction set that enable 64-bit code. Invented by AMD and later copied by Intel when they couldn't get their own 64-bit arch to be competitive, Itanium didn't fare well. Other names for it are x86_64, AMD's original name and commonly used in open source tools. And amd64, AMD's next name and commonly used in Microsoft tools. Intel's own names for it (EM64T and "Intel 64") never caught on.
x32 is a fuzzy term that's not associated with hardware. It tends to be used to mean "32-bit" or "32-bit pointer architecture", Linux has an ABI by that name.