NVMM: A full, fast and flexible virtualization stack for NetBSD
blog.netbsd.org
blog.netbsd.org
Basically, it comes down to having very little money, if any, to fund these tasks and most of the work is done by volunteers. It is much easier and faster to work with the local environment than manage kernel portability issues between different BSDs and even Linux.
The cool thing is that anyone is free to help with the project and port things if they choose. It is truly an issue of funding and finding folks willing to do the work (and maintain it).
It is a lot of work and specialized knowledge across different kernel domains.
From the end user side things like libvirt have done a lot to make the interface to these systems consistent, and so I really don't feel a ton of pain moving between virtualization solutions anymore as an end user compared to having to deal with xen/qemu/vmware/virtualbox/hyper-v incantations. If I'm just trying to run a workload I don't care about NVMM, unless it has a particular feature that I need for network emulation like say RapidIO, Fibre Channel or Infiniband as an emulated link layer.
What you are saying may be true for OpenBSD/vmm, but Bhyve has been ported to Illumos, and by extension, SmartOS & OmniOS. Apple MacOS has Xhyve, which was inspired by and shares some code with FreeBSD Bhyve.
Probably could port bhyve to this too? Haven’t looked.
When it comes to the userland emulators, NVMM does not provide one. In other words, it does not re-implement a Qemu, a VirtualBox, a Bhyve (FreeBSD) or a VMD (OpenBSD). Rather, it provides a virtualization API via the libnvmm library, which allows to effortlessly add NVMM support in already existing emulators.
That way the large amount of cross-platform virt software around - much of which is written to use Libvirt - could interface directly with it. :)