Virt-Manager
★★★☆☆
A front-end manager for Linux’s built-in virtualization/emulation (QEMU and KVM, using libvirt). More customizable than Boxes, but missing a few convenience features.
Good
It’s easy to set up a basic guest system.
It’s also easy to set up a basic emulated system running a different architecture: as long as you have the backend libraries installed for running ARM or RISC-V or whatever, they’ll show up in a drop-down when creating a new VM.
You can tweak the settings on a virtual machine in great detail.
You can hand off a virtual machine from Virt-Manager to Boxes and back more or less seamlessly, since the actual guest is being managed by the libvirt backend in both cases. Even while it’s running! (If you haven’t set a VM to run in the background, you can still pause it in one front-end and resume it in the other.)
Cloning and snapshots seem to work smoothly when I’ve used them, and I’ve on occasion reverted to a snapshot created in Boxes while running the machine in Virt-Manager.
Bad
Virt-Manager doesn’t support shared folders over SPICE, which is a weird choice. Workaround: set up network shares on the host and connect to them from the guest (or the other way around, depending on how you’ve set up your network).
Ugly
Clipboard sharing via SPICE works, but as with Boxes you have to install the guest tools yourself. On Linux guests you can usually just use the package manager (spice-vdagent). For Windows guests, you do need to download and install SPICE manually.
In theory it supports hardware accelerated graphics using VirGL, but I haven’t managed to get it to work.
Same as any other VM app, running emulated hardware will always be slower than using the same architecture and hardware virtualization. That’s not specific to Virt-Manager, it’s just the basic fact that software is slower than hardware.
More info at Virt-Manager.