【问题标题】:Possible values for `uname -m``uname -m` 的可能值
【发布时间】:2017-12-20 21:15:39
【问题描述】:

uname(1) 命令行实用程序有一个-m 选项,用于打印“机器硬件名称”。

在 Linux 上,此字段来自 struct utsnamemachine 成员,由 uname(2) 系统调用填充。

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

“机器”字段的可能值是什么?

【问题讨论】:

  • Python 的os.uname() 在配置Botan library 时给Jack Lloyd 确定操作系统和平台带来了相当大的麻烦。 Linux 和 BSD 都可以,但其他一些似乎提供的结果不一致,例如 MinGW、Cygwin、Solaris、Dragonfly 等。您可能想看看botan/configure.py。如果有什么安慰的话,Cmake 就更糟了。

标签: linux unix


【解决方案1】:

Linux

(v4.12 - 2017 年 7 月)

让我们参考newuname系统调用的来源。

由于 Linux 具有 UTS namespaces,但 init_uts_ns machine 字段由 UTS_MACHINE 宏初始化,该字段是按架构定义的。

更复杂的问题是,machine 可以通过 override_architecture() 覆盖,如果进程在 32 位“兼容”个性下运行,则可以覆盖 COMPAT_UTS_MACHINE

UTS_MACHINEMakefile 中的默认值与ARCH 相同。但是很多平台在同一个arch目录下都有独立的子架构,所以他们自己设置UTS_MACHINE

有了arch/ 中的目录列表和一点Linux 内核源代码的grep-ing(git grep 'UTS_MACHINE\s*:='git grep COMPAT_UTS_MACHINE),我们可以得出这个列表:

  • alpha
  • arc

  • arm

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

  • blackfin

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

【讨论】:

  • .... 适用于当前一代的 Linux。毫无疑问,过去有其他价值观,未来也无疑会有其他价值观。
  • @StephenC 绝对。在我的例子中,我想到了一些架构,并想知道如何最好地检测它们。具体来说,我说if platform.machine().startswith('ppc'),然后是PowerPC,if platform.machine().startswith('arm'),然后是ARM。
  • @JonathonReinhart - 这很快就会变成浏览器识别字符串 - 例如,“aarch64”是 ARM 架构,但不以“arm”开头或不包含“arm”。对于类似 x86 的 CPU,我们有 i386、i686 或 x86_64(尽管我的 windows 安装的 python 返回 AMD64)。
  • 此列表丢失 armv7l,报告 f.ex。由 Raspberry Pi 4 在 32 位模式下运行
  • 另一个列表可以在en.wikipedia.org/wiki/Uname找到
猜你喜欢
  • 2013-10-29
  • 2022-01-23
  • 1970-01-01
  • 2022-07-23
  • 2018-06-20
  • 2021-10-26
  • 1970-01-01
  • 2011-10-20
  • 2021-05-15
相关资源
最近更新 更多