Road map for 2025

This commit is contained in:
Norman Feske 2025-01-22 14:40:58 +01:00
parent 48f37b4a46
commit e14fab0873
2 changed files with 123 additions and 139 deletions

View File

@ -4,6 +4,19 @@
===========
Road Map for 2025 | 2025-01-22
##############################
| We dedicate the year 2025 to Genode's rigidity, clarity, and performance.
At the turn of each year, the Genode community and core developers reflect
on the past year's achievements and make up their minds about the year ahead.
The updated road map for 2025 condenses the recent brain-storming on our
public mailing list and presents a rough feature schedule for the releases
planned for 2025. Get a glimpse at Genode's foreseeable future by visiting our
updated [https:/about/road-map - official road-map...].
Genode OS Framework release 24.11 | 2024-11-22
##############################################

View File

@ -14,173 +14,144 @@ 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
Review of 2024
##############
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.
At the beginning of 2024, we had collectively settled on "Sculpt OS usability"
as the overarching theme for the past year.
From the long wish list of usability-related topics raised during our public
road-map discussion, suspend/resume and multi-monitor support was universally
desired most.
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.
Suspend/resume became a [https://genode.org/download/sculpt - Sculpt OS]
feature in [https://genodians.org/nfeske/2024-04-26-sculpt-os - version 24.04]
released in April.
The work entailed the dynamic life-cycle management of all drivers that ought
to be restarted on resume, enhancing the bus and storage drivers to become
suspend/resume aware, adding kernel support for triggering suspend, and dealing
with countless platform-specific peculiarities.
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.
Panoramic and mirrored multi-monitor setups were addressed in the subsequent
Sculpt OS [https://genode.org/news/sculpt-os-release-24.10 - version 24.10]
released on October. This
[https://genode.org/documentation/release-notes/24.11#Multi-monitor_support - line of work]
did not only deliver a solution as a singular feature but improved the entire
GUI stack in a holistic way, addressing panel self-refresh, mechanisms needed
to overcome tearing artifacts, up to the rigid resource partitioning between
GUI applications.
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.
Besides these two highlights, Sculpt OS received plenty of nuanced usability
improvements. The component graph became scrollable, a new options tab makes
the interactive toggling of features a breeze, driver components became
user-accessible in the component graph, the assignment of USB devices to
components and virtual machines has become straight-forward, and touchpads of
recent laptops became usable. Compared to one year ago, Sculpt OS has become
much more pleasant to use. And thanks to seemingly minor details like added
pointer-grabbing support,
[https://genode.discourse.group/t/xmas-question-can-it-run-doom/127 - Doom3]
on Sculpt OS can not only be admired as a technical achievement but has become
actually playable!
That all said, several envisioned improvements concerning the
beginner-friendliness remained unaddressed. Sculpt OS still does not feature
an on-target manual, a convenient file manager, or the ability to conveniently
save settings by merely using the GUI. This is not out of neglect or laziness,
but because several unglamorous yet important topics demanded our attention.
To foster the compatibility of Genode with new hardware platforms, we updated
all DDE-Linux-based drivers to kernel version 6.6. The struggle with vendor
kernels for ARM-based boards is real!
One gratifying outcome is the new ability to run Sculpt OS on the
[https://genode.org/documentation/release-notes/24.11#MNT_Pocket_Reform - MNT Pocket].
When speaking of usability, we are not only thinking of sole users but also of
developers. On that account, the past year gives us multiple reasons to celebrate.
First, our long-year vision of
[https://genode.org/documentation/release-notes/24.05#On-target_debugging_using_the_GNU_debugger__GDB_ - on-target debugging]
on Sculpt OS using GDB came to fruition. This feature of Sculpt OS 24.04 got later
complemented by new debugging
[https://genodians.org/jschlatow/2024-07-31-goa-gdb - facilities] of the Goa SDK
and the casual use of Sculpt OS as a
[https://genodians.org/jschlatow/2024-01-29-goa-sculpt - remote target] when using Goa.
The icing on the cake has been the new
[https://genode.org/documentation/release-notes/24.11#New__Genode_Applications__book - "Genode Applications"]
book, published in November, which provides a smooth introduction to the
development and porting of software that can be readily distributed and
deployed for Sculpt OS.
2024 - Sculpt OS usability
##########################
2025 - Rigidity, clarity, performance
#####################################
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.
During our annual turn-of-the-year road-map brain storming on our public
[https://genode.org/community/mailing-lists - mailing list], two themes
emerged. First, among the core developer team, there is much desire to
realize long-standing consolidation and optimization opportunities that
shall give raise to increasingly sophisticated dynamic workloads. E.g.,
the Chromium-based web engine or the process-creation-heavy tool chain
would be obvious beneficiaries of these efforts. Our ultimate vision is
the enjoyable use of the Goa SDK directly on Sculpt OS without using a
guest OS by the end of the year.
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.
The second theme is the urge for exploring territory beyond the beaten tracks.
Among the ambitions are the exploration of a potential
[https://genodians.org/nfeske/2024-12-20-moving-on-from-xml - alternative] to
XML as Genode's configuration syntax, the potential of moving platform
quirks and discovery (like ACPI) to a pre-boot phase to support modern
platforms without inflating Genode's trusted computing base, the sensible
integration of IPv6, and pursuing ideas of a truly capability-based desktop
environment. So we foresee 2025 becoming a little bit more playful compared to
the past year.
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).
It goes without saying that topics originally envisioned yet unaddressed in
2024 will remain on our plan for 2025. E.g., in the milestones below, one can
see the reappearance of familiar USB, scheduling, and Sculpt usability topics.
Additionally, the plan foresees the bi-annual update of Genode's tool-chain and
the annual update of our DDE-Linux-based drivers and protocol stacks.
Milestones for 2024
Milestones for 2025
###################
February - Release 24.02
February - Release 25.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
* Multi-monitor window management
* Multi-monitor virtual machines
* Sculpt OS on Intel Meteor Lake
* Port of Qemu via Goa
* Web Engine updated to Chromium version 112
May - Release 24.05
May - Release 25.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
* Tool-chain update
* Monitor rotation
* Hot-swappable display and GPU drivers
* Base framework usable without C++ support library
* Revised scheduling of Genode's custom base-hw kernel
* Exploration of pre-boot ACPI discovery
August - Release 24.08
August - Release 25.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
* DDE-Linux update to latest LTS kernel version
* Experimental variant of Sculpt OS with XML replaced
* IPv6 for virtual machines
* Desktop-integration features
* Pluggable USB-host driver
November - Release 24.11
November - Release 25.11
========================
* Genode-world migrated to Goa
* IPv6 for native Genode components
* 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
* Goa SDK as installable package
* On-target documentation
* Use of pre-boot ACPI discovery
* Genodians.org deployable as a package