Bare bones child process creation.

Norman Feske norman.feske at ...1...
Thu Mar 31 08:14:29 CEST 2016


Hi Daniel,

> Does anyone have a small code sample in the vain of
> http://genode.org/documentation/architecture/process ?

admittedly, the text on the website is not the most current description.
Please better take Section 3.5. "Component creation" of the book as
reference. It is more elaborate and more precise.

Have you already had a look at the 'Process' constructor? It contains
the steps described in the document in an almost verbatim way:


https://github.com/genodelabs/genode/blob/master/repos/base/src/base/process/process.cc

Note that this code is used on all kernels except for Linux. The
component creation on Linux is special because we have to bootstrap new
components via execve and use the kernel's built-in virtual-memory
management instead of the RM service of core. You can find the
implementation of the 'Process' class for Linux here:


https://github.com/genodelabs/genode/blob/master/repos/base-linux/src/base/process/process.cc

As a heads up warning, we may eventually merge the 'Process' class into
the 'Child' class in the near future. Unless you have a pressing need to
do the low-level creation steps manually (e.g., if you want to load
non-ELF binaries), I recommend you to stay with the 'Child' class.

When it comes to the creation of additional threads within the new
component, please follow Alex' advise as this procedure largely depends
on the underlying kernel.

Cheers
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