Hello everyone,
like every year in December, I'd like to kick off the discussion of Genode's road map for the upcoming twelve months. It goes without saying that your feedback and suggestions are very welcome. Should you have any plans related to Genode, please do not hesitate to chime in!
Before I present my rough plans, let me take a minute to review the past year.
Review of 2017 --------------
As Johannes Schlatow's team put it so nicely in their Christmas card (thanks a lot!), the "Turmvilla" era lies behind us. So let the "Sculpt" era begin! Whereas Turmvilla allowed me to work on a Genode-based system since mid of 2015, the scenario was quite rigid and required significant manual labour for any customization. Although it was not really inviting for potential users, it illustrated well that all the basic building blocks - in particular the driver stacks - were in place. But it would have been be quite a stretch to call Turmvilla a general-purpose OS at that point.
The new Sculpt scenario that I started to put together this autumn leverages two key features of 2017 to ultimately enter the realms of general-purpose computing. Those features are the dynamic init and the package management. The combination of Genode's recursive architecture with the dynamic reconfigurability of the init component allows me to interactive shape the running Genode system including any subsystem or even configurations of individual components. The system structure is at my fingertips and I can change it instantly using my favorite text editor. This excites me to no end! :-) At the same time, the new package management greatly helps to keep the complexity at a manageable level. Whereas I rarely updated my Turmvilla installation out of hesitance to break my work environment, I routinely update Sculpt on a weekly basis. Not only do I but also all my team mates at Genode Labs! The switch of the entire Genode-Labs team to Genode full time was certainly our biggest milestone of the year.
At the technical level, the use of the gained cross-kernel binary compatibility or the VFS infrastructure have already become a second nature. Regarding the latter, remodelling this infrastructure to an asynchronous mode of operation was certainly a long and stony way. I am extremely grateful to Emery and Christian for having taken a big share of this labor-intensive work! Now, we can start to reap the fruits of this development.
How to proceed in 2018? -----------------------
Personally, I'm to eager to take Genode in two main directions. First, the Sculpt scenario will for sure spawn manifold developments to the benefit of end users. Those developments will include documentation to make Sculpt palatable to users, the further cultivation of Genode's package-management concept, the composition of new subsystems, and the optimization of daily work flows. The progress in this direction will be quite organic and primarily motivated to make our daily computing experience more effective and fun.
The second direction is the application of Genode for real-time graphics and sound processing - in a way reigniting my past passion of programming demo effects on the Atari Falcon. ;-) The path for this activity was paved this year by Josef and Sebastian who created our driver infrastructure for Intel GPUs. By actively using this infrastructure along with the audio stack, I am eager to push Genode towards low-latency multimedia performance. In order to do that, I will have to improve the tools for gathering runtime data (e.g., putting our tracing infrastructure to good use), gain a profound understanding of the behavior of complex scenarios, and optimize.
Aside these playful activities, I also want to focus on the quality and resilience of our software. The modernized framework API introduced last year is an important stepping stone. But there is much more we can (and should) do, I.e., learning from the high-integrity computing community (e.g., implementing critical components in SPARK), leveling-up the scope and intensity of our automated tests, facilitating static code analysis, and employing software-hardening techniques. Of course, this scope goes far beyond the time frame of one year. The immediate priorization of these topics will largely depend on the focus of commerical users funding the work.
The aspirations outlined above are my personal perspective. Please do not hesitate to share yours! Any comments and suggestions are appreciated. Maybe you even have tangible or less tangible Genode-related plans as well? I would be happy to learn about them!
The outcome of the discussion will eventually become the official road map for 2018, which I am going to announce in mid of January.
Cheers Norman