Hi Reto,
thank you for this very valuable input!
- Distributed Genode
... 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
The discussed approach for a "distributed Genode" system is actually appealing in several different contexts in addition to Muen, for example:
* Letting Genode components on a host machine interact with Genode components running on the USB Armory.
* Transparently move individual components of a Genode system to a cloud service provider.
* By running Genode on RISC-V-based FPGA softcores, a Genode system could be distributed over several softcores, thereby enforcing stronger (because hardware-based) isolation between components than a microkernel could.
Those examples could even be combined, which would open up completely new scenarios.
For Muen, we will implement the VHW functionality using shared memory channels and events.
That sounds very good. I look forward to the outcome of this line of work.
- Support for Ada
- Investigate Intel GVT on Genode
I find both ideas intriguing. I won't mention them on the road map, but maybe we are lucky and still find some time to investigate them a bit. :-)
Cheers Norman