[bitc-dev] Retrospective Thoughts on BitC
earhart at google.com
Tue Apr 17 11:13:58 PDT 2012
On Mon, Apr 16, 2012 at 5:45 PM, David Jeske <davidj at gmail.com> wrote:
> On Mon, Apr 16, 2012 at 10:56 AM, Jonathan S. Shapiro <shap at eros-os.org>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
> 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
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.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the bitc-dev