Risposte:
Secondo questa risposta SO , arch
distingue tra PowerPC ( ppc
) e Intel ( i386
), non tra kernel a 32 e 64 bit su x86. Quindi, in questo contesto, i386
significa una CPU x86.
Controllare l'output di uname -m
per scoprire il tipo di macchina. (Su Linux, arch
è l'equivalente di uname -m
.)
Vedi anche questo Chiedi domande e risposte diverse .
Su un sistema macOS, come su altri sistemi BSD, è necessario utilizzare l' machine
utilità:
$ arch
i386
$ machine
x86_64h
Il i386
è fuorviante se siete abituati al arch
programma di utilità su altri sistemi. Su macOS Mojave, i386
significa che è in grado di eseguire software a 32 bit compilato per la famiglia di processori Intel. Nota che l' arch
utilità su macOS è usata per cose abbastanza diverse rispetto ad esempio su Linux (vedi il suo manuale).
Puoi anche usare uname -m
come su Linux:
$ uname -m
x86_64
i386
designazione implica che è in grado di eseguire software a 32 bit ... man arch
certamente non lo suggerisce. IMHO, Apple ha appena lasciato cadere la palla e ha permesso alle cose di diventare un po 'confuse, forse in nome della compatibilità con le versioni precedenti?
Ritengo che l'utilizzo delle utility "tradizionali" (ad es arch
. uname
, sw_vers
) Per scoprire l'hardware o il software del tuo Mac potrebbe non essere molto affidabile. È sicuramente incoerente! Anche i manuali di sistema sono pieni di incongruenze.
Questo non vuol dire che non è possibile ottenere informazioni utili da queste utilità, è solo per dire che, a meno che non si sappia cosa si sta cercando, è possibile ottenere risultati diversi da quelli ottenuti su altri sistemi.
Per esempio:
$ arch
i386
No! (A meno che tu non stia utilizzando un computer molto vecchio.)
Un altro esempio è la versione del sistema operativo. man sw_vers
ed man uname
entrambi affermano di segnalare "Versione del sistema operativo":
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.14.4
BuildVersion: 18E226
$ uname -v
Darwin Kernel Version 18.5.0 .... # output snipped
Il che va bene e va bene - siamo consapevoli che la numerazione delle versioni di release di kernel e distro è diversa, ma i manuali di sistema per entrambi questi comandi dicono che ottieni OS Version
. Comprendere la genesi della correntemacos
spiega in parte questo, ma non spiega perché i manuali di sistema siano incoerenti.
E quindi, alla domanda del PO su come ottenere informazioni chiare e affidabili su un sistema, ritengo che la risposta dovrebbe essere da utilizzare system_profiler
sia per l'hardware che per il software:
$ 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
Inoltre, il manuale di sistema per system_profiler
sembra essere mantenuto a uno stato più attuale.
E infine, per quanto riguarda la domanda principale : "Che cosa significa [l'output di arch
] i386 su macOS Mojave?" . Risposta: Sfortunatamente, significa che Apple non ha gestito correttamente la propria documentazione e / o app.
uname -m
e mi ha datox86_64
. Quindi immagino sia un'architettura CPU a 64 bit. Ho provatoarch
solo a provare un cmd in cui mi ero imbattuto mentre studiavo per una certificazione Linux.