Road map for 2017

This commit is contained in:
Norman Feske 2017-01-17 16:46:17 +01:00
parent 0938d69192
commit 6c87c5dbdc
1 changed files with 124 additions and 93 deletions

View File

@ -14,99 +14,132 @@ 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 2015 Review of 2016
############## ##############
In the beginning of 2015, we declared four main topics to work on, namely We originally started the year 2016 with the ambition to expand the Genode
Genode as general-purpose OS, our custom base-hw kernel platform, thorough community by improving the project's appeal towards system builders and
documentation, and the seL4 kernel. It goes without saying that the stability privacy cautious users. Hence, we started the year with the resolution to
and performance of the base system is a fundamental requirement for the first increase our engagement with the wider community, i.e., in the form of
topic. publishing tutorial-like articles. Over the course of the year, however, we
increasingly shifted our focus to architectural and deeply technical topics
instead.
In mid of 2015, we eventually reached the point where a hand full of We ultimately prioritized the concerns of the existing Genode users over
developers started using Genode as their day-to-day OS in the form of the extending our user base. The existing users - ourself included - are primarily
so-called interested in API stability and maturity. So we made it our priority to free
[https://github.com/genodelabs/genode/issues/1552 - Turmvilla scenario]. Genode from legacies and known architectural limitations. Over the year, we
By the end of the year, the performance, stability, and device-driver support introduced and cultivated the new framework API that is designed for safety,
had reached a level that leaves people impressed every time we have the chance achieved cross-kernel binary compatibility, and revised the framework's most
to show off our system. Once people become interested, the Genode Foundations fundamental protocols. Now that the time of sweeping architectural changes
book - published in Spring - provides a smooth introduction into Genode. The lies behind us, we feel much more confident to approach new users.
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
[http://codelabs.ch - 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 Apart from the architectural foundations, among the many other construction
as day-to-day OS, we should put the emphasis of 2016 on sites of 2016 were the support for the RISC-V architecture, hosting Genode on
ways to make Genode accessible for a wider community. top of the Muen separation kernel and the seL4 microkernel, huge device driver
improvements (wifi, graphics, USB, ACPI), VirtualBox 5, virtual networking,
TOR, Rust and many others. Even though we largely deviated from our original
ambition, we are proud of the outcome of the past year.
Big picture for 2016 Big picture for 2017
#################### ####################
We identified two possible ways to extend the Genode community. Our principle direction as declared at he beginning of 2016 remains unchanged
for 2017: Making Genode accessible to the world outside the inner circle
of us enthusiasts. But rather than making this direction the top priority for
now, let us first push the bounds of what the current users and
developers can do with Genode. Hence, for the overall theme of 2017, we
picked: *stability and scalability*. Once Genode reaches the point where it is
routinely used and stressed for various purposes by the "inner circle", a
growing user base will follow naturally and organically.
By community we refer to two groups of people. The first group are During our seasonal road-map discussion on our mailing list, we identified the
maker-minded people with a strong incentive to build things. By publishing a following topics to address in 2017:
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 :Application binary interfaces and package management:
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 By mid 2016, we attained binary compatibility across the various OS
to the world outside the inner circle of us enthusiasts. kernels supported by Genode, which cleared the way to introduce the notion
of a Genode application binary interface (ABI). This, in turn, is a
prerequisite for a scalable handling of binary packages. In 2017, we
will leverage these foundations in two ways: Allowing the easy creation
of Genode systems out of packages, and realizing a system-update mechanism
that allows us to automatically use (and thereby test) the latest versions
of Genode components on our machines.
On a technical level, this motive implicates the following topics: :Dynamically reconfigurable subsystems:
* The deployment, management, and configuration of Genode systems, i.e., by Until now, Genode subsystems were either static (using the init component to
bringing forward our work on the Nix package manager and by fostering define them) or relied on a scenario-specific dynamic runtime environment
dynamic configurability. This direction also reinforces the need to achieve (like CLI monitor). By enhancing init to dynamically apply configuration
binary compatibility between the various base platforms to make the changes, the need for special-purpose runtime environments will
distribution of binary packages, reproducible builds, and continuous test disappear. Scenarios like multi-stage booting, boot-medium detection, or
and integration scalable. a dynamic desktop environment will become dramatically easier to realize.
* Accommodation of common desktop use cases like plugging in a USB :Pruning the boot chain:
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 Today, Genode on x86 machines still relies on the legacy BIOS boot
fan control, power management, suspend/resume, and similar features. mechanism. We will explore alternatives such as UEFI boot and
coreboot.
* Identifying ways of how Genode could contribute additional value to :Asynchronous I/O:
Xen-based environments like Amazon EC2 and Qubes OS.
* Foster the cross-pollination of the seL4 and Genode communities. With Genode 16.11, we successfully removed the last blocking inter-component
Genode would allow the seL4 community to move beyond static system interfaces from the base framework. Still, other parts of the user-level
scenarios. infrastructure, in particular the libc still relies on blocking operations. Even
though we have to offer blocking I/O to user applications for POSIX
compatibility, the mechanisms used behind the scenes will be changed to leverage
Genode's asynchronous I/O primitives.
* As most use cases rely on networking, we acknowledge the need for :VirtualBox 5:
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 Currently, we maintain a fully-featured version of VirtualBox 4 (including
softcore CPUs, over multiple domains of the Muen separation kernel, or a USB pass-through, audio, shared folders, clipboard, dynamic desktop resizing)
local machine and a cloud-service provider. and a pretty basic version of VirtualBox 5 (without those integration
features). In 2017, we will replace VirtualBox 4 by a fully featured
version of VirtualBox 5.
Assuming that we succeed in drawing the attention of a broader audience :Updated tool chain and Qt5:
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 With version 17.05, we want to experiment with the idea of providing a
deficiencies in the current API. We should finalize the renovation of long-term supportable version of the framework in addition to the quarterly
the Genode API until the mid of 2016. This will also be right the time for releases. Consequently, at the time of its release, this version should use
updating the Genode book. Also, the planned step-by-step guides will a modern tool chain that will remain current for the foreseeable future of
be based on the modernized API. Genode's regular development. The same holds true for Qt5.
:Hardware-accelerated graphics on Intel:
Graphics is an important element for many use cases for Genode on x86-based
platforms. Even though we experimented with hardware-accelerated 3D
graphics
[http://genode.org/documentation/release-notes/10.08#Gallium3D_and_Intel_s_Graphics_Execution_Manager - many years ago],
the current GUI stack is still based on software-based rendering.
We want to overcome this limitation this year.
:Native work flows:
In the regularly used "Turmvilla" scenarios, most work flows require the
use of Linux in a virtual machine. Over the course of the year, we want
to move the most important work flows (namely software development and
the work with emails) to Genode natively. As a precondition,
we need to improve the usability of our GUI infrastructure by adding
support for tiled and tabbed windows, and virtual desktops.
:Storage:
There are several storage-related topics that need our attention to
realize the goals stated above to our satisfaction. This includes the
performance and stability of the used file-system stack, and the provision
of file-based backup and cryptographic functionality.
:Genode-based cloud appliances:
We want to widen the application scope of Genode by enabling users to
easily deploy Genode scenarios on Xen-based cloud platforms.
Milestones for 2016 Milestones for 2017
################### ###################
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,
@ -114,41 +147,39 @@ 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 16.02 February - Release 17.02
======================== ========================
* RISC-V architecture support * Application binary interfaces (ABI)
* seL4 version 2.0 * Dynamic init
* Assignment of USB devices to VirtualBox guests * VFS: asynchronous I/O
* API modernization (introduction of new component API, deprecation
of API legacies)
May - Release 16.05 May - Release 17.05
=================== ===================
* VirtualBox on top of the Muen separation kernel * Removal of deprecated APIs
* Updated tool chain
* Updated Qt5
* Easy creation of Genode systems out of packages
* Feature-complete VirtualBox 5
* Update of the Genode Foundations book * Update of the Genode Foundations book
* NAT component
* API modernization (removal of API legacies)
* Definition of "packages"
August - Release 16.08 August - Release 17.08
====================== ======================
* Cross-kernel binary compatibility * Hardware-accelerated graphics on Intel-based platforms
* Interactive system scenarios on top of seL4 * Support for the seL4 kernel on x86_64 and ARM
* Networking via Tor * Use of Genode for cloud-computing appliances (deployment, virtio)
* Block encryption * GUI: tiled and tabbed window management, virtual desktops
* Build-system support for handling packages
November - Release 16.11 November - Release 17.11
======================== ========================
* Genode on top of Xen * Revised boot concept (UEFI, trimming the boot chain)
* Exploration of Genode as distributed system * Storage: backup, improved file-system support
* Deployment of packages * Native work flows for email and development work
* On-target building of packages * Test automation for interactive system scenarios