It's almost two years since I wondered why Apple has invested so much in its Virtualization framework on Apple silicon Macs.
When Craig Federighi announced the details of Apple silicon in June 2020, he identified three pillars supporting a diversity of apps on Apple silicon: Universal apps, Rosetta 2, and Virtualization. The latter was promoted for hosting Linux and Docker, and Andreas Wendker demonstrated a pre-release version of Parallels Desktop running Linux as a guest. Conspicuous by their absence at that time were the two most important and popular guest operating systems, Windows and macOS.
One reason for the absence of macOS was the immature state of its virtualisation. It wasn't until Monterey a year later that it was ready to virtualise macOS guests, and even then with strict limitations, most significantly lack of support for Apple ID and iCloud. Over the last year or so, Apple's engineers have been reaching deep into the Secure Enclave to address that shortcoming. Although as far as I can tell, no one outside Apple has yet run the first Sequoia VM using their Apple ID, its anticipation has been great.
Two years ago I proposed virtualisation as forming a link with the past, enabling older Intel-only apps to be run using Rosetta 2 inside a VM running Monterey, after Apple has phased out Intel support in macOS 16. What I and others missed at that time is the versatility of a macOS VM.
Already, now that iCloud access is just around the corner in Sequoia, some are seeking relief from their Mac's small internal SSDs by hosting their large iCloud Photos libraries in a VM on an external drive. Their problem is that the small but affordable internal SSD in their Apple silicon Mac doesn't have sufficient free space to accommodate all the images they have shared in iCloud, as those can only be stored in their Home folder. Some have had to resort to booting macOS from an external SSD to provide sufficient space, but that's not a good choice with Apple silicon.
Instead, they could disable iCloud Photos on their Mac, create a macOS VM with iCloud support on that external SSD, and access iCloud Photos from that VM, effectively relocating just that part of their Home folder to the more affordable space on their external SSD. Until we can test it, no one can be sure that scheme is feasible, or works well, but it's a good example of a completely novel solution to a longstanding problem, thanks to the lightweight virtualisation now built into macOS and Apple silicon Macs.
When I started enthusing here about how valuable it would be to virtualise macOS, most still thought this would only prove of use to developers who need to test their software against different versions of macOS, security researchers, and a few other oddballs who had previously paid VMware or Parallels for the privilege.
There are some tricks that still don't seem possible, among them packaging a lightweight VM into a container similar to Docker to deliver a complete custom environment for a suite of apps and tools. That may well work for Linux, but licensing and size are likely to limit its usefulness for macOS. However, this weekend we're away in the Lake District, far from my desktop Mac. Rather than setting up my travelling MacBook Pro with all the apps I need to support myself here, wouldn't it have been so much easier if all I needed to do was copy across a VM with everything pre-installed and ready to travel?
At the end of Benjamin Poulain's presentation at WWDC 2022, he left us with the invitation to experiment, saying on behalf of the virtualization team "we cannot wait to see what you will do next with this technology". I think he might be as surprised as we will be.
I'm grateful to Marnix for raising the idea of using a VM as an iCloud extender. If you're not sure what the British English phrase something for the weekend means, I explained it here.