Roadmap 2021

Alexander Boettcher alexander.boettcher at genode-labs.com
Sat Dec 19 16:01:47 CET 2020


Hello Genodians,

a year is almost over and here are my two cents to the roadmap review and wish list. First, I want to say that I'm really proud about the accomplished technical work by Genode over the whole year. Getting Sculpt OS to the i.MX8 board with all the device drivers running is not given nor easy.

Before starting with the ideas for next year, I will review the input of me [0] and see how it was tackled:

The screen-casting topic developed a bit differently then I aspired, but it occupied me over the whole year over and over. On the one hand, in the beginning of the year, I was faced by streaming somehow Android to Genode, which resulted in the Scrcpy work eventually. It was really alien to me in the beginning, required to leave my comfort zone. Reading/understanding/extending an Android app and using Java I had done years back at University. On the other hand, this work also reinforced to me the motivation, not solely the pandemic, to record our demos and new features whenever possible. The Scrcpy work also strongly strengthen the believe that the CPU migration work, done in the second part of the year, is required for ported software. All in all, now I even do video editing, which was alien to me, and I already could support my fellow developers with that :-). Of course, the quality needs improvements but also requires more time. Let's see. Nevertheless, I see it as success - probably, we never uploaded more Genode related videos within one year ever [1][2][3][4].

Even so my envisioned [0] improved AMD support did not make it to the official roadmap, I invested some of my private spare time. The base is the base, and upholding isolation of mad going devices/drivers from the rest of the Genode OS components is crucial. This lead to the work of adding IO-MMU support for AMD machines to get to the same isolation level for device drivers as for the Intel machines. Testing this feature on all of the modern AMD machines of my friends and family took a while to get it done and straight. With an extended Sculpt 20.08 image at hand, I discovered and addressed several other issues, e.g. network and USB. Finally, I started to improve the VBox5 AMD support in my private spare time, which still needs some tweaks. My hope is, that with the next Sculpt OS release more AMD machines are usable actually.

Of course, also several smaller topics and clean up work through the whole Genode framework (e.g. replacing Genode lock with mutex/blockade) were part of the year.

For the next year, I would like to see progress in the following topics and I'm willing to work on them and/or contribute to:

* Extended desktop support using multiple monitors (so, not just mirroring as today) with Sculpt OS.

* Update of our Intel GPU work (done some years ago) and integrate with Sculpt OS, e.g. make it usable in a daily fashion.

* I really would like to move my daily developer load (edit/compile/link/run) out of a VM. This is possible since long time, but requires better integration with Sculpt and performance improvements on various edges.

* Extend easiness of writing multithreaded service/multiplexer components. In principle this is possible, but requires some love and extensions to minimize unnecessary cross CPU load.

* SMMU (read: I/O-MMU by ARM) in our own base-hw kernel.

Cheers,

Alex.

[0] https://lists.genode.org/pipermail/users/2020-January/007003.html
[1] https://www.youtube.com/channel/UCondpn1UQ_TTNMVq3sbZLlg
[2] https://www.youtube.com/channel/UCp32vvUpjfAh6D7yHJyGpAQ
[3] https://www.youtube.com/user/Hyronimo1
[4] https://www.youtube.com/user/zero2nowhere

