mirror of
https://github.com/genodelabs/genode.git
synced 2025-02-20 17:52:52 +00:00
Road map for 2014
This commit is contained in:
parent
68608bb62d
commit
fe45cc8c05
19
doc/news.txt
19
doc/news.txt
@ -3,6 +3,25 @@
|
||||
Genode News
|
||||
===========
|
||||
|
||||
Road Map 2014 | 2014-01-17
|
||||
##########################
|
||||
|
||||
| The updated road map outlines the major topics and schedule of the
|
||||
| project for 2014.
|
||||
|
||||
In 2014, the development of Genode will be focused on the base-hw kernel
|
||||
platform, a capability-based user interface, storage, and the scalability
|
||||
of 3rd-party software support.
|
||||
|
||||
The updated road map provides a brief reflection of the last year's progress
|
||||
before giving the rationale for the next steps the project will take. The
|
||||
various topics include for example virtualization using ARM's virtualization
|
||||
extensions, a novel user-interface, storage, VirtualBox on NOVA, and
|
||||
3rd-party source-code package management.
|
||||
|
||||
[http://genode.org/about/road-map - Please refer to the official road-map for more details...]
|
||||
|
||||
|
||||
FOSDEM 2014 | 2014-01-06
|
||||
########################
|
||||
|
||||
|
269
doc/road_map.txt
269
doc/road_map.txt
@ -4,175 +4,148 @@
|
||||
========
|
||||
|
||||
|
||||
This page contains our preliminary 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
|
||||
[http:/about/challenges - Challenges] page collects some of
|
||||
our ideas to advance Genode in various directions.
|
||||
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
|
||||
[http:/about/challenges - 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.
|
||||
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.
|
||||
|
||||
|
||||
2013
|
||||
Review of the past year
|
||||
#######################
|
||||
|
||||
In 2013, we worked on four construction sites: Framework infrastructure,
|
||||
self-hosting, tooling and optimization, and hardware support. When
|
||||
reviewing the road map for 2013, it is great to see that we largely
|
||||
lived up to our planning.
|
||||
|
||||
The framework infrastructure was enhanced with concepts for managing
|
||||
CPUs on multi-processor systems and for dynamically balancing memory
|
||||
resources, it received new audio and file-system capabilities, and, with
|
||||
the addition of Qt5 and the lxIP stack, we could enable highly
|
||||
sophisticated workloads natively on Genode.
|
||||
|
||||
On our endeavour of self-hosting Genode on Genode, we could eliminate
|
||||
long-standing show stoppers for several base platforms. We were able to
|
||||
improve them to the point where we can routinely execute Genode's tool
|
||||
chain across several base platforms such as NOVA and Fiasco.OC as part
|
||||
of our nightly automated tests. On the user-facing side, a new
|
||||
command-line interface has seen the light of the day.
|
||||
|
||||
Two highlights when it comes to tooling were the new event tracing
|
||||
facilities, and profound support for automated testing. Thanks to the
|
||||
latter, we expose Genode to over 500 test runs including automated
|
||||
performance benchmarks. By executing those tests each night, we have
|
||||
become able to resolve regressions before they enter the master branch.
|
||||
So the master branch remains always in a good shape.
|
||||
|
||||
As expected for an operating-system project, most of our work was spent
|
||||
on hardware support. On x86, we added IOMMU support, and the
|
||||
virtualization capabilities on NOVA have seen a major upgrade. On ARM,
|
||||
we enabled or vastly enhanced the device drivers for Samsung Exynos 5,
|
||||
Freescale i.MX, and Raspberry Pi. We also explored the possibilities of
|
||||
combining Genode with ARM TrustZone.
|
||||
|
||||
Only two topics, namely Intel wireless and a new user interface concept
|
||||
had been deferred. We decided to postpone the Intel wireless topic to
|
||||
address gigabit networking instead. Even though the new user-interface
|
||||
concept served as a strong motivation behind many improvements of the
|
||||
base system such as dynamic reconfiguration and dynamic resource
|
||||
balancing, the work on those fundamentals left little room to bring
|
||||
forward the actual UI concept. Now that those pieces are in place, we
|
||||
can go full steam ahead.
|
||||
|
||||
The most surprising topic that was not clearly laid out in our last
|
||||
year's road map is the advancement of the base-hw platform. Started as a
|
||||
mere experiment, it received so much love and attention that it
|
||||
unexpectedly became able to host the whole universe of Genode's software
|
||||
stack.
|
||||
|
||||
|
||||
2014
|
||||
####
|
||||
|
||||
Before detailing the work planned for 2013, let's have a look at the last
|
||||
year's road map. In 2012, we labeled our activities as "Eating our own dog
|
||||
food". Our goal was to bring Genode into a shape that makes it usable as
|
||||
working environment for conducting Genode development. Just to name a few
|
||||
achievements of 2012, there is the new ability to build Genode on Genode, SSH,
|
||||
lighttpd, the new file-system infrastructure, the new DDE linux and DDE OSS.
|
||||
But even though the puzzle pieces are nicely coming together, we are not quite
|
||||
there yet to realistically make the switch to Genode as development
|
||||
environment. Two major missing points are a solid UI concept that leverages
|
||||
Genode's unique architecture and a "real" file system.
|
||||
In 2014, we will put the emphasis on the base-hw kernel, 3rd-party software,
|
||||
storage, and the user-facing side of Genode.
|
||||
|
||||
Even though we missed our ambitious main goal for 2012, there is no cause for
|
||||
despair. There are many achievements in addition to our road-map items to be
|
||||
proud of. The most visible addition is the thorough support for ARM-based
|
||||
platforms reaching from versatile express, over freescale i.MX, to OMAP4.
|
||||
Another amazing development is the added base-hw platform that enables Genode
|
||||
to be executed without a 3rd-party kernel on a variety of ARM-based platforms.
|
||||
Furthermore, the largely revised support for the Linux base platform makes
|
||||
Genode fit to be used as component framework on Linux.
|
||||
The experience with base-hw in 2013 ignited our ambitions to develop this
|
||||
kernel not just into a complete base platform for Genode, but also
|
||||
to explore new grounds. To fully accommodate Genode, we will complement
|
||||
base-hw with multi-processor support, kernel-protected capability-based
|
||||
security, and real-time scheduling. Beyond supporting Genode's software
|
||||
stack, we will explore the use of ARM's virtualization extensions
|
||||
to turn base-hw into a microhypervisor, similar to NOVA but focusing on ARM.
|
||||
|
||||
So what is coming next?
|
||||
With Genode becoming more and more flexible, the role of 3rd-party software in
|
||||
both source-code and binary form grows. Even though Genode offers a pretty
|
||||
convenient mechanism to automatically download and integrate 3rd-party source
|
||||
codes, the burden to resolve inter-dependencies between such source packages is
|
||||
still left to the user of the framework. Many new users stumble over
|
||||
the installation of 3rd-party code as it is not obvious to see which packages
|
||||
are required for a particular system scenario. To make Genode better
|
||||
approachable and more convenient to use, we plan to consolidate the current
|
||||
mechanisms into a solid source-code package management solution.
|
||||
|
||||
We see four major construction sites that we should address this year:
|
||||
framework infrastructure, self-hosting, tooling and optimizations, and hardware
|
||||
support.
|
||||
The improved 3rd-party software support will hopefully allow us to realize
|
||||
sophisticated and popular usage scenarios more easily. As security is one of
|
||||
Genode's major benefits compared to commodity operating systems, we consider
|
||||
supporting TOR, either as server, or client side, or even both. One
|
||||
possibility would be to provide a ready-to-use live image containing a TOR
|
||||
client and a configured browser, which would enable users to browse
|
||||
anonymously.
|
||||
|
||||
Besides the use of ported 3rd-party software on top of Genode, we see clear
|
||||
demand for hosting 3rd-party binary software, particularly virtualized OSes.
|
||||
The Seoul VMM (on NOVA) and L4Linux (on Fiasco.OC) already allow for the use
|
||||
of Linux guest OSes as Genode sub systems. However, both solutions fall short
|
||||
in different ways. Whereas L4Linux requires the maintenance of a patched Linux
|
||||
kernel, Seoul can execute unpatched Linux kernels but requires a fine-tuned
|
||||
kernel configuration. Because we long for a product-quality virtualization
|
||||
solution that works just out of the box with most existing guest OSes, we will
|
||||
make VirtualBox available on Genode/NOVA.
|
||||
|
||||
Framework infrastructure
|
||||
========================
|
||||
The move to employing Genode for day-to-day computing requires reliable,
|
||||
secure, and fast storage. Hence, we will build and optimize components that
|
||||
operate on file-system and block level. This includes work on device drivers,
|
||||
file-system stacks, caching mechanisms, block-level encryption, as well as
|
||||
improved per-process virtual file systems.
|
||||
|
||||
The primary group of people Genode tries to cater well are developers
|
||||
and integrators of systems. Genode is meant as a tool box to empower
|
||||
those people to build real-world component-based system solutions. From
|
||||
this audience, we receive requests for improvements in the following areas:
|
||||
|
||||
* Multi-processor support: On some base platforms, SMP support is
|
||||
available but the framework still misses a holistic concept to
|
||||
manage and configure the use of multiple CPUs.
|
||||
|
||||
* Improving scalability: On multi-core systems, and systems with a
|
||||
non-uniform memory architecture (NUMA) in particular, we face scalability
|
||||
challenges that we haven't thoroughly addresses so far. On NUMA systems,
|
||||
memory locality is an important consideration. So the framework should
|
||||
provide means to tailor the allocation of RAM for different subsystems.
|
||||
Furthermore, core could be largely improved to process service requests and
|
||||
page faults in a concurrent fashion.
|
||||
|
||||
* Storage: Block-device access is a general concern. Even though we
|
||||
laid the foundations for Genode's storage infrastructure, several
|
||||
pieces are still missing, in particular a "real" (non-FAT) file
|
||||
system, block/file/directory caching, and I/O scheduling. Without
|
||||
those pieces, there is no way to achieve the application performance
|
||||
that we desire.
|
||||
|
||||
* Networking: The current TCP/IP performance using lwIP has room
|
||||
for improvement. So I'd like to find a solution to bring TCP/IP
|
||||
performance on Genode on par with Linux. Maybe this means to find
|
||||
the bottlenecks in our lwIP port, or even going for another TCP/IP
|
||||
stack?
|
||||
|
||||
* Qt5: Now that Qt5 is officially released, we should consider to
|
||||
switch from Qt4 to Qt5.
|
||||
|
||||
* Low-latency audio: The current audio_out-session interface was
|
||||
our first shot into the direction of audio processing. To enable
|
||||
use cases where streaming audio and sporadic sounds must be
|
||||
accommodated at the same time, we need to revise our approach.
|
||||
|
||||
* Cryptography
|
||||
* Random numbers
|
||||
* Block-device encryption
|
||||
|
||||
Self-hosting
|
||||
============
|
||||
|
||||
The second major topic is redeeming the promise stated for the past year
|
||||
- using Genode as a real-world OS. The following pieces are missing.
|
||||
|
||||
* UI concept for pleasant working environment
|
||||
* Tiled window manager
|
||||
* Terminal improvements (e.g., scroll buffer)
|
||||
* Noux improvements (e.g., signals)
|
||||
|
||||
* Tools
|
||||
* Git (work is already in progress)
|
||||
* Mail user agent
|
||||
* Instant-messaging software
|
||||
* Support for 'make prepare' (e.g., SVN, wget, mawk)
|
||||
* Support for run tool: expect, Qemu
|
||||
|
||||
Tooling and optimization
|
||||
========================
|
||||
|
||||
Now that Genode's work loads become ever more complex, we feel the
|
||||
drastically increased need to understand its inner behavior and detect
|
||||
possible black holes where the performance goes.
|
||||
|
||||
When the system scenarios were rather small, printf-debugging was quite
|
||||
feasible. But now, with multiple instances of Noux running concurrently
|
||||
with several drivers, we need better tools for understanding, debugging,
|
||||
and tracing the system. In a component-based system like Genode, the
|
||||
creation of such tooling support of especially challenging because we
|
||||
need to walk on new grounds. But good tooling is key to direct our efforts
|
||||
spent with performance optimizations. The goal should be to ultimately debunk
|
||||
the slow performance of microkernel-based systems as a myth.
|
||||
|
||||
Hardware support
|
||||
================
|
||||
|
||||
The attractiveness of our framework corresponds to the degree of
|
||||
hardware support. Since we want to make Genode more attractive, we need
|
||||
to continue our efforts with creating custom drivers, porting drivers,
|
||||
and enabling platforms. The following points are considered as the most
|
||||
interesting ones for this year:
|
||||
|
||||
* Intel architecture
|
||||
* IOMMU support
|
||||
* Improved virtualization support (Vancouver on NOVA)
|
||||
* Intel wireless
|
||||
* ARM architecture
|
||||
* Extending support for SoC platforms
|
||||
* TrustZone
|
||||
Finally, we plan to complement Genode with an entirely capability-based user
|
||||
interface, which will present the user with a unique model of how to interact
|
||||
with the system. With user interface, we actually refer to three different
|
||||
things: System configuration (the user interface a system integrator has
|
||||
to deal with), text-based user interface, and a graphical desktop environment.
|
||||
We hope to cover those with one single holistic concept.
|
||||
|
||||
|
||||
Milestones
|
||||
==========
|
||||
|
||||
In the following, there is a rough schedule about the planned work. As always,
|
||||
In the following, there is 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 13.02:
|
||||
* Low-latency audio support
|
||||
* IOMMU support on NOVA
|
||||
* First steps of user-interface concept
|
||||
* Improved x86 virtualization support
|
||||
:February - Release 14.02:
|
||||
* First version of VirtualBox on NOVA
|
||||
* Base-hw: multi-processor support
|
||||
* Block cache
|
||||
* Component composition tool kit
|
||||
|
||||
:May - Release 13.05:
|
||||
* SMP support
|
||||
* Qt5
|
||||
* Cryptography
|
||||
* Refined user-interface concept
|
||||
:May - Release 14.05:
|
||||
* Base-hw: real-time scheduling
|
||||
* 3rd-party source-code package management
|
||||
* Block-level encryption
|
||||
|
||||
:August - Release 13.08:
|
||||
* TCP/IP optimization
|
||||
* RPC tracing facility
|
||||
* Real (non-FAT-based) file system
|
||||
:August - Release 14.08:
|
||||
* Desktop environment
|
||||
* Base-hw: kernel-protected capability-based security
|
||||
* TOR on Genode
|
||||
|
||||
:November - Release 13.11:
|
||||
:November - Release 14.11:
|
||||
* Base-hw: virtualization on ARM, support for Cortex-A7
|
||||
* Intel wireless
|
||||
* MP scalability improvements
|
||||
* NOVA kernel resource management
|
||||
|
||||
|
||||
Live system
|
||||
===========
|
||||
|
||||
In addition to the milestones outlined above, we are planning to release
|
||||
a new live system in 2013.
|
||||
|
Loading…
x
Reference in New Issue
Block a user