uname(1)命令行实用程序有一个-m选项,用于打印“机器硬件名称”。
在Linux上,这个字段来自struct utsname的struct utsname成员,由uname(2)系统调用填充。
许多其他语言API返回以下信息:
os.uname()和platform.machine()php_uname()“机器”字段的可能值是什么?
发布于 2017-07-16 05:57:05
Linux
(4.12-2017年7月)
让我们参考新名系统调用的源。
由于Linux有UTS命名空间这一事实,跟踪这一点很复杂,但是init_uts_ns machine字段是由UTS_MACHINE宏初始化的,该宏是按体系结构定义的。
更复杂的是,如果进程在32位"compat“人格下运行,machine可以通过override_architecture()被覆盖到COMPAT_UTS_MACHINE。
UTS_MACHINE在Makefile中默认为与ARCH相同的内容。然而,许多平台在同一个arch目录下有独立的子体系结构,因此它们自己设置了UTS_MACHINE。
有了arch/中的目录列表和Linux内核源代码(git grep 'UTS_MACHINE\s*:='和git grep COMPAT_UTS_MACHINE)的少量grep-ing,我们就可以得出以下列表:
alphaarcarmaarch64_be (arm64)aarch64 (arm64)armv8b (arm64 compat)armv8l (arm64 compat)blackfinc6xcrisfrvh8300hexagonia64m32rm68kmetagmicroblazemips (本地或公司)mips64 (mips)mn10300nios2openriscparisc (本地或公司)parisc64 (parisc)ppc (powerpc原生或公司)ppc64 (powerpc)ppcle (powerpc原生或公司)ppc64le (powerpc)s390 (s390x compat)s390xscoreshsh64 (sh)sparc (本地或公司)sparc64 (sparc)tileunicore32i386 (x86)i686 (x86 compat)x86_64 (x64)xtensahttps://stackoverflow.com/questions/45125516
复制相似问题