One of the coolest power-user Mac features of the Apple Silicon era is Apple’s Virtualization framework. Normally the purview of paid software like Parallels Desktop or VMWare Fusion, virtualization lets you run multiple operating systems on one Mac at the same time, which is useful for anyone who wants to run Linux on top of macOS, test an app they’re developing in different versions of macOS, or take a look at the latest macOS Ventura beta without risking their main install.
Apple’s documentation and sample projects provide everything you need to get a simple VM up and running with no additional software required. Still, some independent developers have built simple, free apps on top of the Virtualization framework that provides a GUI for customizing settings and juggling multiple guest OSes.
Getting ready to virtualize
My favorite for running macOS on top of macOS is VirtualBuddy, which streamlines the process of downloading the files you need to get a Monterey or Ventura virtual machine up and running. This is the app we’ll be using to set up our sample VM in this guide.
Another app worth looking into is UTM, which uses the Virtualization framework to run ARM operating systems on top of the ARM version of macOS but which also provides an easy-to-use front end for the QEMU emulation software. QEMU can emulate other processor architectures, including but not limited to x86 and PowerPC. Like all emulation, this comes with a performance penalty. But it’s an interesting way to run old operating systems on a shiny new Mac, and UTM’s VM gallery includes sample VMs for lots of Linux distros, classic Mac OS, and Windows XP and Windows 7.
If you want to virtualize macOS Monterey on top of macOS Monterey, you won’t have to download anything else. If you’re looking to virtualize Ventura on top of Monterey, you’ll want to install and run the beta version of Xcode 14 from Apple’s developer site before you start. When I’ve tried this without Xcode installed, macOS has tried (and failed) to download extra software to make it work—sort of like how macOS needs to download additional software the first time you use Rosetta. With the Xcode beta installed, everything works as intended (but if you can find a way to get this working without installing a 33GB app that takes an hour-plus to install, I’d love to know about it).
You’ll also want to pay attention to the hardware requirements for virtualization. VirtualBuddy and the Virtualization framework don’t have hard-and-fast requirements aside from requiring an Apple Silicon chip for macOS-on-macOS virtualization. But you’ll be running two entirely separate OSes on the same computer, and that comes with RAM and storage requirements. Personally, I wouldn’t recommend trying to virtualize macOS on an Apple Silicon Mac with less than 16GB of RAM. And more is better, especially if you’ll also be running heavy apps like Xcode alongside (or inside) your VM.
By default, VirtualBuddy keeps all of its files (including VM disk images) in a folder at ~/Library/Application Support/VirtualBuddy. Mac users with limited internal storage might want to change that to an external drive to save space, since the default disk size for new macOS VMs is 64GB. Any external SSD attached over a 5Gbps or 10Gbps USB connection or the Thunderbolt bus should feel fast enough for most things. I use a cheap NVMe SSD in a 10Gbps USB-C enclosure—not this exact one, but one like it.