On 18.12.20 14:58, Norman Feske wrote:
> Dear Genode community,
> 
> the end of the strange year 2020 comes in sight. So now it is time
> to kick off our annual road-map discussion. I'll keep up with our
> tradition of reviewing the past 12 months from my personal
> perspective, dropping my ideas for the upcoming year, and inviting
> you to share your ideas and plans.
> 
> 
> Review of 2020
> --------------
> 
> The overarching theme of our road map for 2020 was "Dwarfing the
> barrier of entry", which expressed the ambition to reach a wider
> audience. On that account, we identified four promising directions:
> First, making Sculpt OS palatable for a wider circle. Second,
> fostering the public perception of the high quality of Genode to
> reinforce the confidence of people who are sceptical towards novel
> operating-system technology. Third, lowering the barrier of entry by
> providing frictionless tooling. And fourth, publicly presenting use
> cases that prove the fitness and flexibility of Genode.
> 
> These directions certainly did a good job of motivating the working
> topics of this year's four releases [1,2,3,4].
> 
> [1] https://genode.org/documentation/release-notes/20.02
> [2] https://genode.org/documentation/release-notes/20.05
> [3] https://genode.org/documentation/release-notes/20.08
> [4] https://genode.org/documentation/release-notes/20.11
> 
> The UI improvements of Sculpt OS in version 20.02 largely eliminated
> the need to use the command line, as shown in my live demo [5].
> But the work on the user-visible side of Sculpt has admittedly dried
> up a bit since spring time. Software quality has been a continuous
> topic. Personally, I dedicated a lot of energy to the improvement
> and consolidation of our POSIX support (Noux vs. libc) and the
> related infrastructure like the VFS server.
> 
> [5] https://www.youtube.com/watch?v=vmgWgzeKAjU
> 
> That said, despite the many technical advances, the stated soft goal
> of reaching a broader audience remains fairly distant. Genode has
> not seen a significantly wider adoption by the open-source community
> at large compared to one year ago.
> 
> On the other hand, regarding our stated commitment to 64-bit ARM
> hardware, in particular supporting the NXP i.MX8 SoC, there is a
> strong sense of accomplishment, which makes me proud. The depth and
> breadth of this line of work has been fantastic. I'm speaking of
> 64-bit multi-core virtualization, HDMI, touch input, OLED,
> networking, LTE, USB, clock and power management, VirtIO, up to
> running Sculpt OS on this platform. It is a huge success story on a
> technical account.
> 
> Regarding our reach to a broader community, we are super excited
> about the prospect of combining Genode with the MNT-Reform laptop
> that is based on the i.MX8 SoC. When speaking of i.MX8 one year ago,
> I also had the Librem5 in mind - envisioning Genode on a smart-phone
> form factor. But that hope remained abstract as we did not succeed
> to establish a correspondence with the makers of the Librem5. The
> vision of a Genode-based smart phone, however, has become stronger
> than ever (see below).
> 
> While reading the paragraphs above, you may sense my ambiguous
> feelings about the past year's road map. I think we missed the
> stated goal. I also think that we excelled at technological
> progress. For us developers, the road map serves primarily as
> orientation for our technical work. But since the past year's goal
> of increasing adoption hasn't been a technical one, no level of
> technical excellence will magically bring us there. So the goal was
> a bit delusionally to begin with. Let us lift this pressure for the
> next year and concentrate on the technical level.
> 
> 
> My personal ambitions for 2021
> ------------------------------
> 
> * By the end of the year, I want to use a Genode-based mobile phone,
>   replacing my current Nokia 3720. I'll focus on the _Pinephone_.
>   In fact, I have already taken the first baby steps and will
>   continue to thoroughly document this line of work at
>   https://genodians.org.
> 
> * I see plenty of opportunities for optimization throughout Genode
>   and would like to make _optimization_ the motto of the year.
>   The following ideas are spontaneously crossing my mind:
> 
>   - Profiling and tuning of Unix-like workloads, in particular
>     by looking at file-system access patterns.
>   - Fostering the batching of async I/O, e.g., increasing the
>     chance for the batching of network packets.
>   - Let our ARM tool chain use the hard-float calling convention.
>   - Replace the allocator of our C runtime by jemalloc.
>   - Reducing the overhead of our POSIX TLS mechanism.
>   - Taking XML parsing off the critical path for the dynamic
>     reconfiguration of init.
>   - Removing indirections, in particular the old libc plugin interface.
>   - Reducing the inflation of binaries by C++ templates.
>   - Improving compilation times by reducing header interdependencies.
>   - Merging core's CPU and PD service into one.
> 
> * I'm convinced that we have to dramatically reduce the engineering
>   effort needed to port device drivers from the Linux kernel to
>   Genode. Backed by our practical DDE-Linux experience, a few ideas
>   have formed in the back of my head. They want out. So I see my
>   work with the Pinephone as a welcome opportunity for experimenting
>   in this direction.
> 
> 
> What's your perspective?
> ------------------------
> 
> For drafting the road map of next year, I'm eagerly interested in
> the perspective of my fellow developers and of course users of
> Genode.
> 
> How do you perceive the outcome of the year?
> 
> What areas would you wish to concentrate on?
> 
> Where do you see untapped potential of Genode?
> 
> How do you envision Genode in December 2021?
> 
> 
> I would very much appreciate your input for forming a rough picture
> of next year. Of course, not all ideas will make it to the road map.
> Economic constraints and the willingness of pro-active participation
> play a major role. Regarding the timeline, I plan to announce the
> official road map for 2021 in mid of January.
> 
> Cheers
> Norman
> 

-- 
Alexander Boettcher
Genode Labs

https://www.genode-labs.com - https://www.genode.org

Genode Labs GmbH - Amtsgericht Dresden - HRB 28424 - Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth


More information about the users mailing list