Component management

Shared objects

Genode::Shared_object

Genode::Address_info

Child management

For components that manage a number of child components, each child is represented by an instance of the Child class. This instance contains the policy to be applied to the child (for example, how session requests are routed to services) and contains the child's execution environment including the PD session holding the child's RAM and capability quota.

Genode::Child_policy

Genode::Child

Composition of subsystems

Whereas the Child class aids the sandboxed execution of one child component, the interplay between such a child with its environment must be implemented manually, which can quickly become complex. This is where the sandbox API enters the picture. It makes the full feature set of the init component available to C++ programs, including the hosting of an arbitrary number of children, the routing of sessions among them, the balancing of resources, and dynamic reconfiguration. In addition to the hosting of components, the sandbox API also allows the program to interact with the sandboxed children by providing locally implemented services.

A sandbox instance consumes configurations and produces reports, both in the form of the XML format as known from the init component. An example for using the API can be found at repos/os/src/test/sandbox/.

Genode::Sandbox