Answers:
根据该SO答案,arch
区分PowerPC(ppc
)和Intel(i386
),而不是x86上的32位和64位内核。因此,在这种情况下,i386
意味着x86 CPU。
检查的输出uname -m
以找出您的机器类型。(在Linux上,arch
等效于uname -m
。)
另请参阅“ 询问不同的问题与解答”。
在macOS系统上,就像在其他BSD系统上一样,您应该使用该machine
实用程序:
$ arch
i386
$ machine
x86_64h
的i386
,如果你使用的是误导arch
其他系统上的程序。在macOS Mojave上,i386
意味着它能够运行为Intel处理器系列编译的32位软件。请注意,与arch
macOS相比,macOS 上的实用程序用于完全不同的事情(请参见其手册)。
您也可以uname -m
在Linux上使用as:
$ uname -m
x86_64
i386
名称暗示它能够运行32位软件... man arch
当然不建议这样做。恕我直言,苹果公司只是丢球了,让事情变得有些混乱-也许是以向后兼容的名义?
我觉得用“传统”的工具(例如arch
,uname
,sw_vers
)来发现Mac的硬件或软件可能不是很可靠。肯定是不一致的!甚至系统手册也充斥着不一致之处。
这并不是说您无法从这些实用程序中获得有用的信息,而是说除非您知道所要查找的内容,否则您得到的结果可能会与其他系统上得到的结果有所不同。
例如:
$ arch
i386
没有!(除非您使用的是真正的旧计算机。)
另一个示例是OS版本。man sw_vers
并且man uname
都声称报告“ OS版本”:
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.14.4
BuildVersion: 18E226
$ uname -v
Darwin Kernel Version 18.5.0 .... # output snipped
一切都很好,我们知道内核和发行版的版本编号是不同的,但是这两个命令的系统手册都说you get OS Version
。了解电流macos
的起源可以解释其中的某些原因,但不能解释为什么系统手册不一致。
因此,对于OP关于如何在系统上获得清晰可靠信息的问题,我认为答案应该是同时system_profiler
用于硬件和软件:
$ system_profiler SPHardwareDataType
Hardware:
Hardware Overview:
Model Name: MacBook Pro
Model Identifier: MacBookPro13,3
Processor Name: Intel Core i7
Processor Speed: 2.9 GHz
Number of Processors: 1
Total Number of Cores: 4
L2 Cache (per Core): 256 KB
L3 Cache: 8 MB
Memory: 16 GB
Boot ROM Version: 254.0.0.0.0
SMC Version (system): 2.38f7
Serial Number (system): C02*********
Hardware UUID: ********-****-****-****-************
$ system_profiler SPSoftwareDataType
Software:
System Software Overview:
System Version: macOS 10.14.4 (18E226)
Kernel Version: Darwin 18.5.0
Boot Volume: Macintosh HD
Boot Mode: Normal
Computer Name: MacBook No 2
User Name: Seamus (seamus)
Secure Virtual Memory: Enabled
System Integrity Protection: Enabled
Time since boot: 13:13
另外,system_profiler
似乎系统手册仍处于最新状态。
最后,关于标题问题:“ [ arch
i386 的输出在macOS Mojave上意味着什么?” 。答:不幸的是,这意味着 Apple没有正确维护其文档和/或应用程序。
uname -m
,它给了我x86_64
。所以我想这是64位CPU架构。我arch
只是想尝试一个在学习Linux认证时碰到的cmd。