Dear Genode community,
it is the time of the year again to reflect and make plans for the foreseeable future. Hereby, I'd like to kick off our traditional brainstorming about Genode's road map for the year ahead of us.
What happened in the previous episode... ----------------------------------------
I have two perspectives to share. One is the look at Genode as our project, and the other one is my personal view.
Let's start with the first one. When reviewing the past twelve months, I am immensely proud of the accomplishments of our team. Together, we conquered the territory of GPU support that was ridden with uncertainties and seemed almost impenetrable when we started. Now, our Intel GPU multiplexer has landed in Sculpt like it always belonged there. The next highlight was witnessing the puzzle pieces of our new Linux device-driver environment coming together, replacing former confusion and chaos with knowledge and order, ultimately uncovering the treasure of Linux drivers for Genode with very little friction. The third highlight was witnessing the growing sophistication of Genode-native workloads, with the media features of the Chromium-based browser on 64-bit ARM being the most impressive example. Apart from the apparent functional benefits for Genode and Sculpt OS, this is the long outstanding validation of some arguably risky design decisions we took many year ago, in particular the role and architecture of the VFS and its interplay with the libc.
When reviewing the road map for 2021 [1], some items remained uncovered. In particular the seL4-related topics became stale. One year ago when I assembled the road map, there was a tangible prospect of a paying customer funding this work. However, those plans were repeatedly deferred and we don't know whether or when they will come to fruition. I was too optimistic. Also, there are some items that have seen healthy doses of progress - like the topics related to Ada/SPARK or Goa - but received less attention than anticipated. On the other hand, the four releases [2,3,4,5] of this year covered quite a few topics not advertised at the road map, e.g., webcam support, Xilinx Zynq, or RISC-V. Priorities shift. That's fine.
[1] https://genode.org/about/road-map [2] https://genode.org/documentation/release-notes/21.02 [3] https://genode.org/documentation/release-notes/21.05 [4] https://genode.org/documentation/release-notes/21.08 [5] https://genode.org/documentation/release-notes/21.11
From my personal perspective, I've wholly enjoyed the work on the
Pinephone as documented in my "Pine fun" article series at Genodians.org [6]. Much of the enjoyment came from the _process_, in particular the co-development of the new DDE-Linux together with Stefan, the mutual cross-validation of ideas and code, and our joint sense of great care. Granted, feature-wise, I missed my original goal of being able to issue phone calls with Genode on the Pinephone by now. But the collateral effects of the work in terms of tooling (dts_extract), interfaces (Genode-C-API), and documentation ("Genode Platforms") deserved the attention they got.
What's up for next year? ------------------------
I'm in full swing with the Pinephone. So I will keep moving full steam ahead. With the touchscreen and display tamed now, the next topics are telephony, mobile-data connectivity, Sculpt, browser, and a simple user interface. Over the year, I will increasingly focus on non-functional aspects as well, in particular power management (battery life) and quality of service (UI latency, audio latency). By the end of the year, I want to be able to casually use a video-chat solution like Jitsi on the phone.
Besides the Pinephone, I am planning to simplify and solidify Genode's base framework by gradually removing complexity (like C++ exceptions [7]), increasing the strictness of the coding style (like the aftermath of [8]), and attending the most-neglected corners of our issue tracker [9].
[7] https://genodians.org/nfeske/2021-11-26-attempt-no-exceptions [8] https://genodians.org/nfeske/2021-12-07-wconversion [9] https://github.com/genodelabs/genode/issues
What about you? ---------------
My point of view outlined above is only one way to look at the picture. Now I would be interested in your perspective!
What's your reflection of Genode's past year?
What are the topics you deem as most interesting to work on?
Do you already have tangible plans you can share with us?
Are there road blocks that stand in the way of your plans?
What is your vision of using Genode at the end of 2022?
I hope that this posting spawns a fruitful discussion of potential topics for the next episode. Please be considerate to avoid dropping mere proposals or wish lists. It's best to present suggestions together with actionable steps that you are willing to take.
In mid of January, I am going to update the official road map.
Cheers, Norman