Lightweight virtualisation in Ventura

Lightweight virtualisation of macOS and Linux was introduced on Apple silicon Macs in Monterey, although some of its most appealing features have only just become generally available with the release of Ventura. This article explains what has changed, and what hasn’t.

GUI Linux

The major addition for Ventura is the support of GUI Linux as a guest operating system. Provided that you choose a suitable ARM (not Intel x86) distro, this works really well. You’re most likely to have success with one provided as an ISO image containing a bootable installer, as those can be installed directly by the macOS API.

If you’d like to try that out, my own free virtualiser Liviable is available from here. It requires Ventura, is currently still a beta-release, and doesn’t yet support the use of Rosetta 2 to translate x86 code within Linux, a valuable feature which turns out to be quite demanding to set up. There are several distros that work well with that, including Rocky and Fedora.

New features

With the addition of support for the virtiofs file system in macOS 13.0, shared folders are now available, making the exchange of files far easier than using file sharing in Monterey. However, there’s still no virtiofs support in Monterey guests, so for macOS VMs this only works when both host and guest are running Ventura. Although I haven’t tested it yet in Linux, it should also be possible to mount a shared folder within a Linux VM running on a Ventura host.

One quirk that I’ve noticed is that the default ‘home folder’ for shares in Ventura appears to be the top level inside the VM bundle, which isn’t exactly convenient. However, I have further work to do to assess this fully, and consider how that can be improved.

Additional support in clipboard sharing and full gestural use of Magic Trackpads should also be available now, as is the ability to start up a macOS VM in Recovery mode. That’s particularly useful for those who need to run macOS at reduced security, perhaps to load third-party extensions or to disable SIP.

Remaining major issues

Apple’s current implementation of lightweight virtualisation still has no support for Apple ID, iCloud, or any service dependent on them, including Handoff and AirDrop. Perhaps the most severe limitation resulting from this is that you can’t run the great majority of App Store apps, although Apple’s free apps including Pages, Numbers and Keynote can still be copied over from the host and run in a guest macOS. If Apple intends to change this, it looks unlikely that will happen during Ventura’s cycle.

I’ve previously explained how core allocation for the virtual CPUs (vCPUs) of a VM doesn’t make any distinction between P and E cores. vCPUs are initially allocated from P cores, and their virtual threads are all therefore run at high priority. This can be used to your benefit, though: if there’s a task that’s normally constrained to the E cores of the host, running it in a VM is likely to accelerate it, as it will then be run on P cores instead.

Although virtualised macOS has native access to the GPU and accelerated graphics, the same isn’t true of Linux. If you want to run graphics-intensive apps in Linux, then lightweight virtualisation on Apple silicon isn’t likely to meet your expectations. You may find Asahi Linux a better alternative, given the effort made into giving it GPU access.

There are still occasional quirks to be found in lightweight virtualisation. Sometimes, typically after making a screenshot on the host, there’s loss of keyboard input to the VM, apparently because of a loss of focus. Switching between windows on both host and guest usually restores normal keyboard input quickly.

Although command line Linux has been available since Monterey, implementations seem few and far between. The opportunities are there to package this neatly, but this doesn’t seem to have happened yet, and it remains a bit of a hack.

macOS virtualisers

My choice of lightweight macOS virtualiser on Apple silicon remains VirtualBuddy, which offers a full set of features and is well-designed. You can also run a beta-test version of my own, Viable, which gives you control over Machine IDs, in turn setting serial and similar numbers. The fourth beta of Viable still has some rough edges, but is available from here for Monterey and Ventura.

UTM and Parallels Desktop are also well worth looking at, although neither has the convenience and simplicity of VirtualBuddy yet. If you’ve upgraded to Ventura, I recommend that you look at how simple virtualising macOS has become, and how well Ventura guests run on Apple silicon Macs.