What works in virtualising macOS on Apple silicon, and what doesn’t

If you want to run macOS in a virtual machine (VM) on an Apple silicon Mac, there’s essentially only one way, using the support built into macOS since Monterey. This is true whichever virtualising software you use: Parallels, UTM, VirtualBuddy, or my own free Viable or ViableS. While there are differences between what they offer, at their heart they have the same limitations.

Performance

Their virtualisation is impressive: performance in most respects is almost identical to running natively on the host Mac, although it’s limited by the number of virtual cores and amount of virtual memory that you allocate to your VM. Viable gives you complete control over those, but you can’t specify which of the two types of core in M-series chips. Core allocation first uses those P cores available, and will spill over to E cores when macOS deems it necessary.

viable8

Serial number

Virtualisation enforces Apple’s licence limit of running no more than two macOS VMs simultaneously on the same Mac, even if it has sufficient cores and memory to run more. VMs also can’t nest VMs inside them. However, they can install Rosetta 2 to allow them to run translated Intel code, just as on the host.

vmtute07

The virtualiser allocates each VM a unique Machine ID, which is used to determine its serial number. While Viable lets you create VMs with identical Machine IDs, so the same serial number, it’s currently not possible to set the serial number of your choice.

viable12n13

Disk & network

The most noticeable limit to performance is when writing to the VM. This is because it’s stored in a disk image, which imposes overhead. However, performance is close to native when accessing shared folders on the host. Those shares need to be configured before starting a VM, and currently there doesn’t appear to be support for resizing a VM after it has been created.

Network access is also limited. Viable uses standard NAT network access through the host network connection. There’s no option to attach the VM to Wi-Fi or any other specific connection, nor to dedicate a host connection to the VM. Apple does offer a special entitlement for bridged networking, but that’s only available to developers it approves. I do intend applying for that for Viable.

Displays & input

Support is provided for a wide range of display resolutions to accommodate most needs, although at times getting this right can be a matter of trial and error. Sonoma introduces an auto-scaling option that fits Sonoma guests into any window size in a crisp image. This is a major improvement, but is only available in macOS 14 VMs running on a macOS 14 host.

vmtute06

Good support is also provided for Mac keyboards, mice and trackpads, with pass-through of special key combinations, and support for localised key layouts. There are lingering minor problems with trackpads becoming unresponsive to gestures, and surprisingly they still don’t enjoy support from Trackpad Settings. Keyboard support has been further enhanced for macOS 14 VMs running on a macOS 14 host.

Apple ID & iCloud

There’s no support for Apple ID on guests, and they can’t be connected to iCloud Drive or support apps using CloudKit. This means that VMs can’t run the great majority of App Store apps, apart from Apple’s free products such as Numbers, Pages and Keynote. There is considerable irony at this severe limitation on the use of App Store apps, given how keen Apple is to encourage us to obtain our apps from its App Store.

vmtute08

Peripherals & boot security

Most access to peripherals and other drivers is handled through a limited range of VirtIO devices, and doesn’t give direct access to USB or Thunderbolt; Apple has added new device support in Sonoma that may provide greater flexibility in future.

Guest macOS can be booted into Recovery, but there’s no support for hardware Diagnostics. Recovery enables you to change the VM’s startup security settings, and to disable SIP when you wish.

Summary

macOS VM guests running on Apple silicon deliver excellent performance and broad support for a range of standard devices. At present their main limitations are:

  • no control over Machine ID hence serial number;
  • NAT networking;
  • no Apple ID or iCloud access;
  • almost no App Store apps can be run;
  • limited support for peripheral devices.

You’ll find Viable and more information about virtualisation, including Linux support, on this page.