Road map for 2023

This commit is contained in:
Norman Feske 2023-01-17 12:05:13 +01:00 committed by Christian Helmuth
parent 641fadb3e9
commit d86309957e
2 changed files with 160 additions and 91 deletions

View File

@ -4,6 +4,39 @@
=========== ===========
Road Map for 2023 | 2023-01-17
##############################
| In 2023, we will make the mobile version of Sculpt OS fit for end users,
| unleash advanced hardware features of Intel platforms,
| switch to C++20 by default, and run the feature-complete PC version
| of Sculpt OS on Genode's custom-tailored microkernel.
After having enabled all hardware features of the PinePhone that are
fundamental for a mobile phone over the course of the past year, the
project now aims at getting the mobile version of Sculpt OS into the hands of
end users. Throughout the year, there will be multiple rounds of field tests
within the community, allowing us to reach the desired state of maturity and
usefulness in an iterative way.
On PC platforms, Genode will increasingly address advanced platform features
like the distinction between power-efficient and high-performance cores, the
management of temperatures and frequencies, or the practical use of
suspend/resume. By the end of the year, we envision the PC version of Sculpt
OS running on Genode's custom-tailored microkernel leveraging all those
aspects of modern PC hardware.
Along the planned timeline of the project, one can spot plenty of additional
topics of interest such as the continued line of work of combining Genode
with FPGAs, applications implemented in Rust, the integration of IPv6, the
use of C++20 by default, or completed driver support for the MNT Reform laptop.
An exciting year lies ahead of us!
More details including our reflections of the past year, this year's focus,
and a rough schedule are presented at our official
[https:/about/road-map - road-map page].
Genode OS Framework release 22.11 | 2022-11-30 Genode OS Framework release 22.11 | 2022-11-30
############################################## ##############################################

View File

