I've been using VMware for about two decades. I'm moving elsewhere. KVM appears to be the solution for me.
I cannot discover how a guest display is supposed to work.
On VMware workstation/Fusion the application provides the display interface and puts it into a window on the host. This can be resized to full screen. It's how I've been running my Debian desktop and probably hundreds of other virtual machines (mostly Linux) inside a guest on my MacOS iMac.
If I install Linux or BSD onto the bare metal iMac, how do KVM guests show their screen?
I really don't want to run VNC or RDP inside the guest.
I've been looking for documentation on this but Google search is now so bad that technical documents are completely hidden behind marketing blurbs or LLM generated rubbish.
Anyone?
If you run qemu from CLI you get a window which grabs keyboard and mouse automatically. Ctrl+Alt+G (from the top of my head) releases the input devices so you can again navigate the host. The window is otherwise a default window for you display server.
I find qemu from CLI way more transparent then these GUI-Applications since each vm is a readable, single script. So I recommend this.
Regarding installation on iMac bare metal: If the kernel supporta virtualization you can expect to work flawlessly. If you have a dedicated graphics card you can only pass this (as well as dedicated devices like hdd's) if you main board supports IOMMU.
If it does all you need is the qemu man page to setup your vm.
Why I prefer a qemu script to any GUI alternative:
The entire script for passing RAM, GPU and a HDD is about 10 lines max. A default vm with tcg-emulation e.g. via libvirt etc. can pass 50 lines of xml easily.
I recommend giving it a try. My workflow is: Place the install script in some directory. The default run script is placed in my ~/.bin/ You can combine these scripts but I find it way simpler to separate them (you would need more elaborate options mounting devices).