mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-19 21:57:55 +00:00
Road map for 2023
This commit is contained in:
parent
641fadb3e9
commit
d86309957e
33
doc/news.txt
33
doc/news.txt
@ -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
|
||||
##############################################
|
||||
|
||||
|
218
doc/road_map.txt
218
doc/road_map.txt
@ -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.
|
||||
|
||||
|
||||
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
|
||||
uncertainties and seemed almost impenetrable when we started. But at the end
|
||||
of the year, our custom Intel-GPU multiplexer has landed in Sculpt OS like it
|
||||
always belonged there. In tandem with the Intel-GPU work, we explored the
|
||||
Vivante GPU as a representative of an ARM platform. The work required a deep
|
||||
dive into the respective GPU architectures and the Mesa software stack. It
|
||||
eventually led us to the design of Genode's device-agnostic GPU interfaces.
|
||||
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.
|
||||
|
||||
The second line of work was concerned with the reuse of Linux drivers as
|
||||
Genode components. Over the year, the puzzle pieces of our new Linux
|
||||
device-driver environment come together, replacing former confusion and chaos
|
||||
with knowledge and order, ultimately uncovering the treasure of Linux drivers
|
||||
for Genode with very little friction. On the way, we created new methodology
|
||||
and tooling, as well as extensive documentation in the form of the "Genode
|
||||
Platforms" document. Thanks to the new drivers ported from the Linux kernel,
|
||||
we were able to witness interactive Genode scenarios becoming alive on the
|
||||
PinePhone by the end of the year.
|
||||
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.
|
||||
|
||||
The third major topic was the growing sophistication of Genode-native
|
||||
workloads, with the media features of the Chromium-based browser on 64-bit ARM
|
||||
being the most impressive example. Apart from the apparent functional benefits
|
||||
for Genode and Sculpt OS, this is the long outstanding validation of some bold
|
||||
design decisions we took years ago, in particular the role and architecture of
|
||||
the VFS and its interplay with the libc.
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
|
||||
2022 - Mobile Usability
|
||||
#######################
|
||||
2023 - Rocking the platforms we support!
|
||||
########################################
|
||||
|
||||
After having enabled the first interactive Genode scenarios on the PinePhone
|
||||
last year, we plan to take Genode on the PinePhone to a level where we can
|
||||
routinely use it for advanced applications, in particular video chat. This
|
||||
vision confronts us with a multitude of hard technical nuts to crack such as
|
||||
power efficiency, UI latency, quality-of-service of audio processing, drivers
|
||||
for multi-media devices, WebRTC performance, and usability. This grand theme
|
||||
will not only address the PinePhone specifically. The efficiency gains will
|
||||
benefit all Genode use cases large and small.
|
||||
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).
|
||||
|
||||
Our theme of the Genode-based video chat on the PinePhone fuels several
|
||||
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.
|
||||
In 2023, we are going to move from making things work to making things rock!
|
||||
|
||||
Besides the PinePhone, we will steadily nurture the quality and scope of
|
||||
driver support on PC hardware, which remains the primary platform for the
|
||||
day-to-day use of Sculpt OS. So you can expect us to keep up with recent
|
||||
generations of Intel-based hardware. In this area, we plan to make IOMMU
|
||||
support available with kernels beyond NOVA, and explore the use of
|
||||
power-management features like suspend-resume with Sculpt OS.
|
||||
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 2022
|
||||
Milestones for 2023
|
||||
###################
|
||||
|
||||
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.
|
||||
|
||||
|
||||
February - Release 22.02
|
||||
February - Release 23.02
|
||||
========================
|
||||
|
||||
* OpenGL in VirtualBox 6
|
||||
* Sculpt OS as tool kit for special-purpose OS images
|
||||
* PinePhone
|
||||
* Modem access
|
||||
* Touch-screen compatibility of Sculpt OS
|
||||
* 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 22.05
|
||||
May - Release 23.05
|
||||
===================
|
||||
|
||||
* Annual update of the "Genode Foundations" book
|
||||
* Second edition of the "Genode Platforms" documentation
|
||||
* WireGuard VPN
|
||||
* Updated drivers for PC hardware (Wifi, Intel framebuffer, USB)
|
||||
* New tracing tool with support for CTF and PCAP
|
||||
* PinePhone telephony
|
||||
* 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 22.08
|
||||
August - Release 23.08
|
||||
======================
|
||||
|
||||
* PinePhone
|
||||
* Morph browser
|
||||
* Media record and playback capabilities
|
||||
* FPGA-powered DMA protection for the Zynq-7000 SoC
|
||||
* Kernel-agnostic IOMMU support for PC hardware
|
||||
* Optimized GUI latency and synchronization
|
||||
* 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 22.11
|
||||
November - Release 23.11
|
||||
========================
|
||||
|
||||
* PinePhone
|
||||
* WebRTC-based video chat
|
||||
* Power management
|
||||
* Base mechanism for suspend-resume on PC hardware
|
||||
* Support for hardware-based trust anchor for CBE and WireGuard
|
||||
* Software-hardware co-design example for the Zynq-7000 SoC
|
||||
* 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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user