======== Road Map ======== Herein, we lay out our plans for evolving Genode. Progress in addition to this planning will very much depend on the degree of community support the project will receive. The [https://genode.org/about/challenges - Challenges] page collects some of our ideas to advance Genode in various further directions. The road map is not fixed. If there is commercial interest of pushing the Genode technology to a certain direction, we are willing to revisit our plans. Review of 2021 ############## Genode's year 2021 was defined by three extremely challenging lines of work. First, we conquered the territory of GPU support that was ridden with uncertainties and seemed almost impenetrable when we started. But at the end of the year, our custom Intel-GPU multiplexer has landed in Sculpt OS like it always belonged there. In tandem with the Intel-GPU work, we explored the Vivante GPU as a representative of an ARM platform. The work required a deep dive into the respective GPU architectures and the Mesa software stack. It eventually led us to the design of Genode's device-agnostic GPU interfaces. The second line of work was concerned with the reuse of Linux drivers as Genode components. Over the year, the puzzle pieces of our new Linux device-driver environment come together, replacing former confusion and chaos with knowledge and order, ultimately uncovering the treasure of Linux drivers for Genode with very little friction. On the way, we created new methodology and tooling, as well as extensive documentation in the form of the "Genode Platforms" document. Thanks to the new drivers ported from the Linux kernel, we were able to witness interactive Genode scenarios becoming alive on the Pinephone by the end of the year. The third major topic was 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 bold design decisions we took years ago, in particular the role and architecture of the VFS and its interplay with the libc. When reviewing the road map for 2021, some items remained uncovered. In particular the seL4-related topics became stale. At the end of 2020 - when we assembled the road map for the past year - there was a tangible prospect of pursuing this topic as funded work. However, those plans were repeatedly deferred and remained uncertain. 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 ([https://genode.org/documentation/release-notes/21.02 - 21.02], [https://genode.org/documentation/release-notes/21.05 - 21.05], [https://genode.org/documentation/release-notes/21.08 - 21.08], [https://genode.org/documentation/release-notes/21.11 - 21.11]) of 2021 covered quite a few topics not advertised at the road map, e.g., webcam support, Xilinx Zynq, or RISC-V. It is fair to say that the level of technical risks we took in 2021 had been unprecedented in Genode's development history. We are more than proud of the outcome, which will hopefully propel Genode to new heights in 2022. 2022 - Mobile Usability ####################### After having enabled the first interactive Genode scenarios on the Pinephone last year, we plan to take Genode on the Pinephone to a level where we can routinely use it for advanced applications, in particular video chat. This vision confronts us with a multitude of hard technical nuts to crack such as power efficiency, UI latency, quality-of-service of audio processing, drivers for multi-media devices, WebRTC performance, and usability. This grand theme will not only address the Pinephone specifically. The efficiency gains will benefit all Genode use cases large and small. Our theme of the Genode-based video chat on the Pinephone fuels several ambitions in closely related areas. In particular, we aspire using WireGuard to secure private communication, and experiment with the operation of hardware-based trust anchors as the basis for encrypted storage and communication. Besides the Pinephone, we will steadily nurture the quality and scope of driver support on PC hardware, which remains the primary platform for the day-to-day use of Sculpt OS. So you can expect us to keep up with recent generations of Intel-based hardware. In this area, we plan to make IOMMU support available with kernels beyond NOVA, and explore the use of power-management features like suspend-resume with Sculpt OS. Milestones for 2022 ################### In the following, we present a rough schedule of the planned work. As usual, it is not set in stone. If you are interested in a particular line of work, please get in touch. February - Release 22.02 ======================== * OpenGL in VirtualBox 6 * Sculpt OS as tool kit for special-purpose OS images * Pinephone * Modem access * Touch-screen compatibility of Sculpt OS May - Release 22.05 =================== * Annual update of the "Genode Foundations" book * Second edition of the "Genode Platforms" documentation * WireGuard VPN * Updated drivers for PC hardware (Wifi, Intel framebuffer, USB) * New tracing tool with support for CTF and PCAP * Pinephone telephony August - Release 22.08 ====================== * Pinephone * Morph browser * Media record and playback capabilities * FPGA-powered DMA protection for the Zynq-7000 SoC * Kernel-agnostic IOMMU support for PC hardware * Optimized GUI latency and synchronization November - Release 22.11 ======================== * Pinephone * WebRTC-based video chat * Power management * Base mechanism for suspend-resume on PC hardware * Support for hardware-based trust anchor for CBE and WireGuard * Software-hardware co-design example for the Zynq-7000 SoC