If you want to run virtualised operating systems on an Apple silicon Mac, you can opt for one of the heavyweights such as Parallels Desktop (commercial), VMware Fusion (still not fully released), or UTM (cheap through the App Store). Each has its own limitations, but they’re substantial apps. macOS Monterey includes support for lightweight virtualisation of macOS and Linux guests, and this article explains its current limitations.
Throughout this article, I’ll refer to the version of macOS running on the Mac itself as the host, and the operating system running in the virtual machine (VM) as the guest. Lightweight virtualisation has no support for running Windows at all, even Windows for ARM, but only supports macOS and Linux guests. If you want to run Windows, your current choice is between Parallels Desktop and UTM.
Lightweight virtualisation doesn’t support macOS 11 Big Sur either as a guest or host, except for command-line Linux systems (also supported on Intel Macs), and even those have severe constraints on the devices they have access to.
macOS 12 Monterey can host macOS Monterey and later, and command-line Linux systems, but with significant limitations. It also lacks support for GUI Linux guests, as the Virtio ‘Scanout’ Graphics Device required isn’t available to Monterey hosts.
In addition to the limitations listed below for Ventura, Virtio support in Monterey hosts and guests isn’t as complete as in Ventura. Perhaps the most significant shortcoming is the lack of support for folders shared between the host and guest using the Virtio File System Device.
Although Apple’s documentation claims this is supported in macOS 12 and later, to mount shared folders the guest requires support for virtiofs. That’s currently not available in Monterey, so even when that version of macOS is the guest on Ventura, it appears impossible to mount any shared folders without the use of third-party software. Similarly, command-line Linux guests with mount support for virtiofs in the guest appear unable to connect to device support in Monterey hosts.
The only good workaround that I’ve found so far is to enable file sharing on the host, and connect to that using networking support in the guest.
Clipboard support through a Spice Agent Device isn’t supported in Monterey guests or hosts, and is currently awaiting additional features and documentation. In addition, Virtio Multiport Console Devices aren’t implemented for macOS 12 hosts or guests.
Another omission from macOS 12 device support is the trackpad. However, by setting pointing device configuration to include both that and a USB Screen Coordinate Pointing Device, trackpads appear to be fully supported in both macOS 12 and 13.
Rosetta 2 translation of Intel code running in a Linux guest isn’t available from a Monterey host, although Rosetta 2 is available to macOS guests, whether they’re running on macOS 12 or 13 hosts.
One final limitation in Monterey hosts is that they’re unable to start macOS guests with start options, which currently includes starting in Recovery mode. If you want to change security settings or use other features only available in Recovery, that VM must be run from a Ventura host.
macOS 13 brings full support for all the documented Virtio devices, including the ‘Scanout’ Graphics Device required by GUI Linux guests. There are, though, two significant omissions remaining in Ventura both as a host and guest.
Apple apparently doesn’t currently intend to support iCloud access from guests, even those that have been granted the entitlement for a Bridged Network Device to interact directly with physical network interfaces on the host. Other network authentication relying on the Secure Enclave of the host also appear to be unsupported.
As I’ve described previously, neither the Virtualization nor the Hypervisor frameworks include AMP support, to allow guests to allocate vCPUs to specific types of core on the host. Instead, all vCPUs are treated as if they were threads running at high QoS. This prevents guests from designating their background tasks to be run on the host’s E cores. Apple hasn’t announced any intention to support that in macOS hosts.
Lightweight virtualisation on Apple silicon Macs is limited as follows:
- Big Sur hosts and guests aren’t supported, except for limited command-line Linux on Big Sur hosts.
- Monterey hosts only support limited command-line Linux, and limited Monterey and later guests.
- Ventura hosts Monterey guests with the same limitations as Monterey hosts, except that macOS 13 can run the guest in Recovery mode.
- Ventura hosts GUI and command-line Linux, and Ventura guests fully, but without iCloud access, or AMP support in the guest.
Of course, these limitations in macOS support don’t mean that third-parties can’t implement substitutes, although in some cases such as iCloud and AMP that appears unlikely, except possibly in commercial products.