Can i decide the order of applications started?

Norman Feske norman.feske at ...1...
Sat Aug 31 21:13:51 CEST 2013


Hello,

> What i want to do is that I want to use an applicaton to start another
> application. For example, I have two application, named applicaton A
> and application B. I just want to use application A to start
> application B, what can i do?

there are several ways to do that. You could start B as a child process
of A. Alternatively, you could use the "Loader" service to let A start
B. A would be the client of the loader and B would then be a child
process of the loader. You can find an example for using both techniques
at 'os/src/test/failsafe'. There is also a ready-to-use run script at
'os/run/failsafe.run'.

> From the source code of genode, I know the init('os/src/init/main.cc')
> start all the application in the config file. After starting all the
> applications, the init process waits for the sign of the config file
> changed. Can i change the config file dynamically to make one
> applicaton to start another applicaton? For example, First, I use a
> the config file with only application A. so that the init process can
> start the application A. After the init process starts all the
> applications in the config file, application A changes the config file
> to make the config file contains with the applicaton B, then the init
> process gets the  signal of config file changed, and start application
> B?

Init is indeed capable to respond to configuration changes. The first
instance of init (started directly by core) is meant to have a static
configuration. But you can spawn futher instances of init and supply
their respective configurations dynamically. To explore the mechanism
for suppling dynamic configurations to processes, you might find the
examples at 'os/src/dynamic_config/' useful. There are the following
run scripts available for experimentation, located at 'os/run':

'dynamic_config.run': A program obtains its config from a ROM service
  that updates the configuration at runtime.

'dynamic_config_slave.run': Program A starts program B as a child
  process and pushes configuration updates to B. B responds to those
  updates.

'dynamic_config_loader.run': Program A starts program B via the loader
  and supplies configuration updates via the loader session.

Regards
Norman


-- 
Dr.-Ing. Norman Feske
Genode Labs

http://www.genode-labs.com · http://genode.org

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