UTM
ā ā ā āā
Technically, macOS has built-in virtualization and emulation using QEMU (and Appleās own virtualization on newer macOS releases). Realistically, itās a pain to set up and run.
UTM provides a GUI wrapper to create, run and manage virtual machines using both the QEMU and Apple backends.
Good
Stable. Emulates multiple hardware types, so you can run an x86_64 or i386 VM on an M1 Mac. (And probably run ARM Linux on an Intel Mac, now that I think about it.) Runs Windows, macOS and Linux guests of course, but also other operating systems. Iāve run Haiku (x86_64 only) on an ARM Macbook, and successfully installed an OpenBSD guest, something I just could not get working on Parallels.
Also, UTM is free, with the option of paying $10 once for the App store version as a way of supporting the devs, with the bonus that the app store manage upgrades automatically.
Bad
Slower than Parallels or VMWare Fusion, doesnāt support hardware graphics accelleration. Less in the way of integration: you can set up shared copy/paste and files, but you canāt tell one OS to open files in another, or display guest windows directly on the desktop.
Ugly
UTM is still a bit clunky to use, if infinitely better than memorizing or scripting QEMU command line options. You also need install the SPICE and VirtFS tools yourself to do things like copy/paste between guest and host. (Most Linux distros should have them available as long as youāve got network set up, but Windows guests need manual installation.)
Thereās a gallery of pre-built machines including several Linux distros (Intel and ARM), Solaris (SPARC) and ReactOS (Intel), plus pre-configured Wintel machines going back to XP. (You need to obtain an official Windows install image to actually set it up, which explains why they havenāt been sued for offering a Windows download. They donāt.)
They have an iOS version too, but the full version needs to be sideloaded on a jailbroken device. UTM SE is a stripped-down version that complies with Appleās app store requirements, but runs enough slower that they actually bill it as a āRetro PC emulator.ā I donāt have an iPhone or iPad to try it on, so I canāt speak from experience on it.
Keep in Mind
Emulating hardware is always slower than running a virtualized system on the actual processor. But depending on what youāre using it for, it can still be usable. For comparison, I installed both aarch64 and x86_64 versions of Alpine Linux with LXQt on the same ARM Macbook. The x86_64 version is noticeably slower, but itās not much slower than running Arch+LXQt natively on the PineTab2. (That said, the PineTab is a lot slower than the MacBook I was running it on!)
Also: MacOS VMs can only log into some iCloud services (and then only on macOS 15 and later), and the App store isnāt one of them, so anything you want to run on a Mac VM has to be available from another source. This is true for any virtualization framework, not just UTM.
More info at UTM.