Ответы:
Согласно этому ответу SO , arch
различаются PowerPC ( ppc
) и Intel ( i386
), а не между 32- и 64-разрядными ядрами на x86. Так что в этом контексте i386
означает процессор x86.
Проверьте вывод, uname -m
чтобы узнать тип вашей машины. (В Linux arch
это эквивалентно uname -m
.)
Смотрите также этот вопрос .
В системе MacOS, как и в других системах BSD, вы должны использовать machine
утилиту:
$ arch
i386
$ machine
x86_64h
Это i386
вводит в заблуждение, если вы привыкли к arch
утилите в других системах. В MacOS Mojave i386
означает, что он способен работать с 32-разрядным программным обеспечением, скомпилированным для семейства процессоров Intel. Обратите внимание, что arch
утилита в macOS используется для совершенно других целей, чем, например, в Linux (см. Руководство).
Вы также можете использовать uname -m
как в Linux:
$ uname -m
x86_64
i386
обозначение подразумевает, что она способна работать с 32-битным программным обеспечением ... man arch
конечно, не предполагает этого. ИМХО, Apple просто бросила мяч и позволила вещам немного запутаться - возможно, во имя обратной совместимости?
Я чувствую , что с помощью «традиционных» коммунальных услуг (например arch
, uname
, sw_vers
) , чтобы открыть ваше оборудование или программное обеспечение Mac не может быть очень надежным. Это конечно противоречиво! Даже системные руководства изобилуют несоответствиями.
Это не означает, что вы не можете получить полезную информацию из этих утилит, это просто означает, что если вы не знаете, что ищете, вы можете получить результаты, которые отличаются от того, что вы получаете в других системах.
Например:
$ arch
i386
Нет! (Если вы не используете действительно старый компьютер.)
Другой пример - версия ОС. man sw_vers
и man uname
оба утверждают, что сообщают «Версия ОС»:
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.14.4
BuildVersion: 18E226
$ uname -v
Darwin Kernel Version 18.5.0 .... # output snipped
Что все хорошо, мы знаем, что нумерация версий ядра и дистрибутива отличается, но системные руководства для обеих этих команд говорят, что вы получите OS Version
. Понимание происхождения данного событияmacos
объясняет некоторые из них, но не объясняет, почему системные руководства противоречивы.
И поэтому, на вопрос ОП относительно того, как получить четкую и надежную информацию о системе, я считаю, что ответом должно быть использование 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-битная архитектура процессора. Я попыталсяarch
просто попробовать cmd, с которым столкнулся, изучая сертификацию Linux.