Roadmap 2021

Martin Stein martin.stein at
Mon Dec 21 12:50:05 CET 2020

Hi Genodians,

Thanks Norman for the Roadmap reminder! And thanks to you and all the
other community members for your detailed insight in your very
motivating plans!

I'll have a try:

Review 2020


* Spunky kernel written entirely in Ada
* Spunky kernel SPARK compliance
* Let further Genode core functionality benefit from Ada/SPARK

I was able to work at this a lot at the beginning of the year, resulting
in a presentation and demonstration at FOSDEM 2020 in February [8][10].
The RPC, Signalling, CPU Scheduling, Data Structures and a good part of
the Clock of Spunky made it to Ada [9][11]. Also the Sculpt OS is
running smoothly with the kernel [10]. Unfortunately from that point on
other projects consumed most of my time and I had to postpone the
"Ada-for-core" project again and again. However, I'm still motivated to
continue with this project as soon as possible.

Block encryption

* Towards using the Consistent Block Encrypter (CBE) on a daily basis

Unexpectedly, this project consumed most of my time this year. We did a
complete rework of the internal CBE design and added a lot of
functionality: Online rekeying [1][7], online resizing [2][7], a trust
anchor API and a trust anchor reference implementation [3], a
comprehensive scriptable test environment [3], a VFS integration of the
CBE and of each of its back ends [3][7], and a fancy demo featuring a
Linux VM on a CBE device in Sculpt [4][5][7].

As a side effect of the project, we also extended our Ada/SPARK runtime
support and established an Ada/SPARK coding style [6].

Network stack

* Design review of the NIC router

Although this is an important topic, other issues with the NIC router
and networking in Genode in general turned out to be more important for now.

* NIC router functionality

There were several smaller features missing with the NIC router. We
could add advanced means of forwarding DNS server addresses with the NIC
router, add support for ARP-less domains, and consolidate the link state

* Turn NIC drivers into Uplink session clients

This work is part of our project "restartable NIC drivers" and it is
still in progress, but almost all NIC drivers are already adapted and
I'm positive that we'll have restartable NIC drivers in the next Sculpt

Hardware support

* initializing Intel Hardware P-States (HWP)

My new Lenovo T490 motivated me to do something about supporting Intel
HWP and although it took some time, it turned out well, hopefully not
only to my own benefit [12]

Timing stack

* Clean up Timeout framework
* Consolidate multithreading support in timeout framework

These also turned out to require some time. Especially the testing and
debugging afterwards. But now there are new automated tests that
demonstrate that multithreading works well and the framework could also
be significantly simplified. Was worth it.

My plans so far for 2021

* Finish making NIC drivers restartable in Sculpt

* Establish new API for network sessions (NIC, Uplink) inspired by the
modern Block-Request APIs in order to simplify the use of network
sessions and eliminate corner cases

* Graphical front end and simpler integration in general for the
Consistent Block Encrypter in Sculpt

* Write a comprehensive CBE documentation

* Revive the Spunky project and bring it into Genode mainline

* Enhance Ada/SPARK runtime support and use Ada/SPARK for further
fundamental code



More information about the users mailing list