Why do macOS/iOS upgrades take so long?

Solution 1:

Why is this process not a simple reboot?

The overall answer here is it depends. It depends greatly on what needs to be done. An update that you do to your system may be vastly different than I do on mine. The update in question may only need a service restarted or it may need updates to the actual kernel.

Why is that [I can't use the computer]?

Generally, for the same reason you can't use an app (Word, Excel, Numbers, iTerm, Adobe Photoshop, etc.) that is in the process of being upgraded. The files must be closed, read, analyzed, the appropriate patches/updates copied over and the app restarted.

When an OS is upgraded, the same thing must happen and this is typically done (when it comes to kernel level upgrades especially) in single user mode.

Typically, you'll see updates downloaded, the system will begin a shutdown, updates applied, a reboot, and a "finalization" of the updates followed by a normal boot. You can't use the computer during any of this.

What is it actually doing?

It depends. It could be anything from patching a config file to flashing firmware of some type.

If the system is in /System, why isn't an OS upgrade simply creating a /NewSystem

First off, /System is protected by SIP so to disable it, you actually need to boot from a different mount point.* Secondly, the way you're looking at this is analogous to doing a home renovation by dumping a new house next to the old one and telling the people to just move in. It's not the way it works.

Many things have to happen, least of which is restore points created (in case the backup fails). So this means a copy of the working system is created, the update applied, the update checked, and (if all good) the restore point deleted.

In the case of firmware updates, images have to be verified (i.e. you don't want a Mac mini firmware on your Mac Pro), checksums validated, images backed up, applied, verified, old ones removed and the system reinitialized. Again, none can be done with you logged in and none of it done by simply "dumping" files in a directory.

An upgrade is a process and all of this takes time.


* SIP is designed to protect the system by preventing changes to the OS. Allowing the OS to change the system "on-the-fly" would negate the security it's trying to achieve.

Solution 2:

Rebooting a computer for some operating system updates/upgrades is required for all operating systems, not just macOS.

Actually, in the case of an update, sometimes a reboot isn't required when it is still used as part of an update process, but this is only in instances where it's easier for most of the user population to have to undergo a reboot. For example, some system updates make changes to things like a network service and, while you could get away with just restarting that rather than the whole computer, it's just easier for most users to do a restart than go through the steps to restart the network service.

However, in most cases that a reboot is required, it's because it's actually necessary. There are many operating system resources that are used by applications, including 3rd party applications, and updating these while the user is logged in just isn't going to be an easy task and, in fact, potentially capable of causing file corruption etc.

Also, in cases of firmware updates a reboot is most definitely required. Adding to this, some years back Apple started automatically including firmware updates (if/when required) within macOS updates/upgrades, so it's not easy to check which devices had firmware updates included in an update/upgrade. Regardless though, firmware updates require a reboot, there's just no way around it.

Another example is the update of resources required to use hardware. In some cases a reboot is required, in others it isn't.

Finally, in terms of your last question about why not just create a new system and then having this become active after the next reboot, while this would technically be possible it really isn't practical. The System directory is GBs in size and this would take a lot longer to do and require a much larger amount of free space on the boot volume.