The macOS Virtualization.Framework allows you to run up to 2 macOS VMs (Virtual Machines) on Apple hardware.
The limit of 2 VMs per machine is due to Apple’s EULA, explicitly setting a maximum of 2 copies of macOS per Apple machine.
The framework, which runs on Apple Silicon, comes with paravirtualized graphics which means using Metal on the VMs works pretty well.
To get started, you can either implement the framework yourself, or use one of the open-source projects: Tart or VirtualBuddy.
You’ll need an ipsw file of your macOS of choice (macOS Monterey or higher), after which you can create a brand new VM.
There are some limitations to using the framework:
- No iCloud support (yet)
- Bridge networks require a special entitlement (com.apple.vm.networking) from Apple
- Random crashes, flaky performance with Xcode 14+ on macOS Ventura 13.4 and higher
- No multiple resolution support
I’ve had some limited success with using Better Display’s old open-source project to add multiple resolution support to the virtualization.framework VM.
The advantages of using the framework is very fast boot times for macOS VMs, speedy graphics and ease of use.