Відповіді:
Згідно цього 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.