uname 命令输出中硬件平台的含义

uname 命令输出中硬件平台的含义
 man uname
    -m, --machine             print the machine hardware name
    -i, --hardware-platform   print the hardware platform or "unknown"

这里的硬件平台到底是什么意思?它与“机器硬件名称”有何不同?我在SE上发现了一些相关问题,但接受的答案似乎存在一些矛盾。我在哪里可以找到有关此术语的准确信息?

答案1

POSIXuname定义-m但不是-i.-m输出由返回的机器名称uname(2)系统调用,在machine条目中utsname结构。可能的值取决于实现;在 Linux 系统上,它是内核的架构(x86_64, i686...),并且可以通过进程的个性来修改

要了解所使用的各种机器名称,请查看config.guess:每组值的第一个元素是机器名称,您将看到macppc, alpha, Alpha, 21064...

GNU coreutils'uname定义-i为输出硬件平台名称(如果可以确定)。要了解这意味着什么,您需要查看源代码。如果系统uname是建立在支撑之上的sysinfo(SI_PLATFORM, ...)autoconf声称是POSIX,但我无法验证),然后使用那里返回的硬件平台。例如,这适用于 SunOS 和 Solaris,但不适用于 Linux。如果sysinfo不可用,则sys/sysctl.h检查包含HW_MODEL和,如果它们都定义了,则使用HW_MACHINE_ARCH给出的模型。sysctl()这适用于某些 BSD 类型的平台。

总之,这两个值都依赖于实现,因此很难赋予它们真正的含义。

答案2

更多信息info uname

`-i'
`--hardware-platform'
     Print the hardware platform name (sometimes called the hardware
     implementation).  Print `unknown' if the kernel does not make this
     information easily available, as is the case with Linux kernels.

`-m'
`--machine'
     Print the machine hardware name (sometimes called the hardware
     class or hardware type).

基本上分类类型 - 您可以有不同的硬件实现 (-i),但具有/在相同的硬件类 (-m) 中。

例如,用于区分同一硬件类共享的内核模块和特定于特定硬件实现的模块。

相关内容