Creating new ROM sessions at runtime

Christian Helmuth christian.helmuth at ...1...
Thu Jan 14 17:06:11 CET 2016


Hello Georg,

On Thu, Jan 14, 2016 at 12:29:49PM +0100, Georg Guba wrote:
> I'm trying to start new child components from ELF binaries received at
> run-time and stored in a server-local buffer. Basically, I am trying to
> implement a server that can receive task descriptions and matching binaries
> and then start them at run-time (disregarding security concerns for the
> moment).
> 
> It appears, however, that all ROM connections must reference binaries that
> are available at boot-time and adding to the ROM FS is not possible without
> accessing Genode's internal code which I'd like to avoid.
> 
> So, how would I best go about creating entirely new ROM sessions at runtime?

The first idea that comes to my mind is: Implement a ROM server
"elf_rom", which stores the retrieved ELF binaries in dataspaces
allocated from its RAM session. Afterwards setup the routing in your
init config for all "children" of your "parent" to "elf_rom" like
follows

  <route>
    ..
    <service name="ROM"> <child name="elf_rom_server"/> </service>
    ..
  </route>

This may need two special precautions. First, you may need a nested
init instance which is configured with the route above. Second, you
may need some exceptions from the rule above if elf_rom_server does
not provide ROMs for "parent" and its shared libraries (if used) like

    <service name="ROM" label="parent"> <parent/> </service>

Greets
-- 
Christian Helmuth
Genode Labs

http://www.genode-labs.com/ · http://genode.org/
https://twitter.com/GenodeLabs · /ˈdʒiː.nəʊd/

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