What does i386 mean on macOS Mojave?
According to this SO answer, arch
distinguishes between PowerPC (ppc
) and Intel (i386
), not between 32- and 64-bit kernels on x86. So in this context, i386
means an x86 CPU.
Check the output of uname -m
to find out your machine type. (On Linux, arch
is the equivalent of uname -m
.)
See also this Ask Different Q&A.
On a macOS system, as on other BSD systems, you should use the machine
utility:
$ arch
i386
$ machine
x86_64h
The i386
is misleading if you're used to the arch
utility on other systems. On macOS Mojave, i386
means it's capable of running 32-bit software compiled for the Intel family of processors. Note that the arch
utility on macOS is used for quite different things compared to on e.g. Linux (see its manual).
You may also use uname -m
as on Linux:
$ uname -m
x86_64
I feel that using the "traditional" utilities (e.g. arch
, uname
, sw_vers
) to discover your Mac's hardware or software may not be very reliable. It's certainly inconsistent! Even the system manuals are rife with inconsistencies.
This is not to say that you can't get useful information from these utilities, it's only to say that unless you know what you're looking for, you may get results that are different from what you get on other systems.
For example:
$ arch
i386
No! (Unless you're using a really old computer.)
Another example is the OS version. man sw_vers
and man uname
both claim to report "OS Version":
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.14.4
BuildVersion: 18E226
$ uname -v
Darwin Kernel Version 18.5.0 .... # output snipped
Which is all well and good - we're aware that kernel and distro release version numbering is different, but the system manuals for both of these commands say you get OS Version
. Understanding the genesis of the current macos
explains some of this, but it doesn't explain why the system manuals are inconsistent.
And so, to the OP's question regarding how to get clear and reliable information on a system, I feel the answer should be to use system_profiler
for both hardware and 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
Also, the system manual for system_profiler
seems to be maintained to a more current state.
And finally, as to the Headline Question: "What does [the output of arch
] i386 mean on macOS Mojave?". Answer: Unfortunately, it means that Apple has not maintained their documentation and/or apps properly.