What does i386 mean on macOS Mojave?
Solution 1
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.
Solution 2
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
Solution 3
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.
Related videos on Youtube
![WobblyWindows](https://i.stack.imgur.com/UQDcv.jpg?s=256&g=1)
WobblyWindows
Updated on September 18, 2022Comments
-
WobblyWindows almost 2 years
I'm on a second-hand MacBook Pro from late 2013 (Mojave 10.14.3) and when I type
arch
on the Terminal, I get backi386
. Shouldn't it be ax86_64
? Did the seller misrepresent the item? Please see the screenshot below of 'About this Mac'. -
Seamus about 5 yearsNot to make a mountain of a molehill, but AFAIK, there's no documentation from Apple to indicate that
i386
designation implies it's capable of running 32-bit software...man arch
certainly doesn't suggest that. IMHO, Apple's just dropped the ball, and allowed things to get a bit messy - perhaps in the name of backward compatibility? -
WobblyWindows about 5 yearsyep! I did
uname -m
and it gave mex86_64
. So I guess it's a 64 bit CPU architecture. I triedarch
just to try out a cmd that I had bumped into while studying for a Linux certification.