New dynamic run-time configuration support Apr 11, 2012

A new mechanism for re-configuring subsystems at run-time paves the way to sophisticated general-purpose usage scenarios.

Genode's approach to system configuration facilitates a unified way for supplying parameters to individual components as well as to entire subsystems. Thanks to the recursive nature of Genode, complex system-integration problems can be segregated into multiple problems of low complexity whereas each partial problem retains to be individually testable. Thereby, this solution greatly mitigates the manual labour of system integration even for highly complex scenarios.

However, until now, the mechanism was limited to supplying configuration parameters at the creation time of components. Once a component is running, it was expected to adhere to a fixed predefined policy. With Genode's move towards general-purpose computing, many use cases are popping up where this limitation becomes a hindrance, for example the dynamic changing of screen resolutions, mixer settings, user-input calibration, and GUI policies.

To accommodate such use cases, we have extended Genode's configuration concept with support for re-configuring components at runtime. The new feature has landed in the master branch just now:

In addition to alleviating the problems mentioned above, the new mechanism enables many new opportunities to use Genode's slave pattern in creative ways. To illustrate how this is supposed to work, the commit contains examples for dynamically generating configuration data by a separate service as well as by the master of a slave component.