======== 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 2022 ############## The two main topics of 2022 went hand in hand. First, we reimagined Genode's driver landscape across x86 and ARM, universally adopting a new method of reusing Linux drivers to great success, and rigidly applying the framework's security architecture to driver components. This effort unlocked the second major achievement, namely the use of Genode as mobile OS on the PinePhone. Following the introduction of Genode's rigid driver architecture on ARM platforms in 2021, we took the year 2022 as opportunity to consistently establish this architecture across all platforms. We conquered the convoluted world of x86 in greater depth than ever before, leaving almost no stone unturned. On top of the new architecture, we built an arsenal of fresh driver components, most of them based on our Linux device-driver environment. Other drivers had been written from scratch specifically for Genode, most prominently our custom Intel GPU multiplexer that covers recent hardware generations like Intel Alderlake and Tigerlake. Our intense engagement with the PinePhone was driven by the vision of a Genode-based smartphone. It entailed the enablement of device hardware ranging from touch screen, over power management, audio, storage, telephony, camera, GPU, to mobile-data connectivity. The challenge of getting the hardware to cooperate was met by the challenge of enabling meaningful application workloads. The ability to run the Chromium-based morph browser directly on Genode on the PinePhone is certainly the most prolific result. Moreover, we haven't merely managed to get it to work, but we gained detailed guidance material ([https://genode.org/documentation/genode-platforms-22-05.pdf - PDF]) along the way, lowering the barrier of entry for others who wish to port Genode to further mobile platforms in the future. Besides these two main lines of development, 2022 was packed with further intriguing topics as well. To name a few, we combined Genode with FPGAs for new hardware-software co-design opportunities, enabled the use of WireGuard-based virtual private networks, experimented with hardware security modules, and explored suspend/resume functionality on PC hardware. The [https://genode.org/documentation/release-notes/index - documentation] of the four releases of 2022 presents the whole picture. 2023 - Rocking the platforms we support! ######################################## Genode has already come a long way to support a variety of device form factors ranging from the embedded appliances, over the PinePhone, to PC hardware. With the term "support", we used to refer to the principle use of fundamental platform features like storage, networking, display, audio, or USB. The needs of most real-world scenarios, however, go beyond those functional basics. Think of suspend/resume, quick boot times, the deliberate management of energy-efficient versus high-performance CPU cores, prolonged standby, bounded audio latency, scaling down (towards microcontrollers), and scaling up (towards edge-computing platforms). In 2023, we are going to move from making things work to making things rock! Specifically, to rock the PinePhone, we will invite the community to participate in multiple rounds of field tests, allowing us to enable and refine advanced features, like prolonged standby, in an iterative way. Regarding the PC, we aim at leveraging the different power characteristics of CPU cores found in modern Intel platforms, step up our game regarding GPU support (peeking at Vulkan), and making suspend/resume a regular feature that just works. These efforts will be flanked by continuous architectural work that will make the framework ever cleaner and leaner, e.g., by reducing the reliance on complex C++ features like exceptions, and continuously simplifying the framework fundamentals and interfaces. On our mission to attain least complexity of the base system, we strive to host the fully featured PC version of Sculpt OS on Genode's custom-tailored microkernel by the end of the year. In addition to the overarching theme outlined above, the following additional topics stood out during our yearly brainstorming session on the mailing list. First, several developers expressed their curiosity in working on AMD graphics (display and GPU) as a side activity. A second recurring topic was the usability of Genode as desktop OS, easing the work with files on Sculpt, supporting Drag'n'Drop, tightening the work-flow integration of app-VMs using the light-weight Seoul VMM, or the use of Qemu on top of Genode for cross development. Even though those topics are absent from the timeline below, we can expect improvements in these areas throughout the year. Milestones for 2023 ################### 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 23.02 ======================== * Mobile version of Sculpt OS (PinePhone) * Ready-to-use system image for first field test * Quick switch between different system scenarios as presets * On-target system update * Boot optimization * Goa support for porting 3rd-party libraries to Genode * Improved I/O performance (Intel GPU buffer management, VFS I/O batching, TCP throughput) * Custom IP block for DMA protection on Xilinx Zynq * PC suspend/resume mechanism for the base-hw kernel * Optimized base-hw multimedia support (kernel scheduling, latency) * Completed driver support for MNT Reform 2 laptop (i.e., Wifi) * Interactive graphical VMs on ARM May - Release 23.05 =================== * Updated "Genode Foundations" book * Tool-chain update, switch to C++20 by default * Mobile version of Sculpt OS (PinePhone) * First system image fit for general use * Reuse of an existing SDK for building applications * Integration of file vault and WireGuard * Prolonged standby mode * Easy installation of user-supplied applications * Wifi * Principle x86 virtualization support for base-hw kernel (on Qemu) * Base-hw kernel support for the tracing of scheduling events * Updated DDE-Linux based driver for USB HID and USB network * Replacing iPXE network driver by DDE-Linux-based driver * Revision of the consistent block encrypter (CBE) + usability improvements * Goa support for building simple Rust programs for Genode August - Release 23.08 ====================== * Improved PC platform support * Pre-boot ACPI discovery, sandboxing of ACPICA * Device & driver restart and/or resume support after ACPI wakeup * Support for I2C based HID devices in Intel GEN12 (e.g., touchpad) * Management of efficient/performance cores on Intel GEN12 * Mobile version of Sculpt OS (PinePhone) * File-management functionality * Support for receiving and sending SMS messages * User-level IPv6 routing (using IPv6 by VMs) * VirtualBox on Intel hardware running on the base-hw kernel * DDE-Linux update to kernel version 6.x * System wind-down protocol (component life-cycle management) * Exemplary port of non-trivial Rust-based application using Goa * Revival of GDB monitor (update, making it easier to use) November - Release 23.11 ======================== * Feature-complete PC version of Sculpt OS on the base-hw kernel * IOMMU handled in platform driver * Suspend/resume for Sculpt OS on the PC * Mobile version of Sculpt OS (PinePhone) * GPS, compass * Open-street-map client * IPv6 protocol stack (lxIP update, using IPv6 by native applications) * Revised audio (timing robustness, pluggable drivers, sample-rate conversion) * Dynamic VFS configuration