<div dir="ltr">Here's my work on a desktop environment for Genode: <a href="https://github.com/NobodyIII/genode-desktop-environment">https://github.com/NobodyIII/genode-desktop-environment</a><div><br></div><div>So far, I have a working file manager and text editor. Feel free to use and modify my code.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Aug 18, 2017 at 7:58 AM, Norman Feske <span dir="ltr"><<a href="mailto:norman.feske@...1..." target="_blank">norman.feske@...1...</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Jörg,<br>
<br>
first, your understanding of the different components is correct. Thank<br>
for taking the time for the thorough investigation of the existing<br>
components.<br>
<span class=""><br>
> What I see between the cli_monitor/launcher and launchpad approach, that<br>
> the configuration of the subsystems is different. But is there even more<br>
> differences ?<br>
<br>
</span>The launchpad and qt_launchpad were intended as quick demos, not a<br>
serious solutions. In fact, launchpad was one of the very first programs<br>
developed for Genode - just to showcase the dynamic creation/destruction<br>
of subsystems. CLI monitor is similar, but uses a textual interface.<br>
<br>
Design-wise the disadvantage of the launchpad as well as CLI monitor<br>
(and even more so qt_launchpad) is the fact that the component is<br>
potentially complex (as it implements a UI) while being part of the TCB<br>
of each launched subsystems.<br>
<br>
With the launcher, I explored the idea to separate the complex parts<br>
(i.e., the widget rendering) into a separate sandboxed component called<br>
menu view. This helps to significantly reduce the complexity of the<br>
launcher - and thereby the TCB of the launched subsystems. So<br>
software-design wise, the launcher is much more advanced.<br>
<br>
However, all these solutions share one problem that holds them back for<br>
general-purpose scenarios: They can start and stop subsystems but do not<br>
allow the user to define any interaction between the subsystems. It is<br>
not possible to dynamically launch a new service to be used by another<br>
subsystem.<br>
<br>
To overcome this limitation, I am currently investigating the use of a<br>
dynamic init instance as the host for subsystems. With this approach,<br>
the launcher merely generates configurations for the init instance and<br>
consumes reports generated by init. It goes without saying that the<br>
lessons learned from the menu-view approach can be applied in this<br>
scenario as well. Please refer to a previous discussion [1] that we had<br>
on the list earlier this year.<br>
<br>
[1] <a href="https://sourceforge.net/p/genode/mailman/message/35787965/" rel="noreferrer" target="_blank">https://sourceforge.net/p/<wbr>genode/mailman/message/<wbr>35787965/</a><br>
<span class=""><br>
> May I asked, what are the future plans of these "launchers"?<br>
> Cli_monitor is in the OS repo and sounds like the API is what I should use<br>
> to implement some "own" launchers.<br>
> Launch app in gems repo, as what I understand from the email from Norman<br>
> (see Friday, 4. August 2017 11:56:38 CEST from Norman Feske) this is<br>
> outdated.<br>
> Launchpad is in the demo repo and what I see in the git commit history,<br>
> this is also the older approach to "launch" subsystems in genode, or?<br>
<br>
</span>The launchpad is meant to stay as a quick-start example for exploring<br>
Genode. However, the other launchers will eventually be replaced by the<br>
dynamic init approach, once it is there.<br>
<span class=""><br>
> Here some background information, why I asked...<br>
> I will use genode as a desktop system and for such a use case I need<br>
> something to launch applications. I notice, that genode is currently<br>
> implementing a package management and it sounds like for me, in the<br>
> future I need a launcher that are flexible enough to start an application<br>
> after I installed a package in genode :-) ... but step by step.<br>
<br>
</span>I am currently working in the same direction. If you are interested to<br>
follow my work, you may have a look at the corresponding branch [2]. In<br>
my opinion, two particular interesting bits are the depot-query scenario<br>
[3] and the dynamic-drivers subsystem [4]. Both facilitate the dynamic<br>
init approach.<br>
<br>
[2] <a href="https://github.com/nfeske/genode/commits/nitro" rel="noreferrer" target="_blank">https://github.com/nfeske/<wbr>genode/commits/nitro</a><br>
[3]<br>
<a href="https://github.com/nfeske/genode/commit/cc2b7935fbdbe0bd3b342495bcc9d1da36e61f55" rel="noreferrer" target="_blank">https://github.com/nfeske/<wbr>genode/commit/<wbr>cc2b7935fbdbe0bd3b342495bcc9d1<wbr>da36e61f55</a><br>
[4]<br>
<a href="https://github.com/nfeske/genode/commit/8046e4d2be50c183ad7ad3ba6e68d6e0a7240644" rel="noreferrer" target="_blank">https://github.com/nfeske/<wbr>genode/commit/<wbr>8046e4d2be50c183ad7ad3ba6e68d6<wbr>e0a7240644</a><br>
<br>
But as a word of caution, this is work in progress. ;-)<br>
<br>
Cheers<br>
<span class="HOEnZb"><font color="#888888">Norman<br>
<br>
--<br>
Dr.-Ing. Norman Feske<br>
Genode Labs<br>
<br>
<a href="http://www.genode-labs.com" rel="noreferrer" target="_blank">http://www.genode-labs.com</a> · <a href="http://genode.org" rel="noreferrer" target="_blank">http://genode.org</a><br>
<br>
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden<br>
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
------------------------------<wbr>------------------------------<wbr>------------------<br>
Check out the vibrant tech community on one of the world's most<br>
engaging tech sites, Slashdot.org! <a href="http://sdm.link/slashdot" rel="noreferrer" target="_blank">http://sdm.link/slashdot</a><br>
______________________________<wbr>_________________<br>
genode-main mailing list<br>
<a href="mailto:genode-main@lists.sourceforge.net">genode-main@...172...<wbr>net</a><br>
<a href="https://lists.sourceforge.net/lists/listinfo/genode-main" rel="noreferrer" target="_blank">https://lists.sourceforge.net/<wbr>lists/listinfo/genode-main</a><br>
</div></div></blockquote></div><br></div>