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 back
i386. Shouldn't it be a
x86_64? Did the seller misrepresent the item? Please see the screenshot below of 'About this Mac'.
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
See also this Ask Different Q&A.
On a macOS system, as on other BSD systems, you should use the
$ arch i386 $ machine x86_64h
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.
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.
$ 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.