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?
So, when you create a virtual machine in KVM, you have the ability to attach a Spice or VNC display to the VM.
Unlike running VNC inside the virtual machine, what this does it is runs VNC on the host, at a port that you designate (or a randomly assigned port if you don't designate) and then you can view that by connecting to the host through VNC. For Spice its exactly the same, except you use something like the Remote Viewer application to connect to it.
As others have mentioned, the easiest way of handling all of this is with Virtual Machine Manager, which integrates its own Spice console and makes everything happen automagically. You can also install Cockpit with the Cockpit-Machines plugin on the host, which gives you a web interface for controlling virtual machines, just like vmware esxi. The display manager on cockpit is pretty rough at the moment though.
KVM is a very "build it yourself" virtualization solution. I use it extensively, and I love it, but you'll need to be prepared for a lot of "Oh, KVM doesn't do that, that's handled by this program/library/whatever". It's definitely not a user friendly toolkit. If you're looking for a Workstation Player alternative, you may be better off with something like Virtbox (although do try out Virtual Machine Manager first, it's really slick and for your use case probably solves all the problems I've mentioned). If you're looking for an esxi alternative, maybe look into Proxmox.