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 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 2015

In the beginning of 2015, we declared four main topics to work on, namely Genode as general-purpose OS, our custom base-hw kernel platform, thorough documentation, and the seL4 kernel. It goes without saying that the stability and performance of the base system is a fundamental requirement for the first topic.

In mid of 2015, we eventually reached the point where a hand full of developers started using Genode as their day-to-day OS in the form of the so-called Turmvilla scenario. By the end of the year, the performance, stability, and device-driver support had reached a level that leaves people impressed every time we have the chance to show off our system. Once people become interested, the Genode Foundations book - published in Spring - provides a smooth introduction into Genode. The Turmvilla scenario is currently based on the NOVA kernel. For the future, we want to use also other kernels, in particular our custom base-hw kernel and seL4. Thanks to the contribution of Codelabs, base-hw became usable on the 64-bit x86 architecture and on the Muen separation kernel in particular. With our work on seL4, we reached the point where basic Genode scenarios are executable on this kernel.

After having passed the point where a few enthusiasts are able to use Genode as day-to-day OS, we should put the emphasis of 2016 on ways to make Genode accessible for a wider community.

Big picture for 2016

We identified two possible ways to extend the Genode community.

By community we refer to two groups of people. The first group are maker-minded people with a strong incentive to build things. By publishing a series of step-by-step guides that explain how to put Genode components together in order to create custom system scenarios, we intend to spark interest of system builders in Genode. Those articles could be accompanied by screencasts or live-system images.

The second group are certain end users with a strong desire for privacy and security. We expect this narrow user group to willingly trade the comfort and features of traditional desktop OSes for the benefits of Genode. We plan to showcase a system with practical value for this group, for example a disposable OS like Tails that allows the user to browse the internet via the Tor network.

In this spirit, the leitmotif for 2016 will be: Let us make Genode accessible to the world outside the inner circle of us enthusiasts.

On a technical level, this motive implicates the following topics:

  • The deployment, management, and configuration of Genode systems, i.e., by bringing forward our work on the Nix package manager and by fostering dynamic configurability. This direction also reinforces the need to achieve binary compatibility between the various base platforms to make the distribution of binary packages, reproducible builds, and continuous test and integration scalable.

  • Accommodation of common desktop use cases like plugging in a USB stick to work with the files stored on it. Also disk encryption comes into mind.

  • Optimization of Genode for the use on a laptop, e.g., addressing fan control, power management, suspend/resume, and similar features.

  • Identifying ways of how Genode could contribute additional value to Xen-based environments like Amazon EC2 and Qubes OS.

  • Foster the cross-pollination of the seL4 and Genode communities. Genode would allow the seL4 community to move beyond static system scenarios.

  • As most use cases rely on networking, we acknowledge the need for improving Genode's network support such as NAT, the robustness of the available TCP/IP stacks and drivers, encryption, and possibly IPv6.

  • Genode as distributed system, e.g., a system spread over multiple FPGA-based softcore CPUs, over multiple domains of the Muen separation kernel, or a local machine and a cloud-service provider.

Assuming that we succeed in drawing the attention of a broader audience to our project, we should make sure that Genode's API won't undergo major changes soon after this point. Today, there are still a number of deficiencies in the current API. We should finalize the renovation of the Genode API until the mid of 2016. This will also be right the time for updating the Genode book. Also, the planned step-by-step guides will be based on the modernized API.

Milestones for 2016

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 16.02

  • RISC-V architecture support

  • seL4 version 2.0

  • Assignment of USB devices to VirtualBox guests

  • API modernization (introduction of new component API, deprecation of API legacies)

May - Release 16.05

  • VirtualBox on top of the Muen separation kernel

  • Update of the Genode Foundations book

  • NAT component

  • API modernization (removal of API legacies)

  • Definition of "packages"

August - Release 16.08

  • Cross-kernel binary compatibility

  • Interactive system scenarios on top of seL4

  • Networking via Tor

  • Block encryption

  • Build-system support for handling packages

November - Release 16.11

  • Genode on top of Xen

  • Exploration of Genode as distributed system

  • Deployment of packages

  • On-target building of packages