`uname -m`的可能值

Jon*_*art 13 unix linux

uname(1)命令行实用程序具有-m它打印"机器硬件名称"选项.

在Linux上,此字段来自系统调用填充的machine成员.struct utsnameuname(2)

许多其他语言API返回此信息:

"机器"字段有哪些可能的值?

Jon*_*art 15

Linux的

(v4.12 - 2017年7月)

我们来看一下newuname系统调用的来源.

由于Linux具有UTS命名空间,因此该字段由宏初始化,该宏是按架构定义的.init_uts_ns machineUTS_MACHINE

如果进程在32位"compat"个性下运行,machine则可以覆盖 更复杂的问题.override_architecture()COMPAT_UTS_MACHINE

UTS_MACHINE默认Makefile为相同的东西ARCH.但是,许多平台在同一arch目录下具有单独的子架构,因此它们UTS_MACHINE自行设置

随着目录列表arch/和一个小grep的Linux内核源(-ing git grep 'UTS_MACHINE\s*:='git grep COMPAT_UTS_MACHINE),我们可以在这个列表得出:

  • alpha
  • arc

  • arm

  • aarch64_be(arm64)
  • aarch64(arm64)
  • armv8b(arm64compat)
  • armv8l(arm64compat)

  • blackfin

  • c6x
  • cris
  • frv
  • h8300
  • hexagon
  • ia64
  • m32r
  • m68k
  • metag
  • microblaze
  • mips (原生或兼职)
  • mips64(mips)
  • mn10300
  • nios2
  • openrisc
  • parisc (原生或兼职)
  • parisc64(parisc)
  • ppc(powerpc原生或兼职)
  • ppc64(powerpc)
  • ppcle(powerpc原生或兼职)
  • ppc64le(powerpc)
  • s390(s390xcompat)
  • s390x
  • score
  • sh
  • sh64(sh)
  • sparc (原生或兼职)
  • sparc64(sparc)
  • tile
  • unicore32
  • i386(x86)
  • i686(x86compat)
  • x86_64(x64)
  • xtensa

  • ....对于当前这一代Linux.毫无疑问,过去其他价值观,无疑将成为未来的其他价值观. (5认同)
  • @JonathonReinhart - 这很快就会像浏览器标识字符串一样 - 例如,“aarch64”是 ARM 架构,但不以“arm”开头或包含“arm”。对于类似 x86 的 CPU,我们有 i386、i686 或 x86_64(尽管我的 Windows 安装的 python 返回 AMD64)。 (3认同)
  • 据 f.ex 报道,该列表缺少“armv7l”。通过以 32 位模式运行的 Raspberry Pi 4 (2认同)
  • 另一个列表可以在 https://en.wikipedia.org/wiki/Uname 找到 (2认同)