======== 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 2023 ############## The overarching theme of the road map in 2023 was the conquering of advanced platform aspects beyond mere functionality, speaking of temperature sensing, frequency control, battery monitoring, power management, and suspend/resume. We aimed at "Rocking the platforms we support!". The achievements made are best illustrated by the example of the Gen12 Framework laptop. At the beginning of 2023, Sculpt OS was in principle working on this hardware, but with compromises that spoiled the user experience: fan noise, an erratic touchpad (using the firmware's PS/2 emulation), Fn key having no effect, strange issues when re-plugging an external display, and no indication of the battery state. By the end of 2023, not only were all these [https://genodians.org/nfeske/2023-11-03-sculpt-os#Framework_laptop - rough edges gone] but we even gained the ability to exercise [https://genode.org/documentation/release-notes/23.11#PC_power__frequency__temperature_sensing_and_control - precise control] over the machine's performance/frequency/temperature/power characteristics using an interactive GUI. It is fair to say that Genode advanced beyond the state of "working" and has entered the territory of "rocking". That said, not all lines of platform work such as suspend/resume are wrapped up yet. Besides PC hardware, we put much emphasis on the PinePhone as a reference device for Genode on the phone. As one highlight of 2023, we got the [https://genodians.org/nfeske/2023-05-11-sculpt-os#Mobile_Sculpt_OS_on_the_PinePhone - mobile version of Sculpt OS] into the hands of a pilot group of users who provided instructive feedback to us. The system-update mechanism that Sculpt OS gained in April has been a game changer for such scenarios as it reduces the effort and risk of test-driving experimental versions to almost zero. At the beginning of 2023, we declared our ambition to run Sculpt OS on Genode's custom (base-hw) microkernel as alternative to the time-tested NOVA kernel. At that time, two showstoppers remained, namely [https://genode.org/documentation/release-notes/23.11#Kernel-agnostic_DMA_protection - DMA protection] and [https://genode.org/documentation/release-notes/23.11#Modernized_virtualization_interface - virtualization] support. Both of these deeply technical topics got covered over the course of the year. Refinements, optimizations, and real-world testing notwithstanding, we are happy to be well on track towards our goal. Besides working on Genode's actual operating-system code, we fully embraced developer tooling as focus area. In 2023, the [https://genode.org/documentation/release-notes/23.08#Goa_tool_gets_usability_improvements_and_depot-index_publishing_support - Goa SDK] for streamlining the application development for Genode has reached the level of maturity and flexibility that allowed us to port software stacks as sophisticated as [https://genodians.org/jws/2023-11-16-sip-client-for-genode - Linphone] to Genode. Not only for porting but also for developing applications and libraries, the tool has become a go-to solution. As another noteworthy developer-tooling topic, we tirelessly followed our vision of on-target debugging on Sculpt OS. Specifically, we pursued the idea to implement a debugging instrument as a specialized version of init augmented with the GDB protocol. Sculpt OS 23.10 has this [https://genode.org/documentation/release-notes/23.08#Multi-component_debug_monitor - monitor component] already built-in, albeit it is not utilized yet. 2024 - Sculpt OS usability ########################## During our annual road-map discussion on Genode's [https://genode.org/community/mailing-lists - mailing list], it became apparent that many of us developers long for harvesting user-visible rewards after concentrating so intensively on topics below the surface, eagerly rallying behind the theme "Sculpt OS usability" for 2024. Of the many aspects of usability, the following stood out during the discussion: multi-monitor support, desktop utilities (file management, configuration dialogs, drag'n'drop), improved discoverability (on-target docs), suspend/resume, and profound support for touchscreens and touchpads. Accommodating those topics will require us to rethink several parts of the GUI stack, from the drivers over the low-level GUI server, window management, up to the application and widget-toolkit level. A second recurring interest is the further consolidation of Genode's driver landscape towards fully pluggable drivers, the consistent use of drivers ported from up-to-date Linux kernels, and clear-cut ACPI support. As continuations of 2023, the vision of Sculpt OS on Genode's custom kernel will come to fruition, and we will bring our goal of easy-to-use on-target debugging to completion. Since we added [https://genodians.org/atopia/2023-10-26-a-first-complex-rust-package - Rust support] to the Goa tool mid of 2023, we have been looking for natural synergies between Rust-based projects and Genode. During the road-map discussion, we identified the use of Rust-based components as building blocks for a multi-component e-mail client a tempting opportunity. Throughout the year, we plan to take an (open-ended) e-mail scenario as motivator for combining our interests in Sculpt usability, Goa-based development work flows, and Rust. Device-wise, we will continue our engagement with the PinePhone, look forward to the upcoming MNT PocketReform, and take on the latest Intel-based PC platforms. We also want to explore the use of Sculpt OS on form factors like the ZimaBlade single-board server (headless operation) or the StarLite tablet (touch-based UI). Milestones for 2024 ################### February - Release 24.02 ======================== * Revised audio infrastructure (timing robustness, pluggable drivers, adaptive sample rates) * Suspend/resume awareness of GPU, AHCI, and NVMe drivers * Support for I2C based HID devices in Intel GEN12 (e.g., touchpad) * Fine-grained and dynamic assignment of USB devices/interfaces * Use of Sculpt OS as a remote test target for Goa * TCP/IP stack based of DDE-Linux version 6.x * PinePhone support for receiving and sending SMS messages May - Release 24.05 =================== * Sculpt OS on the PC * Suspend/resume * Scalability to large monitors * On-target debugging * Scrollable component graph * Controls for saving the current deployment and settings * Updated "Genode Foundations" book * Drivers * Revised PC platform discovery and ACPI sandboxing * i.MX drivers updated to DDE-Linux version 6.x * ALSA-based audio driver for PC platforms * Audio on MNT Reform * Alder Lake GPU support + updated Mesa library stack * Audio components converted to new APIs introduced in 24.02 * Optimized base-hw multimedia support (kernel scheduling, latency, cache attributes) * First Sculpt PC variant on the base-hw kernel (integration of the kernel-agnostic IOMMU support, virtualization) * Consolidation of the Tresor block encryptor and file vault * Application-level compositing using Genode's dialog API August - Release 24.08 ====================== * Sculpt OS * Low-complexity custom file manager * User profiles * On-target documentation view * Assignment of individual directories as file systems * DDE-Linux update to kernel version 6.6 LTS * Updating Qt and QtWebEngine to Qt6 * GUI stack * Multi-monitor support * Tearing-free graphics * Touch aware GUI server and window manager * Drag'n'drop between applications * Mouse grabbing * Convenience UI tools showcasing the use of the Goa SDK (e.g., NIC-router config, USB-passthrough config, file launcher) * User-friendly bootstrapping/installation of Linux VMs on ARM November - Release 24.11 ======================== * Sculpt OS * Multi-monitor window management * Use of dev tools on target * "Genode applications" book focused on component development * Port of Qemu via Goa * Dynamic VFS configuration, VFS / file-system interface optimizations * Pluggable USB-Host driver * Show case of a multi-component e-mail user agent