我刚刚检查了一下uname
,发现-m
结果-p
相同,但-i
返回的结果不同。i686 和 i386 有什么区别?
$ uname -mpi
给出i686 i686 i386
。
答案1
答案不多,但是...
uname -mpi 给出:
在我的(64 位)i7 Intel xenial 系统上:
x86_64 x86_64 x86_64
在我的 Ubuntu BQ Aquaris m10 平板电脑上
aarch64 aarch64 aarch64
在 qemnu-arm 模拟系统上
armv7l armv7l armv7l
在 32 精度系统上
i686 i686 i386
xenial 的手册页说
-m, --machine
print the machine hardware name
-p, --processor
print the processor type (non-portable)
-i, --hardware-platform
print the hardware platform (non-portable)
虽然精确的手册页说
-m, --machine
print the machine hardware name
-p, --processor
print the processor type or "unknown"
-i, --hardware-platform
print the hardware platform or "unknown"
这个 GNU 手册页提供更多信息:
processor
打印处理器类型(有时称为指令集架构或 ISA)。如果此信息不可用,则打印“未知”。请注意,这是不可移植的(即使跨 GNU/Linux 发行版)。
machine
打印机器硬件名称(有时称为硬件类别或硬件类型)。
hardware-platform
打印硬件平台名称(有时称为硬件实现)。如果此信息不可用,则打印“未知”。请注意,这是不可移植的(即使跨 GNU/Linux 发行版)。
hardware-platform
这样说是有道理的,i386
因为(我相信)这是第一个 32 位 x86 处理器。(并且所有后续的 32 位 x86 处理器都与它兼容)
我猜测(不可移植)意味着它可能无法在某些平台上给出合理的答案 - 所以就我的使用而言,我认为我坚持使用uname -m
答案2
-p == central processor
-m == mainboard (housing the periphery parts the cpu needs to be able to work)
-i == architecture the OS was compiled against
x86
指的是 32 位英特尔处理器架构,其中i386
和i686
是不同的处理器系列成员,它们实现相同的架构,但具有不同的功能集。只要较新的系列向后兼容,它们就属于同一架构。
根据 CPU / 主板 / OS(字面上)所构建的处理器架构规范,您可以使用不同的 CPU 指令集。
因为在您的情况下,您的 CPU 和主板支持与您的操作系统相同的指令集,并且您的操作系统不使用您的硬件不支持的功能,所以您不会遇到任何问题。