Architecture

uname 命令輸出中硬體平台的含義

  • June 12, 2015
man uname
   -m, --machine             print the machine hardware name
   -i, --hardware-platform   print the hardware platform or "unknown"

這裡的硬體平台到底是什麼意思,和“機器硬體名稱”有什麼區別?我在 SE 上發現了一些相關問題,但接受的答案之間似乎存在一些矛盾。我在哪裡可以找到有關此命名法的準確資訊?

更多資訊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)中。

例如,用於區分由相同硬體類共享的核心模組和特定於某個硬體實現的模組。

POSIXuname定義-m但不定義-i. 在結構的條目中輸出系統呼叫-m返回的機器名稱。可能的值取決於實現;在 Linux 系統上,它是核心的體系結構 ( , …)。uname(2)machineutsnamex86_64``i686

要了解使用的各種機器名稱,請查看config.guess:每組值的第一個元素是機器名稱,您會看到macppc, alpha, Alpha, 21064

GNU coreutilsuname定義-i為輸出硬體平台名稱,如果可以確定的話。要了解這意味著您需要查看原始碼。如果系統uname建立在支持之上sysinfo(SI_PLATFORM, ...)autoconf聲稱是 POSIX,但我無法驗證),則使用返回的硬體平台。例如,這適用於 SunOS 和 Solaris,但不適用於 Linux。如果sysinfo不可用,sys/sysctl.h則檢查包含HW_MODELHW_MACHINE_ARCH,如果它們都已定義,sysctl()則使用 by 給出的模型。這適用於一些 BSD 類型的平台。

總之,這兩個值都依賴於實現,因此很難賦予它們真正的意義。

引用自:https://unix.stackexchange.com/questions/209015