mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-18 02:40:08 +00:00
Road map for 2018
This commit is contained in:
parent
c8c910a41b
commit
562325a28b
15
doc/news.txt
15
doc/news.txt
@ -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
|
||||
##################################
|
||||
|
||||
|
233
doc/road_map.txt
233
doc/road_map.txt
@ -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.
|
||||
|
||||
|
||||
Review of 2016
|
||||
Review of 2017
|
||||
##############
|
||||
|
||||
We originally started the year 2016 with the ambition to expand the Genode
|
||||
community by improving the project's appeal towards system builders and
|
||||
privacy cautious users. Hence, we started the year with the resolution to
|
||||
increase our engagement with the wider community, i.e., in the form of
|
||||
publishing tutorial-like articles. Over the course of the year, however, we
|
||||
increasingly shifted our focus to architectural and deeply technical topics
|
||||
instead.
|
||||
The technical topics of 2017 ranged from hardware-accelerated graphics, over
|
||||
UEFI, greatly improved seL4 support, user-level networking, file-system
|
||||
infrastructure, to an consolidated framework API. However, one topic stood out
|
||||
the most, which is the practical use of Genode as day-to-day OS.
|
||||
|
||||
We ultimately prioritized the concerns of the existing Genode users over
|
||||
extending our user base. The existing users - ourself included - are primarily
|
||||
interested in API stability and maturity. So we made it our priority to free
|
||||
Genode from legacies and known architectural limitations. Over the year, we
|
||||
introduced and cultivated the new framework API that is designed for safety,
|
||||
achieved cross-kernel binary compatibility, and revised the framework's most
|
||||
fundamental protocols. Now that the time of sweeping architectural changes
|
||||
lies behind us, we feel much more confident to approach new users.
|
||||
Whereas the so-called "Turmvilla" system scenario enabled a few enthusiasts to
|
||||
work on a Genode-based system since mid of 2015, the scenario was quite rigid
|
||||
and required significant manual labour for any customization. Although it was
|
||||
not really inviting for potential users, it illustrated well that all the
|
||||
basic building blocks - in particular the driver stacks - were in place. But
|
||||
it would have been be quite a stretch to call Turmvilla a general-purpose OS
|
||||
at that point. The year 2017 introduced two pivotal features that allowed us to
|
||||
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
|
||||
sites of 2016 were the support for the RISC-V architecture, hosting Genode on
|
||||
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.
|
||||
Inspired by these new features, a new system scenario called "Sculpt" emerged
|
||||
in Autumn 2017. The combination of Genode's recursive architecture with the
|
||||
dynamic reconfigurability of the init component allows the user to
|
||||
interactively shape the running Genode system including any subsystem or even
|
||||
configurations of individual components. The system structure is always at the
|
||||
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
|
||||
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.
|
||||
The "Turmvilla" era lies behind us. So let the "Sculpt" era begin!
|
||||
|
||||
During our seasonal road-map discussion on our mailing list, we identified the
|
||||
following topics to address in 2017:
|
||||
Having used Sculpt over the past few months, we feel confident to make the
|
||||
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
|
||||
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.
|
||||
The current version of Sculpt accompanied with plain-text documentation
|
||||
that explains the concept and use. It is intended for people who are
|
||||
already familiar with Genode, in particular users that experimented with
|
||||
Turmvilla-like scenarios in the past. Sculpt EA expects basic Vim skills
|
||||
from the user.
|
||||
|
||||
:Dynamically reconfigurable subsystems:
|
||||
# Sculpt for The Curious (TC)
|
||||
|
||||
Until now, Genode subsystems were either static (using the init component to
|
||||
define them) or relied on a scenario-specific dynamic runtime environment
|
||||
(like CLI monitor). By enhancing init to dynamically apply configuration
|
||||
changes, the need for special-purpose runtime environments will
|
||||
disappear. Scenarios like multi-stage booting, boot-medium detection, or
|
||||
a dynamic desktop environment will become dramatically easier to realize.
|
||||
A polished version of Sculpt that is more welcoming to the user and
|
||||
accompanied with example subsystems that loosely resemble a traditional
|
||||
notion of an operating system (like basic menus and window borders).
|
||||
There will be a ready-to-use ISO image for Sculpt TC. So users won't need
|
||||
to be familiar with Genode's source code and build system. As with Sculpt
|
||||
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
|
||||
mechanism. We will explore alternatives such as UEFI boot and
|
||||
coreboot.
|
||||
Whereas the earlier versions rely on text editing for sculpting the system,
|
||||
Sculpt VC will feature an interactive graphical user interface, which will
|
||||
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
|
||||
interfaces from the base framework. Still, other parts of the user-level
|
||||
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.
|
||||
Sculpt CE will allow anyone to play the role of a component provider.
|
||||
Each user should be able to pick individual components or entire component
|
||||
compositions provided by others while maintaining complete control over the
|
||||
system.
|
||||
|
||||
: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
|
||||
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.
|
||||
:Gentle transition from NOVA to our custom kernel and seL4:
|
||||
|
||||
: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
|
||||
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.
|
||||
:Freescale i.MX:
|
||||
|
||||
: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
|
||||
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.
|
||||
:seL4:
|
||||
|
||||
: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
|
||||
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.
|
||||
:Software quality and resilience:
|
||||
|
||||
: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
|
||||
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.
|
||||
:System monitoring, tracing, profiling:
|
||||
|
||||
: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
|
||||
easily deploy Genode scenarios on Xen-based cloud platforms.
|
||||
:Java:
|
||||
|
||||
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,
|
||||
@ -147,39 +147,40 @@ it is not set in stone. If you are interested in a particular line of work,
|
||||
please get in touch.
|
||||
|
||||
|
||||
February - Release 17.02
|
||||
February - Release 18.02
|
||||
========================
|
||||
|
||||
* Application binary interfaces (ABI)
|
||||
* Dynamic init
|
||||
* VFS: asynchronous I/O
|
||||
* Sculpt for Early Adopters (EA)
|
||||
* Dynamic on-target package installation and deployment
|
||||
* i.MX6 networking
|
||||
|
||||
|
||||
May - Release 17.05
|
||||
May - Release 18.05
|
||||
===================
|
||||
|
||||
* Removal of deprecated APIs
|
||||
* Updated tool chain
|
||||
* Updated Qt5
|
||||
* Easy creation of Genode systems out of packages
|
||||
* Feature-complete VirtualBox 5
|
||||
* Sculpt for The Curious (TC)
|
||||
* 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
|
||||
* Support for the seL4 kernel on x86_64 and ARM
|
||||
* Use of Genode for cloud-computing appliances (deployment, virtio)
|
||||
* GUI: tiled and tabbed window management, virtual desktops
|
||||
* Sculpt by Visual Composition (VC)
|
||||
* Ability to (cleanly) restart device drivers
|
||||
* Updated PC hardware support
|
||||
* 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)
|
||||
* Storage: backup, improved file-system support
|
||||
* Native work flows for email and development work
|
||||
* Test automation for interactive system scenarios
|
||||
* Sculpt as a Community Experience (CE)
|
||||
* Automated tests hosted on top of Sculpt
|
||||
* Sculpt-like scenario for network appliances
|
||||
* Virtualization support for the base-hw kernel on x86
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user