mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-25 00:11:07 +00:00
179 lines
6.6 KiB
Plaintext
179 lines
6.6 KiB
Plaintext
|
|
========
|
|
Road Map
|
|
========
|
|
|
|
|
|
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.
|
|
|
|
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
|
|
####
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
So what is coming next?
|
|
|
|
We see four major construction sites that we should address this year:
|
|
framework infrastructure, self-hosting, tooling and optimizations, and hardware
|
|
support.
|
|
|
|
|
|
Framework infrastructure
|
|
========================
|
|
|
|
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
|
|
|
|
|
|
Milestones
|
|
==========
|
|
|
|
In the following, there is a rough schedule about the planned work. As always,
|
|
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
|
|
|
|
:May - Release 13.05:
|
|
* SMP support
|
|
* Qt5
|
|
* Cryptography
|
|
* Refined user-interface concept
|
|
|
|
:August - Release 13.08:
|
|
* TCP/IP optimization
|
|
* RPC tracing facility
|
|
* Real (non-FAT-based) file system
|
|
|
|
:November - Release 13.11:
|
|
* Intel wireless
|
|
* MP scalability improvements
|
|
|
|
|
|
Live system
|
|
===========
|
|
|
|
In addition to the milestones outlined above, we are planning to release
|
|
a new live system in 2013.
|