Hi everybody,
I would like to quote part of the official doc from [1]:
*As illustrated in the figure, from an organizational point of view, a virtual machine is implemented as a leaf node in Genode's process tree. Genode not only facilitates the use of virtual machines for application compatibility but also the re-use of existing device drivers. The baby Tux in the figure symbolizes an original Linux device driver being executed in a device-driver environment.*
[1] http://genode.org/documentation/general-overview/index
How to understand the 're-use' ? Does it mean that an original(unmodified) Linux device driver could be placed into a 'device-driver environment' and also function correctly in Genode, or does it mean an original Linux device driver could be taken out from the Linux virtual machine (the big Tux) and executed as a leaf node in Genode, consequently serve Genode as well as the big Tux at the same time?
Regards, Naiji
Hi Naiji,
On 09/01/2017 03:39 PM, Naiji Ma wrote:
Hi everybody,
I would like to quote part of the official doc from [1]:
/As illustrated in the figure, from an organizational point of view, a virtual machine is implemented as a leaf node in Genode's process tree. Genode not only facilitates the use of virtual machines for application compatibility but also the re-use of existing device drivers. The baby Tux in the figure symbolizes an original Linux device driver being executed in a device-driver environment./
[1] http://genode.org/documentation/general-overview/index
How to understand the 're-use' ? Does it mean that an original(unmodified) Linux device driver could be placed into a 'device-driver environment' and also function correctly in Genode, or does it mean an original Linux device driver could be taken out from the Linux virtual machine (the big Tux) and executed as a leaf node in Genode, consequently serve Genode as well as the big Tux at the same time?
The cited section explains the variety of approaches to re-use software in Genode, either by using a complete OS as foundation to run existing, unmodified applications, or to re-use a part of an existing OS like Linux in form of a device driver. The latter is typically done by using unmodified source files from an open-source OS together with a thin library - the corresponding 'device-driver environment' tailored for that specific driver.
So to re-use device drivers we take the first approach that you described.
Anyway, it is also possible in Genode to allow a virtual machine to access dedicated peripherals exclusively. Thereby the guest OS drives and makes use of the device. Nonetheless, I do not know of any existing Genode scenario where components, which run aside from a virtual-machine, make use of such a dedicated device driven by the guest OS, although this would be possible in theory. In contrast, we generally favour to keep the TCB of device driver small.
I hope this clarifies your question.
Regards Stefan
Regards, Naiji
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot
genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main