@ -14,82 +14,90 @@ 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 2021 Review of 2022
############## ##############
Genode's year 2021 was defined by three extremely challenging lines of work. 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.
First, we conquered the territory of GPU support that was ridden with Following the introduction of Genode's rigid driver architecture on ARM
uncertainties and seemed almost impenetrable when we started. But at the end platforms in 2021, we took the year 2022 as opportunity to consistently
of the year, our custom Intel-GPU multiplexer has landed in Sculpt OS like it establish this architecture across all platforms.
always belonged there. In tandem with the Intel-GPU work, we explored the We conquered the convoluted world of x86 in greater depth than ever before,
Vivante GPU as a representative of an ARM platform. The work required a deep leaving almost no stone unturned. On top of the new architecture, we built an
dive into the respective GPU architectures and the Mesa software stack. It arsenal of fresh driver components, most of them based on our Linux
eventually led us to the design of Genode's device-agnostic GPU interfaces. 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.
The second line of work was concerned with the reuse of Linux drivers as Our intense engagement with the PinePhone was driven by the vision of a
Genode components. Over the year, the puzzle pieces of our new Linux Genode-based smartphone. It entailed the enablement of device hardware ranging
device-driver environment come together, replacing former confusion and chaos from touch screen, over power management, audio, storage, telephony, camera,
with knowledge and order, ultimately uncovering the treasure of Linux drivers GPU, to mobile-data connectivity. The challenge of getting the hardware to
for Genode with very little friction. On the way, we created new methodology cooperate was met by the challenge of enabling meaningful application
and tooling, as well as extensive documentation in the form of the "Genode workloads. The ability to run the Chromium-based morph browser directly on
Platforms" document. Thanks to the new drivers ported from the Linux kernel, Genode on the PinePhone is certainly the most prolific result. Moreover, we
we were able to witness interactive Genode scenarios becoming alive on the haven't merely managed to get it to work, but we gained detailed guidance
PinePhone by the end of the year. 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.
The third major topic was the growing sophistication of Genode-native Besides these two main lines of development, 2022 was packed with further
workloads, with the media features of the Chromium-based browser on 64-bit ARM intriguing topics as well. To name a few, we combined Genode with FPGAs for
being the most impressive example. Apart from the apparent functional benefits new hardware-software co-design opportunities, enabled the use of
for Genode and Sculpt OS, this is the long outstanding validation of some bold WireGuard-based virtual private networks, experimented with hardware security
design decisions we took years ago, in particular the role and architecture of modules, and explored suspend/resume functionality on PC hardware.
the VFS and its interplay with the libc. The [https://genode.org/documentation/release-notes/index - documentation] of
the four releases of 2022 presents the whole picture.
When reviewing the road map for 2021, some items remained uncovered. In
particular the seL4-related topics became stale. At the end of 2020 - when we
assembled the road map for the past year - there was a tangible prospect of
pursuing this topic as funded work. However, those plans were repeatedly
deferred and remained uncertain. Also, there are some items that have seen
healthy doses of progress - like the topics related to Ada/SPARK or Goa - but
received less attention than anticipated. On the other hand, the four releases
([https://genode.org/documentation/release-notes/21.02 - 21.02],
[https://genode.org/documentation/release-notes/21.05 - 21.05],
[https://genode.org/documentation/release-notes/21.08 - 21.08],
[https://genode.org/documentation/release-notes/21.11 - 21.11])
of 2021 covered quite a few topics not advertised at the road
map, e.g., webcam support, Xilinx Zynq, or RISC-V.
It is fair to say that the level of technical risks we took in 2021 had been
unprecedented in Genode's development history. We are more than proud of the
outcome, which will hopefully propel Genode to new heights in 2022.
2022 - Mobile Usability 2023 - Rocking the platforms we support!
####################### ########################################
After having enabled the first interactive Genode scenarios on the PinePhone Genode has already come a long way to support a variety of device form factors
last year, we plan to take Genode on the PinePhone to a level where we can ranging from the embedded appliances, over the PinePhone, to PC hardware.
routinely use it for advanced applications, in particular video chat. This With the term "support", we used to refer to the principle use of fundamental
vision confronts us with a multitude of hard technical nuts to crack such as platform features like storage, networking, display, audio, or USB. The needs
power efficiency, UI latency, quality-of-service of audio processing, drivers of most real-world scenarios, however, go beyond those functional basics.
for multi-media devices, WebRTC performance, and usability. This grand theme Think of suspend/resume, quick boot times, the deliberate management of
will not only address the PinePhone specifically. The efficiency gains will energy-efficient versus high-performance CPU cores, prolonged standby,
benefit all Genode use cases large and small. bounded audio latency, scaling down (towards microcontrollers), and
scaling up (towards edge-computing platforms).
Our theme of the Genode-based video chat on the PinePhone fuels several In 2023, we are going to move from making things work to making things rock!
ambitions in closely related areas. In particular, we aspire using WireGuard
to secure private communication, and experiment with the operation of
hardware-based trust anchors as the basis for encrypted storage and
communication.
Besides the PinePhone, we will steadily nurture the quality and scope of Specifically, to rock the PinePhone, we will invite the community to
driver support on PC hardware, which remains the primary platform for the participate in multiple rounds of field tests, allowing us to enable and
day-to-day use of Sculpt OS. So you can expect us to keep up with recent refine advanced features, like prolonged standby, in an iterative way.
generations of Intel-based hardware. In this area, we plan to make IOMMU
support available with kernels beyond NOVA, and explore the use of Regarding the PC, we aim at leveraging the different power characteristics
power-management features like suspend-resume with Sculpt OS. 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 2022 Milestones for 2023
################### ###################
In the following, we present a rough schedule of the planned work. As usual, In the following, we present a rough schedule of the planned work. As usual,
@ -97,45 +105,73 @@ it is not set in stone. If you are interested in a particular line of work,
please get in touch. please get in touch.
February - Release 22.02 February - Release 23.02
======================== ========================
* OpenGL in VirtualBox 6 * Mobile version of Sculpt OS (PinePhone)
* Sculpt OS as tool kit for special-purpose OS images * Ready-to-use system image for first field test
* PinePhone * Quick switch between different system scenarios as presets
* Modem access * On-target system update
* Touch-screen compatibility of Sculpt OS * 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 22.05 May - Release 23.05
=================== ===================
* Annual update of the "Genode Foundations" book * Updated "Genode Foundations" book
* Second edition of the "Genode Platforms" documentation * Tool-chain update, switch to C++20 by default
* WireGuard VPN * Mobile version of Sculpt OS (PinePhone)
* Updated drivers for PC hardware (Wifi, Intel framebuffer, USB) * First system image fit for general use
* New tracing tool with support for CTF and PCAP * Reuse of an existing SDK for building applications
* PinePhone telephony * 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 22.08 August - Release 23.08
====================== ======================
* PinePhone * Improved PC platform support
* Morph browser * Pre-boot ACPI discovery, sandboxing of ACPICA
* Media record and playback capabilities * Device & driver restart and/or resume support after ACPI wakeup
* FPGA-powered DMA protection for the Zynq-7000 SoC * Support for I2C based HID devices in Intel GEN12 (e.g., touchpad)
* Kernel-agnostic IOMMU support for PC hardware * Management of efficient/performance cores on Intel GEN12
* Optimized GUI latency and synchronization * 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 22.11 November - Release 23.11
======================== ========================
* PinePhone * Feature-complete PC version of Sculpt OS on the base-hw kernel
* WebRTC-based video chat * IOMMU handled in platform driver
* Power management * Suspend/resume for Sculpt OS on the PC
* Base mechanism for suspend-resume on PC hardware * Mobile version of Sculpt OS (PinePhone)
* Support for hardware-based trust anchor for CBE and WireGuard * GPS, compass
* Software-hardware co-design example for the Zynq-7000 SoC * 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