Hi,
Last year Genode gained support to run as a subject on top of the Muen Separation Kernel (SK) [1]. We are very happy about the results and how well the collaboration with the Genode developers worked out!
We would like to take the opportunity to share our goals and ideas for 2016.
Our motto for 2016 is to enable the Turmvilla scenario on hw_x86_64_muen. To achieve this goal we have identified the following work items:
* Finalize hw_x86_64_muen VirtualBox support
Last year we ported the Genode VirtualBox support to hw_x86_64_muen and are now able to successfully virtualize 32-bit guest operating systems including Windows versions 7-10. Proper VirtualBox support is a requirement to enable Turmvilla as it depends on running a rich OS alongside regular Genode components.
In order to submit these enhancements for upstream inclusion, we need to cleanup the development history and split the work into reviewable chunks.
* Support for 64-bit VirtualBox guest VMs
Once the VirtualBox support is accepted into staging, we intend to add support for 64-bit guests. We expect this to be straight forward as Muen already provides an execution environment for 64-bit Linux VMs using a Virtual Machine Monitor (VMM) written in SPARK 2014.
* Distributed Genode
Having a complete Genode system running in one Muen subject does not bring much benefit as it does not leverage the isolation properties provided by the SK. Therefore we intend to add support for executing multiple Genode subjects as a distributed environment while providing inter-subject communication channels. In order for the Genode instances to exchange data, the concept of so-called Proxy components as suggested by the Genode developers will be applied.
The proxy concept uses two components: a server and a client. Both of them implement a specific Genode service interface and communicate using a Virual Hardware (VHW) abstraction layer to create a bridge between the separated components. The following diagram illustrates the concept for the Log service:
log() -> Proxy:Client -> | VHW | -> Proxy:Server -> Log_Server
For Muen, we will implement the VHW functionality using shared memory channels and events.
While we plan to tackle the items listed above in 2016, we would also like to mention areas of interest that we will not be able to actively pursue for now:
* Support for Ada
It would be nice to have support for native Ada components in Genode. Initially, the Genode toolchain would need to be built with Ada enabled.
To make Ada a first class citizen of the Genode ecosystem, Ada bindings for Genode services would need to be provided.
* Investigate Intel GVT on Genode
Since Genode has ported the Linux i915 graphics driver, it would be interesting to see whether it is possible to apply the Intel Graphics Virtualization Technology (Intel GVT) concept [2] for mediated graphics device passtrough.
These are our inputs for the Genode roadmap 2016, we are looking forward to an eventful year!
Cheers - reto
[1] - http://genode.org/documentation/release-notes/15.08#Genode_on_top_of_the_Mue... [2] - https://01.org/igvt-g