3 ms·
This is a pretty good article about CPU virtualization, which is a key starting point (as this seems to be the starting point of a series). What I'm interested
by davemp 3y ago
This is a pretty good article about CPU virtualization, which is a key starting point (as this seems to be the starting point of a series).
What I'm interested in at the moment is device virtualization, which seems like a pretty hairy problem in the current KVM paradigm. IOMMU is a big step but it seems there's just a lot of grunt work left for getting the host/guest drivers working well.
It almost feels like exokernel [0] path would have been preferable over having to write windows/linux/mac host drivers for virtualizing buses/devices. We already have a very awkward overlap with UEFI drivers. Maybe we just need new HW bus designs that are more of a switch than mux, I haven't gone deep enough into modern bus controller designs to know though.
The reality of doing this kind of research/work is a special hell though, because you sit in a crossfire between hardware/firmware/os/application vendors.
[0]: https://wiki.osdev.org/Exokernel https://wiki.osdev.org/Exokernel
- bpye 3y agoThere are features that improve device virtualisation. Things like SR-IOV allowing for multiple virtual functions on a single device, and ATS which (among other things) means that device memory doesn’t need to be pinned. The issue is that these features are at best supported on expensive data centre devices.