Hello Cedric,
thank you for sharing your reflections on the project and your plans!
Regarding the former, I'm happy to have reached a stage where we have a "vertical slice" of CC6 running on Genode. And since early Q3 2019 it is now in "maintenance" mode, i.e. whenever I make changes to CC6 in Haiku, I also compile it in Genode+haiku.lib.so to check that it builds and runs as before (and if not, I add implementation or at least stubs for the missing symbols). Once we go public with CC6 (Any Day Now (tm)) and reveal what it looks like in the Haiku world there'll be more info about the state of its Genode counterpart as well.
Can't wait! It's great to see your ongoing commitment. I was actually a bit worried that our lack of response about the FUSE topic [1] may have discouraged you. But given the recent focus on POSIX, there was no room for it in 2019.
[1] https://github.com/genodelabs/genode/issues/3383
Future plans include looking into the AHCI driver (it locks up on our production AMD F2A systems, so I can only work on a thinkpad for now) and bringing the haiku.lib.so library to parity with its "big brother", to have more than a proof of concept/vertical slice.
The lacking AMD support pops up every now and then. It took a huge effort to reach the current level of driver support for Intel. But since until now, none of Genode Labs' customers is using AMD, we cannot justify dedicating the required work towards AMD. So I'm afraid that the level of AMD support will likely remain underdeveloped in 2020.
It would have to settle on a preferred file system, I'm leaning on NTFS (via ntfs-3g) as the one that seems to provide the features needed for a modern desktop OS and is provided by seemingly mature OSS code base.
It looks like we should put the FUSE VFS plugin [2] on the agenda for 2020.
[2] https://github.com/genodelabs/genode-world/issues/193
Now to put back the spotlight where it belongs, on Genode Labs :
Congrats on folding "noux" into libc; following (some of) the action on github it's been clear it was a lot of hard work!
It's exciting reading the "Goa" article series. Definitely keeping it as a reference. In fact, I don't know if Norman realizes how many benefits it brings beyond just presenting the Goa tool : for people who live and breathe Genode daily it's probably all old news, but for devs like me it's great that is revisits the functioning of Genode system, Genode's packaging, a lot of System Integration aspects (the "config" file ..etc) in a way that is different from the previously available documentation. Lots of aspects that need to be hammered home. Those articles are all very welcome... and bookmarked. They seem to strike the perfect balance in detailing what must be, and yet remain super readable. And once armed by a better understanding, one may then revisit the other Genodians articles, and "get" more from them, than initially understood during the first read!
Thank you for the enthusiastic feedback! It is good to know that I'm on the right track. Please expect more of such articles in 2020.
- I'd love to pick up our ideas about Genode's GUI stack, accommodating headless scenarios, multi-head, screen capturing, color depth, and the ability to restart drivers.
The latter is intriguing ; that would go a long way toward demonstrating yet again the technological superiority of a micro- kernel component-based OS -- I can think of a couple drivers/FSes I'd be glad to see "ruggedized" by that feature.
The most tempting drivers are for graphics and network. They are complex (looking at the Intel drivers ported from the Linux kernel) and therefore likely prone to errors. Hence, they would benefit greatly from the ability to be restartable. To our benefit, they capture not much state that would go lost when restarted. With storage drivers (in particular when caching is involved), the latter is much more delicate.
The GUI stack aspect is of course something I would monitor closely, hoping to contribute both ideas and code in one shape or another.
I find this collaborative spirit very enjoyable.
Let's keep it up in 2020! :-)
Cheers Norman