该uname(1)命令行实用程序具有-m它打印"机器硬件名称"选项.
在Linux上,此字段来自系统调用填充的machine成员.struct utsnameuname(2)
许多其他语言API返回此信息:
os.uname()和platform.machine()php_uname()"机器"字段有哪些可能的值?
Jon*_*art 15
(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),我们可以在这个列表得出:
alphaarc
arm
aarch64_be(arm64)aarch64(arm64)armv8b(arm64compat)armv8l(arm64compat)
blackfin
c6xcrisfrvh8300hexagonia64m32rm68kmetagmicroblazemips (原生或兼职)mips64(mips)mn10300nios2openriscparisc (原生或兼职)parisc64(parisc)ppc(powerpc原生或兼职)ppc64(powerpc)ppcle(powerpc原生或兼职)ppc64le(powerpc)s390(s390xcompat)s390xscoreshsh64(sh)sparc (原生或兼职)sparc64(sparc)tileunicore32i386(x86)i686(x86compat)x86_64(x64)xtensa