The macOS Virtualization Framework is Apple's Swift framework for running VMs without the usual third-party bullshit. They shipped it with macOS Big Sur in 2020 because they got tired of VMware charging $200/year for basic virtualization that should just work.
Since 2020, Apple's been steadily fixing the broken shit that made VMs suck on Mac. They keep improving the framework and adding new APIs, basically trying to make sure you don't need VMware's expensive licensing or Docker Desktop's memory-eating gRPC nightmare.
Core Architecture and Design
Unlike Parallels Desktop or VMware Fusion that install kernel extensions and break every macOS update, Apple's stuff just works because it's built into the OS. No more "VirtualBox broke again" after updating to macOS 15.2.1. It uses the macOS Hypervisor underneath - same thing that makes Docker Desktop's Linux VM run like ass on Intel Macs.
VZVirtualMachine
is the main class that actually works instead of crashing like VirtualBox every 20 minutes. You write Swift or Objective-C to manage VMs instead of clicking through UTM's buggy interface or VirtualBuddy's $30 GUI that does less than a 50-line Swift script.
Platform Compatibility and Requirements
Works on both Apple Silicon and Intel, but Intel is basically legacy at this point:
- Apple Silicon: ARM64 VMs are actually fast, x86 through Rosetta 2 is slow as shit but works for most things
- Intel Macs: Still works but why torture yourself? Just buy an M2 MacBook Air for $999 instead of suffering
- Version gotcha: macOS updates sometimes break networking configs, so test your VMs after major OS updates. I've had containers lose network connectivity after point releases, super fun to debug
Guest Operating System Support
Here's what doesn't make you want to throw your laptop:
- macOS VMs: Apple artificially limits you to 2 VMs because "licensing." Even with 128GB RAM, still only 2. Fuck you too, Apple.
- Linux: Actually works great. Ubuntu ARM64 boots in 3 seconds, Alpine for containers, Arch if you enjoy pain. x86_64 through Rosetta takes 30 seconds to boot vs 3 for ARM.
- Windows: ARM Windows 11 technically works but most Windows software is still x86 so everything runs like shit. 0/10 would not recommend.
Performance Reality Check
Apple Silicon VMs are fast enough that I actually use them. ARM64 VMs feel pretty close to native performance for most stuff - kernel compiles that take 3-4 minutes natively might take 4-5 minutes in a VM. Not bad. x86_64 through Rosetta is noticeably slower and forget about intensive shit like video encoding.
I/O doesn't suck anymore (looking at you, Docker Desktop's gRPC-FUSE nightmare). Ubuntu ARM64 boots really fast compared to Docker Desktop's forever "initializing" screen. VMs start quick enough that I don't have time to get coffee, which is both good and bad.