mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-31 00:24:51 +00:00
Road map for 2013
This commit is contained in:
parent
bf6636a987
commit
2d7342a074
218
doc/road_map.txt
218
doc/road_map.txt
@ -15,106 +15,164 @@ pushing the Genode technology to a certain direction, we are willing
|
|||||||
to revisit our plans.
|
to revisit our plans.
|
||||||
|
|
||||||
|
|
||||||
2012
|
2013
|
||||||
####
|
####
|
||||||
|
|
||||||
"Eating our own dog food"
|
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.
|
||||||
|
|
||||||
To emphasize our conviction in the maturity and flexibility of
|
Even though we missed our ambitious main goal for 2012, there is no cause for
|
||||||
Genode, we dedicate the year 2012 to the transition of the framework
|
despair. There are many achievements in addition to our road-map items to be
|
||||||
from a toolkit for building special-purpose operating systems to a
|
proud of. The most visible addition is the thorough support for ARM-based
|
||||||
fully functional general-purpose OS. The ambitioned goal of the
|
platforms reaching from versatile express, over freescale i.MX, to OMAP4.
|
||||||
Genode developers is to switch to Genode as everyday OS environment
|
Another amazing development is the added base-hw platform that enables Genode
|
||||||
for carrying out productive work. In addition to bringing forward
|
to be executed without a 3rd-party kernel on a variety of ARM-based platforms.
|
||||||
Genode as general purpose OS, we plan to use it to serve the
|
Furthermore, the largely revised support for the Linux base platform makes
|
||||||
genode.org web site.
|
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.
|
||||||
|
|
||||||
|
|
||||||
Ingredients
|
Framework infrastructure
|
||||||
===========
|
========================
|
||||||
|
|
||||||
As developers of low-level system software, we have very specific
|
The primary group of people Genode tries to cater well are developers
|
||||||
expectations from our everyday OS. While we can live happily without
|
and integrators of systems. Genode is meant as a tool box to empower
|
||||||
graphical effects and rich multimedia applications, an efficient
|
those people to build real-world component-based system solutions. From
|
||||||
Unix-like command-line interface, the presence of development tools,
|
this audience, we receive requests for improvements in the following areas:
|
||||||
and system stability are crucial.
|
|
||||||
|
|
||||||
We identified the following features as fundamental to our computing
|
* Multi-processor support: On some base platforms, SMP support is
|
||||||
needs:
|
available but the framework still misses a holistic concept to
|
||||||
|
manage and configure the use of multiple CPUs.
|
||||||
|
|
||||||
* VIM
|
* Improving scalability: On multi-core systems, and systems with a
|
||||||
* Shell
|
non-uniform memory architecture (NUMA) in particular, we face scalability
|
||||||
* Tool chain (coreutils, gcc, binutils, make, findutils, tar, Tcl,
|
challenges that we haven't thoroughly addresses so far. On NUMA systems,
|
||||||
expect)
|
memory locality is an important consideration. So the framework should
|
||||||
* Persistent file system
|
provide means to tailor the allocation of RAM for different subsystems.
|
||||||
* Block-device encryption
|
Furthermore, core could be largely improved to process service requests and
|
||||||
* SSH client
|
page faults in a concurrent fashion.
|
||||||
* RSync
|
|
||||||
* Git client
|
|
||||||
* GNUPG
|
|
||||||
* Web browser (also used for email, don't need multi-media stuff)
|
|
||||||
* PDF viewer
|
|
||||||
* A way to run a just-compiled Genode sub system
|
|
||||||
* Interactive Python shell (to be used as a calculator)
|
|
||||||
* Screen lock
|
|
||||||
* A fall-back virtual machine running Linux for carrying out sporadic
|
|
||||||
work with images (Gimp, Povray, ImageMagick, etc.) and LaTeX, and
|
|
||||||
for testing the Linux version of Genode
|
|
||||||
* Tiled window manager (similar to the wonderful ion3)
|
|
||||||
* IM client for Jabber
|
|
||||||
|
|
||||||
With those fundamentals in place, we will be ready to get started
|
* Storage: Block-device access is a general concern. Even though we
|
||||||
using the system. This will be the right time to address add-ons
|
laid the foundations for Genode's storage infrastructure, several
|
||||||
that make the devloper's life more efficient and enjoyable:
|
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.
|
||||||
|
|
||||||
* EMACS (for all those that cannot live with VIM)
|
* Networking: The current TCP/IP performance using lwIP has room
|
||||||
* Intel wireless driver
|
for improvement. So I'd like to find a solution to bring TCP/IP
|
||||||
* Media player (at least for playing music)
|
performance on Genode on par with Linux. Maybe this means to find
|
||||||
* Thinkpad ACPI support, fan daemon
|
the bottlenecks in our lwIP port, or even going for another TCP/IP
|
||||||
* Qemu
|
stack?
|
||||||
* Tuxpaint
|
|
||||||
* High-performance graphics, e.g., via the Wayland display server
|
|
||||||
* Native mail-user agent (e.g., mutt)
|
|
||||||
* Additional command-line tools (e.g., mc)
|
|
||||||
|
|
||||||
The work on enabling these functionalities on top of Genode will be
|
* Qt5: Now that Qt5 is officially released, we should consider to
|
||||||
scattered over the year. However, for each of the four releases in
|
switch from Qt4 to Qt5.
|
||||||
2012, we define a particular focus.
|
|
||||||
|
* 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
|
Milestones
|
||||||
==========
|
==========
|
||||||
|
|
||||||
:February - Release 12.02:
|
In the following, there is a rough schedule about the planned work. As always,
|
||||||
* File and directory-service interfaces
|
it is not set in stone. If you are interested in a particular line of work,
|
||||||
* Offline Unix tools (vim, shell, tool chain)
|
please get in touch.
|
||||||
* PDF viewer
|
|
||||||
|
|
||||||
:May - Release 12.05:
|
:February - Release 13.02:
|
||||||
* Revisiting the support for Linux drivers (USB, sound)
|
* Low-latency audio support
|
||||||
* Network-based Unix tools (e.g., ssh, Git, rsync), IM client
|
* IOMMU support on NOVA
|
||||||
* Media player
|
* First steps of user-interface concept
|
||||||
|
* Improved x86 virtualization support
|
||||||
|
|
||||||
:July - Live CD 12.03:
|
:May - Release 13.05:
|
||||||
* Presenting usage scenarios of Genode as development platform
|
* SMP support
|
||||||
|
* Qt5
|
||||||
|
* Cryptography
|
||||||
|
* Refined user-interface concept
|
||||||
|
|
||||||
:August - Release 12.08:
|
:August - Release 13.08:
|
||||||
* Tiled window manager and user-interface concept
|
* TCP/IP optimization
|
||||||
* Intel wireless driver
|
* RPC tracing facility
|
||||||
* Persistent file system
|
* Real (non-FAT-based) file system
|
||||||
* Hosting genode.org website on Genode
|
|
||||||
* Multi-processor support on NOVA, Pistachio, and Fiasco.OC
|
|
||||||
|
|
||||||
:November - Release 12.11:
|
:November - Release 13.11:
|
||||||
* Extended support for Lenovo Thinkpad
|
* Intel wireless
|
||||||
* Cryptography (block-device encryption, GNUPG)
|
* MP scalability improvements
|
||||||
* Additional tools (emacs, mc)
|
|
||||||
|
|
||||||
|
|
||||||
Additional topics
|
Live system
|
||||||
=================
|
===========
|
||||||
|
|
||||||
In addition to the main theme for 2012 described above, Genode will
|
|
||||||
continue to improve its support for ARM-based platforms.
|
|
||||||
|
|
||||||
|
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