I know that, for 32-bit Intel Linuces, it returns i[3-6]86. For 64-bit Intel, it says x86_64. But what about other, exotic architectures? (PowerPC, Alpha, SPARC...) Is there an authoritative list somewhere?

Bonus points if there's info about other non-Linux Unices too.


i386 i686 x86_64 ia64 alpha amd64 arm armeb armel hppa m32r m68k mips mipsel powerpc ppc64 s390 s390x sh3 sh3eb sh4 sh4eb sparc

Found here, on the right. The list is no full i guess, but close to that :) Googling for linux "list of architectures" helps!

  • I assume you mean the list of related questions. I see no question that could have that, could you give the link or at least what the question sounded like?
    – JCCyC
    Sep 10 '09 at 18:58
  • 1
    No, there's list of architectures supported by "alsa" package, which I believe has all popular archs included :) I've already made-up this list for you, there's no additional info on that page.
    – kolypto
    Sep 11 '09 at 18:34
  • Just realized that my uname -m shows 'x86_64' and 'i686'. Curious...
    – kolypto
    Nov 15 '09 at 0:58
  • If you would run a 32 bit -generic kernel on a 64 bit processor, uname would report i686, not x86_64.
    – kolypto
    Nov 15 '09 at 1:00
  • That list is not a list of architectures which would show up in uname -m. amd64 is not a Linux kernel architecture. See stackoverflow.com/questions/45125516/…. Jul 16 '17 at 6:00

I'd hardly call PowerPC, Alpha or SPARC "exotic".

The values returned by uname are quite arbitrary, they form an open set. You may find lists of some possible values (autoconf project has one), but there is no real list that will list everything.

  • 1
    Have a look through a recent config.sub and config.guess from the autoconf source and you'll see a wide non-comprehensive list of possibilities. Sep 8 '09 at 22:18

Maybe someone knows of a complete list somewhere...

As far as how the kernel implements the uname system call, filling in the proper information for the uname structure is spread across each of the arch directories in the kernel. So filling in the processor name and machine type for an x86 processor is done within the arch/x86 kernel source tree, and filling in that information for a powerpc is done someplace within the arch/powerpc tree.

I would figure that the kernel source has the answer to your question, it just may be that finding it may be time consuming.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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