"when you reboot, it'll be into the new OS."
Oh man, wouldn't that be amazing!
NixOS then lives in the future, as that is exactly what it does!
Pff, FreeBSD and Illumos/Solaris have BE's (boot environments) since years
Can you give your system’s declarative configuration to another machine and boot into an equivalent one? :D
Yes.
With FreeBSD I can 'send' entire BE to other system and boot it there - which I often do.
Just use:
# zfs send <ZFS-BE-DATASET@snap> | ssh <IP> zfs recv <ZFS-BE-DATASET>
I also sometimes installed FreeBSD/GhostBSD system in a VM and then 'send' it to physical hardware.Hope that helps.
At least, given that macOS is using a copy-on-write filesystem such that you can share blocks between multiple volumes/snapshots — which it is; and that the OS base-image is a sealed "everyone has the same cryptographic checksum" volume — which it is; and that Apple are using a binary-diff-based "create aside" OS-image update process, like ChromiumOS/CoreOS — which they are. They should only have to write out disk pages for the changes, and then just link the existing pages in to form the rest of the extents. Like a `btrfs receive`.
But for some reason, despite all that fancy tech, it's still slow; and the install process still requires rebooting into a separate Recovery OS to do parts of the installation. Which, given the "create aside" part especially, is just ridiculous. You should be able to just run the installer in the background as you're using your device, and eventually be told "when you reboot, it'll be into the new OS."