Hello Lonnie,
thanks for dropping by on the mailing list from time to time. ;-)
I was thinking that the layers could be (bottom to top)
- MuenSK ---- Provides Separation Kernel for real hardware configuration
- NOVA Hypervisor ---- Provides virtualization of the real hardware
provided by the SK 3. Bhyve --- Provides the VMM for each instance given by NOVA
Of course, there are other things to be included but this is just the base that I am working towards.
Do you see an advantage to something like this?
The answer would ultimately depend on your goal. I must admit that this particular combination of technologies does not strike me as tempting but that may just be me, being unfamiliar with Bhyve.
From an engineering perspective, I see two technical challenges with
your idea.
- Running NOVA on top of Muen requires nested virtualization because both kernels leverage hardware-based virtualization. AFAIK, Muen has gained support for nested virtualization by now but nobody has tried executing NOVA as Muen subject.
- I presume that you want to use Genode on top of NOVA as the runtime environment of Bhyve. This scenario comes down to porting Bhyve to Genode, which is probably not straight-forward.
Any thoughts, suggestions, or comments?
Personally, I think that the three technologies are not orthogonal but rather have substantial overlap. Stacking multiple kernels upon each other creates administrative and integrative complexity. I generally try to into the opposite direction, reducing the layering whenever possible.
That said, I'd greatly appreciate you sharing your experiences and gained insights along the way!
Cheers Norman