mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-22 15:02:25 +00:00
187 lines
8.5 KiB
Plaintext
187 lines
8.5 KiB
Plaintext
|
|
========
|
|
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
|
|
|