Hi All,
Hope that everyone is well and safe from the COVID-19 virus these days.
I have been watching Genode, Muen, and especially NOVA for a number of years and I have an idea that I would like to get your opinion/comments on regarding its potential as well as if it has a beneficial point to it.
I would like to take and build up a system based on the MuenSK with NOVA, and Bhyve while also possibly adding the Sculpt OS GUI into the mix for a nice basis for a hypervisor.
I was thinking that the layers could be (bottom to top)
1. MuenSK ---- Provides Separation Kernel for real hardware configuration 2. 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?
About the only close Virtualizing Separation Kernel that I have come across is the LynxSecure Separation Kernel Hypervisor ( https://www.lynx.com/products/lynxsecure-separation-kernel-hypervisor) but I would like to build an open sourced version.
Any thoughts, suggestions, or comments? Cheers, Lonnie
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
Hi Norman,
Thanks for responding to my post and for the clarification with regards to NOVA and Muen.
The performance issues that you mention are something that I had not heavily considered at this stage yet but can see that it will be vital towards going forward with the project.
What I will probably do, at least initially, is to just go with NOVA and Bhyve (or similar) although I had looked at the NOVA+Genode with VirtualBox in the past that you and your team had been working on as well. At that time, VB was still under heavy development to get stabilized for the platform so I might also revisit that approach since I am also still in the refreshing stage after being away for longer than expected from all of the wonderful development work that everyone has been doing with Genode.
Appreciate all of your insight and will keep you up to date on the progress. Cheers and stay safe, Lonnie
On Thu, Apr 2, 2020 at 8:30 AM Norman Feske norman.feske@genode-labs.com wrote:
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
-- Dr.-Ing. Norman Feske Genode Labs
https://www.genode-labs.com · https://genode.org
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users