mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-23 15:32:25 +00:00
178 lines
8.0 KiB
Plaintext
178 lines
8.0 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 2022
|
|
##############
|
|
|
|
The two main topics of 2022 went hand in hand. First, we reimagined Genode's
|
|
driver landscape across x86 and ARM, universally adopting a new method of
|
|
reusing Linux drivers to great success, and rigidly applying the framework's
|
|
security architecture to driver components. This effort unlocked the second
|
|
major achievement, namely the use of Genode as mobile OS on the PinePhone.
|
|
|
|
Following the introduction of Genode's rigid driver architecture on ARM
|
|
platforms in 2021, we took the year 2022 as opportunity to consistently
|
|
establish this architecture across all platforms.
|
|
We conquered the convoluted world of x86 in greater depth than ever before,
|
|
leaving almost no stone unturned. On top of the new architecture, we built an
|
|
arsenal of fresh driver components, most of them based on our Linux
|
|
device-driver environment. Other drivers had been written from scratch
|
|
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
|
|
Genode-based smartphone. It entailed the enablement of device hardware ranging
|
|
from touch screen, over power management, audio, storage, telephony, camera,
|
|
GPU, to mobile-data connectivity. The challenge of getting the hardware to
|
|
cooperate was met by the challenge of enabling meaningful application
|
|
workloads. The ability to run the Chromium-based morph browser directly on
|
|
Genode on the PinePhone is certainly the most prolific result. Moreover, we
|
|
haven't merely managed to get it to work, but we gained detailed guidance
|
|
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
|
|
intriguing topics as well. To name a few, we combined Genode with FPGAs for
|
|
new hardware-software co-design opportunities, enabled the use of
|
|
WireGuard-based virtual private networks, experimented with hardware security
|
|
modules, and explored suspend/resume functionality on PC hardware.
|
|
The [https://genode.org/documentation/release-notes/index - documentation] of
|
|
the four releases of 2022 presents the whole picture.
|
|
|
|
|
|
2023 - Rocking the platforms we support!
|
|
########################################
|
|
|
|
Genode has already come a long way to support a variety of device form factors
|
|
ranging from the embedded appliances, over the PinePhone, to PC hardware.
|
|
With the term "support", we used to refer to the principle use of fundamental
|
|
platform features like storage, networking, display, audio, or USB. The needs
|
|
of most real-world scenarios, however, go beyond those functional basics.
|
|
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!
|
|
|
|
Specifically, to rock the PinePhone, we will invite the community to
|
|
participate in multiple rounds of field tests, allowing us to enable and
|
|
refine advanced features, like prolonged standby, in an iterative way.
|
|
|
|
Regarding the PC, we aim at leveraging the different power characteristics
|
|
of CPU cores found in modern Intel platforms, step up our game regarding GPU
|
|
support (peeking at Vulkan), and making suspend/resume a regular feature that
|
|
just works.
|
|
|
|
These efforts will be flanked by continuous architectural work that will make
|
|
the framework ever cleaner and leaner, e.g., by reducing the reliance on
|
|
complex C++ features like exceptions, and continuously simplifying the
|
|
framework fundamentals and interfaces. On our mission to attain least
|
|
complexity of the base system, we strive to host the fully featured PC version
|
|
of Sculpt OS on Genode's custom-tailored microkernel by the end of the year.
|
|
|
|
In addition to the overarching theme outlined above, the following additional
|
|
topics stood out during our yearly brainstorming session on the mailing list.
|
|
First, several developers expressed their curiosity in working on AMD graphics
|
|
(display and GPU) as a side activity. A second recurring topic was the
|
|
usability of Genode as desktop OS, easing the work with files on Sculpt,
|
|
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
|
|
###################
|
|
|
|
In the following, we present a rough schedule of the planned work. As usual,
|
|
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)
|
|
* Ready-to-use system image for first field test
|
|
* Quick switch between different system scenarios as presets
|
|
* On-target system update
|
|
* Boot optimization
|
|
* Goa support for porting 3rd-party libraries to Genode
|
|
* Improved I/O performance (Intel GPU buffer management, VFS I/O batching,
|
|
TCP throughput)
|
|
* 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
|
|
===================
|
|
|
|
* Updated "Genode Foundations" book
|
|
* Tool-chain update, switch to C++20 by default
|
|
* Mobile version of Sculpt OS (PinePhone)
|
|
* First system image fit for general use
|
|
* Reuse of an existing SDK for building applications
|
|
* Integration of file vault and WireGuard
|
|
* Prolonged standby mode
|
|
* Easy installation of user-supplied applications
|
|
* Wifi
|
|
* Principle x86 virtualization support for base-hw kernel (on Qemu)
|
|
* Base-hw kernel support for the tracing of scheduling events
|
|
* Updated DDE-Linux based driver for USB HID and USB network
|
|
* Replacing iPXE network driver by DDE-Linux-based driver
|
|
* Revision of the consistent block encrypter (CBE) + usability improvements
|
|
* Goa support for building simple Rust programs for Genode
|
|
|
|
|
|
August - Release 23.08
|
|
======================
|
|
|
|
* Improved PC platform support
|
|
* Pre-boot ACPI discovery, sandboxing of ACPICA
|
|
* Device & driver restart and/or resume support after ACPI wakeup
|
|
* Support for I2C based HID devices in Intel GEN12 (e.g., touchpad)
|
|
* Management of efficient/performance cores on Intel GEN12
|
|
* Mobile version of Sculpt OS (PinePhone)
|
|
* File-management functionality
|
|
* Support for receiving and sending SMS messages
|
|
* User-level IPv6 routing (using IPv6 by VMs)
|
|
* VirtualBox on Intel hardware running on the base-hw kernel
|
|
* DDE-Linux update to kernel version 6.x
|
|
* System wind-down protocol (component life-cycle management)
|
|
* Exemplary port of non-trivial Rust-based application using Goa
|
|
* Revival of GDB monitor (update, making it easier to use)
|
|
|
|
|
|
November - Release 23.11
|
|
========================
|
|
|
|
* Feature-complete PC version of Sculpt OS on the base-hw kernel
|
|
* IOMMU handled in platform driver
|
|
* Suspend/resume for Sculpt OS on the PC
|
|
* Mobile version of Sculpt OS (PinePhone)
|
|
* GPS, compass
|
|
* Open-street-map client
|
|
* IPv6 protocol stack (lxIP update, using IPv6 by native applications)
|
|
* Revised audio (timing robustness, pluggable drivers, sample-rate conversion)
|
|
* Dynamic VFS configuration
|
|
|