3 ms·
why would a mac with an intel processor need OS binary code for an arm processor? I can understand apps having both, because the app needs to run on M1 or inte
by wombat-man 6y ago
why would a mac with an intel processor need OS binary code for an arm processor?
I can understand apps having both, because the app needs to run on M1 or intel. But having both OS binaries is just dead disk space.
- boardwaalk 6y agoI mean, it wouldn't but that is the way it works. Ex: $ file /usr/bin/ssh /usr/bin/ssh: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64e] $ file /Applications/Numbers.app/Contents/MacOS/Numbers /Applications/Numbers.app/Contents/MacOS/Numbers: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64] It's probably nice to have a single release for both platforms. And the installer and a clean install is only 12-14GB, not that heavy a lift.
- alwillis 6y agowhy would a mac with an intel processor need OS binary code for an arm processor? Remember that all of the resources—images, text, icons, etc.—are shared between the Intel and ARM binaries. There are a few use cases: • For troubleshooting, you can have one external hard drive/SSD that can boot both Intel and M1 Macs. This is very handy; this was pretty common back in the PowerPC to Intel days. • Same thing with running certain apps. You're doing some video rendering on an Intel Mac. Your buddy has an M1 Mac. You can boot his Mac with your external drive containing your Big Sur and your apps and you'll get the 3x speed up on your renders by using their M1 Mac mini or whatever. Back in the day, you could put an Intel Mac into Target Disk Mode where it would act as an external hard drive and boot a PowerPC from it. • When Intel Mac users running Big Sur buy M1 Macs, they can use Apple's Migration Assistant which will transfer all of their settings, apps, etc. from the Intel Mac to the M1 Mac. No need to re-install the apps—they'll just work on the M1 Mac. The Universal apps will run natively and the Intel-only apps will run using Rosetta 2. These Universal apps (or fat binaries as they were known back in the day, going back to NeXTStep in 1989 or 1990) aren't just a Mac-thing. When Apple transitioned iOS from 32-bit ARM to 64-bit ARM, apps contained the binaries for both. They later updated the OS to only download the version for your particular device, which made sense, since iOS devices then had far less storage than today's devices have.
- wombat-man 6y ago- Yes it makes sense that apple might make such a boot tool that has both versions on it. I don't think it helps anything to have m1 macOS binaries on my intel mbp. - again, yes it would make sense to have this if you're booting from an external drive. Should be optional to have both binaries though. - yes, the apps themselves will have binaries for both. That makes sense to me since you want one download link for an app and a lot of users don't want to think about what kind of mac they have. the OS update tool should be smart enough to just get the OS binaries I need. Unless it's some kind of external boot disk like you mentioned, but that seems like a special case to me.
- alwillis 6y agoThere were utilities back in the day that stripped out the PowerPC code from fat binaries; I'm sure they'll return for this generation. There's probably a way to do it now from the command line. Drives were much smaller and slower back then; getting rid of a few megabytes of unused across a bunch of apps could make a difference then. The first Intel Mac mini in 2006 [1] started with a 60GB, 5400 RPM hard drive, so yeah optimizing space was a big deal back then. There will come a time when macOS will only be updated for M1 Macs and there won't be a need to ship Intel code any longer. But that's at least 3-4 years away. [1]: https://everymac.com/systems/apple/mac_mini/specs/mac_mini_cs_1.5.html https://everymac.com/systems/apple/mac_mini/specs/mac_mini_c...