Hello all, mostly Kent,

I read your blog post about rumpkernels on sel4: https://research.csiro.au/tsblog/using-rump-kernels-to-run-unmodified-netbsd-drivers-on-sel4/

and after experimenting with the rumprun apps (such as the ethernet one) I think it is a great addition to sel4.

So I have few questions. I need to run two different rumpkernels, each with its own address space, connected only through dataports/events. 

1- does the current rumpkernel backend support having this separation? According to your thesis, all rumpkernel threads run in a single sel4 thread - is that correct?

2- Right now, I can combine multiple rumprun components in one application (lets say runmprun_hello and rumprun_pthreads). butI can have only one rumprun_platform_layer per application, correct? An example below:

assembly {
 composition {
     component rumprun_platform_layer rrpl;
     component rumprun hello;
     RUMPRUN_META_CONNECTION(hello, rrpl)

     component rumprun_pthreads pthreads;
     RUMPRUN_META_CONNECTION(pthreads, rrpl)
 }

 configuration {
    hello.rump_config = {"cmdline": "hello World!" };
    RUMPRUN_COMPONENT_CONFIGURATION(hello, 0)

    pthreads.rump_config = {"cmdline": "./pthreads_test 4" };
    RUMPRUN_COMPONENT_CONFIGURATION(pthreads, 1)
 }
}

If I instantiate another rumprun_platform component, it wont compile.

3 - how can I go around defining/adding my own rumpkernels? Lets say I want to build a rumpkernel with rust support (you have an sel4 example here) and integrate it with the rumprun_hello app.

Regards
Michal