
                             ========
                             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 2024
##############

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.

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.

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 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.


2025 - Rigidity, clarity, performance
#####################################

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.

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.

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 2025
###################

February - Release 25.02
========================

* 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 25.05
===================

* Updated "Genode Foundations" book
* 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 25.08
======================

* 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 25.11
========================

* Genode-world migrated to Goa
* IPv6 for native Genode components
* Sculpt OS
  * Goa SDK as installable package
  * On-target documentation
  * Use of pre-boot ACPI discovery
  * Genodians.org deployable as a package

