Road map for 2018

This commit is contained in:
Norman Feske 2018-01-17 17:33:39 +01:00
parent c8c910a41b
commit 562325a28b
2 changed files with 132 additions and 116 deletions

View File

@ -4,6 +4,21 @@
=========== ===========
Road Map for 2018 | 2018-01-17
##############################
| 2018 will be the year of Sculpt.
In autumn last year, a new Genode system scenario called "Sculpt" emerged.
By the end of 2017, all members of the Genode-Labs team switched to this
operating system on their laptops. The planning of 2018 revolves around the
ambition to expand the user base of Sculpt in several steps. Additionally,
the year will be focused on software quality, device-driver support for
popular ARM boards, Genode's custom kernel, and seL4.
The new road map is available at the [https:/about/road-map - road-map page].
Genode at FOSDEM 2018 | 2017-01-16 Genode at FOSDEM 2018 | 2017-01-16
################################## ##################################

View File

@ -14,132 +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 2016 Review of 2017
############## ##############
We originally started the year 2016 with the ambition to expand the Genode The technical topics of 2017 ranged from hardware-accelerated graphics, over
community by improving the project's appeal towards system builders and UEFI, greatly improved seL4 support, user-level networking, file-system
privacy cautious users. Hence, we started the year with the resolution to infrastructure, to an consolidated framework API. However, one topic stood out
increase our engagement with the wider community, i.e., in the form of the most, which is the practical use of Genode as day-to-day OS.
publishing tutorial-like articles. Over the course of the year, however, we
increasingly shifted our focus to architectural and deeply technical topics
instead.
We ultimately prioritized the concerns of the existing Genode users over Whereas the so-called "Turmvilla" system scenario enabled a few enthusiasts to
extending our user base. The existing users - ourself included - are primarily work on a Genode-based system since mid of 2015, the scenario was quite rigid
interested in API stability and maturity. So we made it our priority to free and required significant manual labour for any customization. Although it was
Genode from legacies and known architectural limitations. Over the year, we not really inviting for potential users, it illustrated well that all the
introduced and cultivated the new framework API that is designed for safety, basic building blocks - in particular the driver stacks - were in place. But
achieved cross-kernel binary compatibility, and revised the framework's most it would have been be quite a stretch to call Turmvilla a general-purpose OS
fundamental protocols. Now that the time of sweeping architectural changes at that point. The year 2017 introduced two pivotal features that allowed us to
lies behind us, we feel much more confident to approach new users. break free from the limitations of Turmvilla-like scenarios, namely the new
[https://genode.org/documentation/release-notes/17.05#Package_management - package-management concept]
and the ability to
[https://genode.org/documentation/release-notes/17.02#Dynamically_reconfigurable_init_component - compose and modify subsystems dynamically].
Apart from the architectural foundations, among the many other construction Inspired by these new features, a new system scenario called "Sculpt" emerged
sites of 2016 were the support for the RISC-V architecture, hosting Genode on in Autumn 2017. The combination of Genode's recursive architecture with the
top of the Muen separation kernel and the seL4 microkernel, huge device driver dynamic reconfigurability of the init component allows the user to
improvements (wifi, graphics, USB, ACPI), VirtualBox 5, virtual networking, interactively shape the running Genode system including any subsystem or even
TOR, Rust and many others. Even though we largely deviated from our original configurations of individual components. The system structure is always at the
ambition, we are proud of the outcome of the past year. user's fingertips and can by modified instantly using a text editor. At the
same time, the new package management greatly helps to keep the complexity at
a manageable level. Whereas Turmvilla users rarely updated their installation
out of hesitance to break their work environment, Sculpt is routinely updated
on a weekly basis. The switch of the entire Genode-Labs team to Genode full
time by the end of year was certainly our biggest milestone so far.
Big picture for 2017 2018 - The year of Sculpt
#################### #########################
Our principle direction as declared at he beginning of 2016 remains unchanged The "Turmvilla" era lies behind us. So let the "Sculpt" era begin!
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.
During our seasonal road-map discussion on our mailing list, we identified the Having used Sculpt over the past few months, we feel confident to make the
following topics to address in 2017: system scenario available to a larger audience. In 2018, we will take four
steps:
:Application binary interfaces and package management: # Sculpt for Early Adopters (EA)
By mid 2016, we attained binary compatibility across the various OS The current version of Sculpt accompanied with plain-text documentation
kernels supported by Genode, which cleared the way to introduce the notion that explains the concept and use. It is intended for people who are
of a Genode application binary interface (ABI). This, in turn, is a already familiar with Genode, in particular users that experimented with
prerequisite for a scalable handling of binary packages. In 2017, we Turmvilla-like scenarios in the past. Sculpt EA expects basic Vim skills
will leverage these foundations in two ways: Allowing the easy creation from the user.
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.
:Dynamically reconfigurable subsystems: # Sculpt for The Curious (TC)
Until now, Genode subsystems were either static (using the init component to A polished version of Sculpt that is more welcoming to the user and
define them) or relied on a scenario-specific dynamic runtime environment accompanied with example subsystems that loosely resemble a traditional
(like CLI monitor). By enhancing init to dynamically apply configuration notion of an operating system (like basic menus and window borders).
changes, the need for special-purpose runtime environments will There will be a ready-to-use ISO image for Sculpt TC. So users won't need
disappear. Scenarios like multi-stage booting, boot-medium detection, or to be familiar with Genode's source code and build system. As with Sculpt
a dynamic desktop environment will become dramatically easier to realize. EA, Sculpt TC will still rely on the user's ability to use Vim.
:Pruning the boot chain: # Sculpt by Visual Composition (VC)
Today, Genode on x86 machines still relies on the legacy BIOS boot Whereas the earlier versions rely on text editing for sculpting the system,
mechanism. We will explore alternatives such as UEFI boot and Sculpt VC will feature an interactive graphical user interface, which will
coreboot. hopefully make the system tangible for users who live outside the terminal.
:Asynchronous I/O: # Sculpt as a Community Experience (CE)
With Genode 16.11, we successfully removed the last blocking inter-component Sculpt CE will allow anyone to play the role of a component provider.
interfaces from the base framework. Still, other parts of the user-level Each user should be able to pick individual components or entire component
infrastructure, in particular the libc still relies on blocking operations. Even compositions provided by others while maintaining complete control over the
though we have to offer blocking I/O to user applications for POSIX system.
compatibility, the mechanisms used behind the scenes will be changed to leverage
Genode's asynchronous I/O primitives.
:VirtualBox 5: In addition to working on Sculpt as the overall theme of the year, we will
focus on the following topics:
Currently, we maintain a fully-featured version of VirtualBox 4 (including :Gentle transition from NOVA to our custom kernel and seL4:
USB pass-through, audio, shared folders, clipboard, dynamic desktop resizing)
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.
:Updated tool chain and Qt5: NOVA used to be our kernel of choice on x86 platforms. However, since the
kernel is no longer actively developed, we had to take over the
responsibility to maintain it. Whereas we feel confident in developing the
kernel in an evolutionary way, the kernel has long-standing architectural
limitations (i.e. kernel-memory management) that would require invasive
changes. Instead of ramping up our engagement with NOVA, we'd like to focus
on our custom kernel (base-hw) and the seL4 kernel. In 2018, we set out to
enable Sculpt on base-hw. This involves the support for SMP, VT-x, and VT-d
on x86.
With version 17.05, we want to experiment with the idea of providing a :Freescale i.MX:
long-term supportable version of the framework in addition to the quarterly
releases. Consequently, at the time of its release, this version should use
a modern tool chain that will remain current for the foreseeable future of
Genode's regular development. The same holds true for Qt5.
:Hardware-accelerated graphics on Intel: Based on the feedback from our community, Freescale i.MX support is of
great interest, specifically i.MX6. Hence, we plan to improve the driver
support for this SoC.
Graphics is an important element for many use cases for Genode on x86-based :seL4:
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: We will try to apply all improvements of Genode on seL4 whenever feasible.
It also goes without saying that we will track seL4's upstream development.
In the regularly used "Turmvilla" scenarios, most work flows require the :Software quality and resilience:
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: The modernized framework API introduced last year is an important stepping
stone. But there is much more we can (and should) do, I.e., learning from
the high-integrity computing community (e.g., implementing critical
components in SPARK), leveling-up the scope and intensity of our automated
tests, facilitating static code analysis, and employing software-hardening
techniques. Of course, this scope goes far beyond the time frame of one
year. The immediate prioritization of these topics will largely depend on
the focus of commercial users funding the work.
There are several storage-related topics that need our attention to :System monitoring, tracing, profiling:
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: The interactive use of Sculpt along with the prospects enabled by Genode's
GPU support motivate us to optimize Genode towards low-latency multimedia
applications. We will ultimately need to gain a deep understanding on
inter-component interactions, in particular along time-critical data paths.
Therefore, we plan to improve the tooling and cultivate the use of our
existing but underused tracing support.
We want to widen the application scope of Genode by enabling users to :Java:
easily deploy Genode scenarios on Xen-based cloud platforms.
By the end of 2018, we want to enable Genode to leverage the ecosystem
around Java, which is - according to the TIOBE index - the most popular
programming language.
Milestones for 2017 Milestones for 2018
################### ###################
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,
@ -147,39 +147,40 @@ 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 17.02 February - Release 18.02
======================== ========================
* Application binary interfaces (ABI) * Sculpt for Early Adopters (EA)
* Dynamic init * Dynamic on-target package installation and deployment
* VFS: asynchronous I/O * i.MX6 networking
May - Release 17.05 May - Release 18.05
=================== ===================
* Removal of deprecated APIs * Sculpt for The Curious (TC)
* 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
* Consistent use of the depot tools for automated tests
* Qt5-based applications based on packages
* SMP support for the base-hw kernel on x86
August - Release 17.08 August - Release 18.08
====================== ======================
* Hardware-accelerated graphics on Intel-based platforms * Sculpt by Visual Composition (VC)
* Support for the seL4 kernel on x86_64 and ARM * Ability to (cleanly) restart device drivers
* Use of Genode for cloud-computing appliances (deployment, virtio) * Updated PC hardware support
* GUI: tiled and tabbed window management, virtual desktops * i.MX6 USB
* Multi-component user mail agent
* IOMMU support for the base-hw kernel on x86
November - Release 17.11 November - Release 18.11
======================== ========================
* Revised boot concept (UEFI, trimming the boot chain) * Sculpt as a Community Experience (CE)
* Storage: backup, improved file-system support * Automated tests hosted on top of Sculpt
* Native work flows for email and development work * Sculpt-like scenario for network appliances
* Test automation for interactive system scenarios * Virtualization support for the base-hw kernel on x86