6 ms·
> “Big Sur has been engineered, down to its core, to take full advantage of all the power of the M1 chip” Does that mean that all of the OS code has been recom
by adrian_mrd 6y ago
> “Big Sur has been engineered, down to its core, to take full advantage of all the power of the M1 chip”
Does that mean that all of the OS code has been recompiled for Apple Silicon / ARM? And if so, does that mean Big Sur has two binaries: 1 for ARM (new M1 Macs) and 1 for Intel (existing supported Mac devices) and there is a flag at boot-time to determine which mode it runs in?
- wodenokoto 6y agoWhy would there be a runtime flag and not just the appropriate binary installed?
- Someone 6y agoOne might want to install it on an external disk that you move between machines and use as boot device. I think that’s quite a corner-case.
- alwillis 6y agoOne might want to install it on an external disk that you move between machines and use as boot device. I think that’s quite a corner-case. Not at all; did all the time when the PowerPC to Intel transition happened. If you have an Intel Mac and wanted to use your universal apps on a friend’s M1 Mac mini with your operating system configured the way you like it, that's by far the easiest way to go. I upgrade to the universal versions of Affinity Photo, Designer and Publisher earlier today; if I had to do something complex and could use an M1 Mac, that's exactly what I'd do.
- wiredfool 6y agoI did that, 10.5 IIRC. For some reason, I could only install on my Intel iMac, but I wanted to resurrect a PPC mini that had died. Oddly, the imac is long gone, but the mini can still run ubuntu, and is still (somewhat) useful for testing bigendian bugs. It's slower than a raspberry pi of a few years back.
- adrian_mrd 6y agoI was thinking of the case where only some of the core companion OS apps (Preview, TextEdit, Messages, etc) had been updated to ARM, so the OS would need to check if they are to be run as native (ARM) or Universal (Intel). But assumably Apple has updated all of these apps to be ARM native on ARM OS binary installs? update: clarified sentence
- EQYV 6y agoMaybe I'm misunderstanding, but why would there be a boot time flag instead of just having two versions, seeing as a particular CPU could only run one version?
- kgwgk 6y agoI don't know if it's still the case, and probably won't if you switch architectures, but it used to be possible to move the system disk to another computer (or make a copy) and it worked.
- alwillis 6y agoYou may want to boot an M1 or a Intel Mac from a external hard drive. Universal apps will run on either one.
- jannes 6y agoOf course it's cross-compiled. As far as I know, they use Rosetta only for third-party software.
- wiremine 6y agoNot sure about the OS, but they introduced Universal 2 at WWDC 2020 https://en.wikipedia.org/wiki/Universal_binary#Universal_2 https://en.wikipedia.org/wiki/Universal_binary#Universal_2
- saagarjha 6y agoThe OS is compiled as Universal 2.
- pdxandi 6y agoDoes this mean that after two years, Apple won't support Intel processors anymore? I just bought a 10-core iMac so really hoping that's not the case. My I'm misunderstanding.
- wombat-man 6y agothat seems like more of an app level compromise. I'm guessing on the OS itself they don't include the unneeded binary data.
- alwillis 6y ago* I'm guessing on the OS itself they don't include the unneeded binary data.* The operating system can on both M1 and Intel Macs; therefore, the OS has binaries for both. Wouldn't be much of an operating system if the frameworks and APIs weren't available for applications regardless of which architecture they're running on.
- deleted 6y ago[deleted]
- wombat-man 6y agowhy 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.
- dan1234 6y agoIn the PPC - x86 transition the binaries were all ‘universal’, with code for both platforms.
- The_rationalist 6y agoYeah fat binaries use twice as much disk space
- hylaride 6y agoThey did not use twice as much and if it really bothers you there are/were tools that can “clean” the other architecture binaries off the disk.
- dan1234 6y agoThe resources (images, videos etc) take up the most space, and should be shared. It’s just the code that’s taking up extra space, and there’ll be a way to thin the binary if you want (there was last time anyway).
- NegativeLatency 6y agoWhile the system provided apps were, you could strip one platform or the other out of apps to use less disk space
- my123 6y agoRosetta isn't even installed by default. You get prompted to install it the first time when you launch an x86_64 app.
- mpweiher 6y ago> all OS code recompiled for Apple Silicon / ARM? Yes, of course. > two binaries Yes and no. Technically, they are single binaries. The Mach-O binary format has supported the concept of a "fat binary" at least since NeXTStep was ported to Intel. So it's a single file, a single "binary", but with different sections for different architectures. Kernel selects the right bits of the binary to executer when loading. > flag at boot-time Nope. On an ARM Mac, ARM code will run natively, Intel code will run via Rosetta. On an Intel code, Intel code runs natively and ARM code does not run. This is done transparently for each binary.