Architecture
uname 命令輸出中硬體平台的含義
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)中。
例如,用於區分由相同硬體類共享的核心模組和特定於某個硬體實現的模組。
POSIX
uname
定義-m
但不定義-i
. 在結構的條目中輸出系統呼叫-m
返回的機器名稱。可能的值取決於實現;在 Linux 系統上,它是核心的體系結構 ( , …)。uname(2)
machine
utsname
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()
則使用 by 給出的模型。這適用於一些 BSD 類型的平台。總之,這兩個值都依賴於實現,因此很難賦予它們真正的意義。