If I look at my application list in System Information some apps have a 'kind' of Universal and others 'Apple Silicon'. What's the distinction?
Thanks!
If I look at my application list in System Information some apps have a 'kind' of Universal and others 'Apple Silicon'. What's the distinction?
Thanks!
The Mach-O executable format supports multiple architectures in the same executable file, such as aarch64, x86_64, ppc, and so on. Such a file is usually referred to as a "fat binary" or "Universal application" in the Apple marketing jargon, as it allows a single binary file to be easily shipped and executed on different platforms.
This has helped Apple during the PowerPC->Intel transition in the '00s, and the same concept is now being reused to smoothen the x86_64->AArch64 transition.
"Apple Silicon" is just a marketing term Apple uses to refer to the AArch64-based chips they design in-house (both mobile and desktop). You may consider it as a synonym for "AArch64".
Going back to your question, the kind field displayed in System Information->Software->Applications shows you for which platforms the applications installed on your computer have been built.
An "Apple Silicon" application will only contain code built for AArch64, an "Intel" one will only run under x86_64, and a "Universal" app will contain code for both of them.
You may also use the lipo tool from XCode to inspect what architectures a given Mach-O binary contains:
$ lipo -detailed_info /Applications/Firefox.app/Contents/MacOS/firefox
Fat header in: /Applications/Firefox.app/Contents/MacOS/firefox
fat_magic 0xcafebabe
nfat_arch 2
architecture x86_64
cputype CPU_TYPE_X86_64
cpusubtype CPU_SUBTYPE_X86_64_ALL
capabilities CPU_SUBTYPE_LIB64
offset 4096
size 41728
align 2^12 (4096)
architecture arm64
cputype CPU_TYPE_ARM64
cpusubtype CPU_SUBTYPE_ARM64_ALL
capabilities 0x0
offset 49152
size 91232
align 2^14 (16384)
$ lipo -detailed_info /bin/ls
Fat header in: /bin/ls
fat_magic 0xcafebabe
nfat_arch 2
architecture x86_64
cputype CPU_TYPE_X86_64
cpusubtype CPU_SUBTYPE_X86_64_ALL
capabilities 0x0
offset 16384
size 59536
align 2^14 (16384)
architecture arm64e
cputype CPU_TYPE_ARM64
cpusubtype CPU_SUBTYPE_ARM64E
capabilities PTR_AUTH_VERSION USERSPACE 0
offset 81920
size 75440
align 2^14 (16384)
As you see, both Firefox and the system-provided ls have both been built and shipped as fat binaries.