1

Which packages should install for Architectures EM64T® , x86-64 , ia32 , IA64 , Intel®64 , x86 , amd64 , amd32 , Mach64 ?

Braiam
  • 67,791
  • 32
  • 179
  • 269
V.L.
  • 21
  • 2
    Mach64 is a GPU/co-processor architecture. Most of the rest are just a (marketing) alias for basically the same architecture as another in your listing. I can only 3 find truly distinct ones: x86, amd64 and IA-64. – David Foerster Oct 15 '13 at 20:53

1 Answers1

5

In practice, on modern Windows and GNU/Linux, the following are indistinguishable (meaning, if your system claims to support at least one of these, the same software will run on these):

  • EM64T
  • x86-64
  • Intel 64
  • amd64

Likewise for these:

  • ia32
  • x86
  • amd32

IA64 is "Itanium", which is a totally different architecture that is not in any way related to any of the above.

Also, all modern CPUs that support the first group (amd64, etc.) also support code compiled for the second group (x86, etc.) because 64-bit CPUs can execute 32-bit code in a sort of compatibility mode.

There's also an x32 architecture, which is a very new development in software and currently only supported on GNU/Linux, which uses 32-bit addresses, with the 64-bit (amd64) architecture.

So, throwing out all the marketing terminology, what we really have as far as distinct software compatibility environments is:

  • amd64, which uses the 64-bit instruction set and uses 64-bit virtual addresses (actually 48-bit in current implementations);
  • x86, which uses the 32-bit instruction set and uses 32-bit virtual addresses;
  • IA64 also known as Itanium, which runs on "Itanium" CPUs only (and uses a 64-bit virtual address);
  • x32, which uses the 64-bit instruction set and 32-bit virtual addresses (basically the instructions/registers from amd64, and the memory model of x86). This results in slightly reduced memory usage in sacrifice for a lower maximum memory per process.