mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-30 10:38:55 +00:00
142 lines
5.9 KiB
Plaintext
142 lines
5.9 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 2021
|
|
##############
|
|
|
|
Genode's year 2021 was defined by three extremely challenging lines of work.
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
|
|
2022 - Mobile Usability
|
|
#######################
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
|
|
Milestones for 2022
|
|
###################
|
|
|
|
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 22.02
|
|
========================
|
|
|
|
* OpenGL in VirtualBox 6
|
|
* Sculpt OS as tool kit for special-purpose OS images
|
|
* Pinephone
|
|
* Modem access
|
|
* Touch-screen compatibility of Sculpt OS
|
|
|
|
|
|
May - Release 22.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
|
|
|
|
|
|
August - Release 22.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
|
|
|
|
|
|
November - Release 22.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
|
|
|