Roadmap 2014

Norman Feske norman.feske at ...1...
Thu Jan 2 12:27:27 CET 2014

Happy New Year everybody!

Leaving the year 2013 behind us, it's time to recapture what we achieved
in the past 12 months and to lay out the activities for this year. I am
planning to update our official road map by mid of January and seek your
input for doing so.

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 GUI 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

What are we up to?

Well, the answer to this question is not set in stone. Here are my

* Improved handling of 3rd-party code:
  Many new users of Genode stumble over the installation of
  3rd-party code. It is not obvious to see which packages are
  required for a particular run script. Instead, users have to deal
  with confusing error messages when a needed package is not
  installed. We should definitely fix this inconvenience.

* The base-hw platform
  * Multi-processor support
  * Kernel-protected capability-based security
  * Exploring ARM's virtualization extensions

* C runtime:
  * Revisit libc plugin concept to make the configuration of per-
    process virtual file systems as easy as it is for Noux. By
    making Noux' VFS implementation reusable for the libc, normal
    Genode programs could leverage stacked file systems in very
    flexible ways.
  * Abandon helper threads in favour for asynchronous I/O handling,
    improving performance and the simplicity of the libc-internal

* Storage:
  The work on the file-system stack is in full swing. Personally, I
  desire a journaling file system as well as a block cache.

* Device drivers:
  * Intel wireless
  * Merged SATA drivers: Right now, the high-performance SATA 3.0
    driver for the Exynos-5 SoC does not share any code with the
    older SATA driver for x86. We should consolidate both
    implementations to get good disk performance on x86.

* Virtualization on NOVA/x86:
  Port of a "mainstream" VMM to Genode/NOVA. I am a fan of the Seoul
  (ex Vanvouver) VMM. However, I get repeatedly asked for features
  that people universally expect but that are unavailable on Seoul,
  i.e., Windows guest support. In the future, I'd like to pull a
  positive answer to such questions out of my sleeve.

* User-interface concept:
  This topic must look like a running gag, but it is not. :-)

* Hardware-accelerated graphics:
  Even though we looked into this topic some years ago with the
  experimental port of Gallium3D and the Intel GPU driver, we left
  the code almost unattended since then. However, with more and more
  software relying on OpenGL ES2.0 (I am looking at QML in
  particular), we definitely need to re-address the problem. In the
  meantime, the Intel Linux graphics stack and Mesa have advanced a
  lot. So we might even start looking at the problem from scratch.

* Noux performance optimizations:
  The Noux runtime has reached a state where it runs Unix tools
  including GCC reliably. But it is not very fast in doing so. To
  make it more pleasant to use Noux for day-to-day work, we should
  start to optimize.

The points above are merely my personal preferences.

What are topics that you wish to see in Genode throughout the year 2014?
Or are you working on a particular feature that you plan to integrate
into Genode?


Dr.-Ing. Norman Feske
Genode Labs ·

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth

More information about the users mailing list