Road map for 2024

This commit is contained in:
Norman Feske 2024-01-18 11:06:35 +01:00 committed by Christian Helmuth
parent 4535a27dfc
commit d6d1b8e025
2 changed files with 166 additions and 128 deletions

View File

@ -4,6 +4,35 @@
=========== ===========
Road Map for 2024 | 2024-01-18
##############################
| After intensively concentrating on deeply technical topics below the surface
| in 2023, we are going to reap user-visible rewards in 2024 by focussing on
| Sculpt OS usability.
Thanks to the input gathered from our annual road-map discussion on Genode's
[https://genode.org/community/mailing-lists - mailing list], we have updated
the project [https://genode.org/about/road-map - road map] for 2024.
Without hesitation, our developer community quickly rallied behind the topic
"Sculpt OS usability", desiring to boost the user experience with respect to
multi-monitor usage, convenient interactive UIs for common tasks,
profound support for touchpads and touchscreens, tearing-free graphics,
low-latency audio, casual on-target debugging, and suspend/resume.
The focus on usability notwithstanding, we will steadily continue with the
gardening of Genode's driver landscape, fostering the consistent use of drivers
ported from up-to-date Linux kernels, clear-cut ACPI support, and making
drivers pluggable.
In 2024, we will also promote Genode's custom (base-hw) microkernel to become
the default kernel for Sculpt OS, which is the culmination of a multi-year
effort.
Please find our reflection of the past year and the complete plan for 2024
presented on Genode's official [https:/about/road-map - road-map page].
Genode OS Framework release 23.11 | 2023-11-30 Genode OS Framework release 23.11 | 2023-11-30
############################################## ##############################################

View File

@ -14,164 +14,173 @@ 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. Genode technology to a certain direction, we are willing to revisit our plans.
Review of 2022 Review of 2023
############## ##############
The two main topics of 2022 went hand in hand. First, we reimagined Genode's The overarching theme of the road map in 2023 was the conquering of advanced
driver landscape across x86 and ARM, universally adopting a new method of platform aspects beyond mere functionality, speaking of temperature sensing,
reusing Linux drivers to great success, and rigidly applying the framework's frequency control, battery monitoring, power management, and suspend/resume.
security architecture to driver components. This effort unlocked the second We aimed at "Rocking the platforms we support!".
major achievement, namely the use of Genode as mobile OS on the PinePhone. 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.
Following the introduction of Genode's rigid driver architecture on ARM Besides PC hardware, we put much emphasis on the PinePhone as a reference device
platforms in 2021, we took the year 2022 as opportunity to consistently for Genode on the phone. As one highlight of 2023, we got the
establish this architecture across all platforms. [https://genodians.org/nfeske/2023-05-11-sculpt-os#Mobile_Sculpt_OS_on_the_PinePhone - mobile version of Sculpt OS]
We conquered the convoluted world of x86 in greater depth than ever before, into the hands of a pilot group of users who provided instructive
leaving almost no stone unturned. On top of the new architecture, we built an feedback to us. The system-update mechanism that Sculpt OS gained in April has
arsenal of fresh driver components, most of them based on our Linux been a game changer for such scenarios as it reduces the effort and risk of
device-driver environment. Other drivers had been written from scratch test-driving experimental versions to almost zero.
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 At the beginning of 2023, we declared our ambition to run Sculpt OS on
Genode-based smartphone. It entailed the enablement of device hardware ranging Genode's custom (base-hw) microkernel as alternative to the time-tested NOVA
from touch screen, over power management, audio, storage, telephony, camera, kernel. At that time, two showstoppers remained, namely
GPU, to mobile-data connectivity. The challenge of getting the hardware to [https://genode.org/documentation/release-notes/23.11#Kernel-agnostic_DMA_protection - DMA protection] and
cooperate was met by the challenge of enabling meaningful application [https://genode.org/documentation/release-notes/23.11#Modernized_virtualization_interface - virtualization]
workloads. The ability to run the Chromium-based morph browser directly on support. Both of these deeply technical topics got covered over
Genode on the PinePhone is certainly the most prolific result. Moreover, we the course of the year. Refinements, optimizations, and real-world testing
haven't merely managed to get it to work, but we gained detailed guidance notwithstanding, we are happy to be well on track towards our goal.
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 Besides working on Genode's actual operating-system code, we fully embraced
intriguing topics as well. To name a few, we combined Genode with FPGAs for developer tooling as focus area. In 2023, the
new hardware-software co-design opportunities, enabled the use of [https://genode.org/documentation/release-notes/23.08#Goa_tool_gets_usability_improvements_and_depot-index_publishing_support - Goa SDK]
WireGuard-based virtual private networks, experimented with hardware security for streamlining the application development for Genode has reached the level
modules, and explored suspend/resume functionality on PC hardware. of maturity and flexibility that allowed us to port software stacks as
The [https://genode.org/documentation/release-notes/index - documentation] of sophisticated as
the four releases of 2022 presents the whole picture. [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.
2023 - Rocking the platforms we support! 2024 - Sculpt OS usability
######################################## ##########################
Genode has already come a long way to support a variety of device form factors During our annual road-map discussion on Genode's
ranging from the embedded appliances, over the PinePhone, to PC hardware. [https://genode.org/community/mailing-lists - mailing list], it became
With the term "support", we used to refer to the principle use of fundamental apparent that many of us developers long for harvesting user-visible rewards
platform features like storage, networking, display, audio, or USB. The needs after concentrating so intensively on topics below the surface,
of most real-world scenarios, however, go beyond those functional basics. eagerly rallying behind the theme "Sculpt OS usability" for 2024.
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! 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.
Specifically, to rock the PinePhone, we will invite the community to A second recurring interest is the further consolidation of Genode's driver
participate in multiple rounds of field tests, allowing us to enable and landscape towards fully pluggable drivers, the consistent use of drivers
refine advanced features, like prolonged standby, in an iterative way. ported from up-to-date Linux kernels, and clear-cut ACPI support.
Regarding the PC, we aim at leveraging the different power characteristics As continuations of 2023, the vision of Sculpt OS on Genode's custom kernel
of CPU cores found in modern Intel platforms, step up our game regarding GPU will come to fruition, and we will bring our goal of easy-to-use on-target
support (peeking at Vulkan), and making suspend/resume a regular feature that debugging to completion.
just works.
These efforts will be flanked by continuous architectural work that will make Since we added
the framework ever cleaner and leaner, e.g., by reducing the reliance on [https://genodians.org/atopia/2023-10-26-a-first-complex-rust-package - Rust support]
complex C++ features like exceptions, and continuously simplifying the to the Goa tool mid of 2023, we have been looking for natural synergies
framework fundamentals and interfaces. On our mission to attain least between Rust-based projects and Genode. During the road-map discussion, we
complexity of the base system, we strive to host the fully featured PC version identified the use of Rust-based components as building blocks for a
of Sculpt OS on Genode's custom-tailored microkernel by the end of the year. 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.
In addition to the overarching theme outlined above, the following additional Device-wise, we will continue our engagement with the PinePhone, look forward
topics stood out during our yearly brainstorming session on the mailing list. to the upcoming MNT PocketReform, and take on the latest Intel-based PC
First, several developers expressed their curiosity in working on AMD graphics platforms. We also want to explore the use of Sculpt OS on form factors like
(display and GPU) as a side activity. A second recurring topic was the the ZimaBlade single-board server (headless operation) or the StarLite tablet
usability of Genode as desktop OS, easing the work with files on Sculpt, (touch-based UI).
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 Milestones for 2024
################### ###################
In the following, we present a rough schedule of the planned work. As usual, February - Release 24.02
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) * Revised audio infrastructure
* Ready-to-use system image for first field test (timing robustness, pluggable drivers, adaptive sample rates)
* Quick switch between different system scenarios as presets * Suspend/resume awareness of GPU, AHCI, and NVMe drivers
* On-target system update * Support for I2C based HID devices in Intel GEN12 (e.g., touchpad)
* Boot optimization * Fine-grained and dynamic assignment of USB devices/interfaces
* Goa support for porting 3rd-party libraries to Genode * Use of Sculpt OS as a remote test target for Goa
* Improved I/O performance (Intel GPU buffer management, VFS I/O batching, * TCP/IP stack based of DDE-Linux version 6.x
TCP throughput) * PinePhone support for receiving and sending SMS messages
* 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 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 * Updated "Genode Foundations" book
* Tool-chain update, switch to C++20 by default * Drivers
* Mobile version of Sculpt OS (PinePhone) * Revised PC platform discovery and ACPI sandboxing
* First system image fit for general use * i.MX drivers updated to DDE-Linux version 6.x
* Reuse of an existing SDK for building applications * ALSA-based audio driver for PC platforms
* Integration of file vault and WireGuard * Audio on MNT Reform
* Prolonged standby mode * Alder Lake GPU support + updated Mesa library stack
* Easy installation of user-supplied applications * Audio components converted to new APIs introduced in 24.02
* Wifi * Optimized base-hw multimedia support
* Principle x86 virtualization support for base-hw kernel (on Qemu) (kernel scheduling, latency, cache attributes)
* Base-hw kernel support for the tracing of scheduling events * First Sculpt PC variant on the base-hw kernel
* Updated DDE-Linux based driver for USB HID and USB network (integration of the kernel-agnostic IOMMU support, virtualization)
* Replacing iPXE network driver by DDE-Linux-based driver * Consolidation of the Tresor block encryptor and file vault
* Revision of the consistent block encrypter (CBE) + usability improvements * Application-level compositing using Genode's dialog API
* Goa support for building simple Rust programs for Genode
August - Release 23.08 August - Release 24.08
====================== ======================
* Improved PC platform support * Sculpt OS
* Pre-boot ACPI discovery, sandboxing of ACPICA * Low-complexity custom file manager
* Device & driver restart and/or resume support after ACPI wakeup * User profiles
* Support for I2C based HID devices in Intel GEN12 (e.g., touchpad) * On-target documentation view
* Management of efficient/performance cores on Intel GEN12 * Assignment of individual directories as file systems
* Mobile version of Sculpt OS (PinePhone) * DDE-Linux update to kernel version 6.6 LTS
* File-management functionality * Updating Qt and QtWebEngine to Qt6
* Support for receiving and sending SMS messages * GUI stack
* User-level IPv6 routing (using IPv6 by VMs) * Multi-monitor support
* VirtualBox on Intel hardware running on the base-hw kernel * Tearing-free graphics
* DDE-Linux update to kernel version 6.x * Touch aware GUI server and window manager
* System wind-down protocol (component life-cycle management) * Drag'n'drop between applications
* Exemplary port of non-trivial Rust-based application using Goa * Mouse grabbing
* Revival of GDB monitor (update, making it easier to use) * 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 23.11 November - Release 24.11
======================== ========================
* Feature-complete PC version of Sculpt OS on the base-hw kernel * Sculpt OS
* IOMMU handled in platform driver * Multi-monitor window management
* Suspend/resume for Sculpt OS on the PC * Use of dev tools on target
* Mobile version of Sculpt OS (PinePhone) * "Genode applications" book focused on component development
* GPS, compass * Port of Qemu via Goa
* Open-street-map client * Dynamic VFS configuration, VFS / file-system interface optimizations
* IPv6 protocol stack (lxIP update, using IPv6 by native applications) * Pluggable USB-Host driver
* Revised audio (timing robustness, pluggable drivers, sample-rate conversion) * Show case of a multi-component e-mail user agent
* Dynamic VFS configuration