On Mon, Apr 16, 2012 at 5:45 PM, David Jeske <[email protected]> wrote:
> On Mon, Apr 16, 2012 at 10:56 AM, Jonathan S. Shapiro <[email protected]>wrote: > >> I can also make a strong case that every direct-on-hardware virtual >> machine solution is a microkernel. That's certainly a fair description of >> Hyper-V. >> > > What is the definition of microkernel that reaches this conclusion? > (Caveat: I was one of the Hyper-V hypervisor devs back when it was initially developed, but it's been a few years since I worked on it; things have almost certainly changed.) Hyper-V is really two parts: a hypervisor, and a virtualization stack. I suspect Shap was talking about the hypervisor part. One good way to look at the hypervisor is that it's a kernel whose process ABI happens to almost exactly match the x64 hardware ABI, with just a couple of extensions for partition management. It provides hardware partitions, *not* virtual machines; virtual machine technology is provided by the root partition. It does all the other things a kernel does, though: it schedules threads onto cores, manages physical memory and the hypervisor virtual address space, handles inter-core messaging, inter-partition messaging, &c. The root partition runs Windows. Along with the virtualization stack, that partition contains almost all of the platform management and general device driver code: the hypervisor itself manages the x64 processor (including the LAPICs), and has a very small amount of platform/device knowledge (1394 and UART support for debugging, the reboot path, &c), but that's about it. I'm not 100% sure the hypervisor counts as a microkernel: the device drivers aren't in the hypervisor, but they're all in the same partition (and the machine will go down if that single partition dies). They don't have to be in the same partition, though; there's no real reason why they couldn't be pushed out to other partitions, especially with IOMMUs. )Rob
_______________________________________________ bitc-dev mailing list [email protected] http://www.coyotos.org/mailman/listinfo/bitc-dev
