Hey Aslam,

It is certainly possible to have dynamic loading of your child processes at 
runtime: but that would require a bit of work. As far as I can tell, you would 
need to use one of two approaches:

(1) Include an initrd (initial ram-disk) and a filesystem driver in your root 
task image, and pack your user apps (app1, app2, etc) into the initrd. Then 
dynamically load your user apps from the initrd at runtime.
(2) Include a disk driver and a filesystem driver in your root-task image. Then 
install your user apps on a physical disk. Then at runtime, use your disk 
driver and filesystem driver (embedded within your root task) to load your user 
apps from your physical disk.

Approach #1 requires less work, and is slightly "cleaner" in the sense that it 
allows you to boot your final system in multiple stages and also to support 
diskless systems.
Approach #1 allows you to defray some tricky design decisions.

Both have tradeoffs. The main takeaway is that seL4 is a microkernel, and it 
does not provide you with drivers and it expects you to write the drivers to 
access your storage devices and the filesystems on those storage devices from 
scratch. In addition, you'll also need to design some kind of driver 
API/Framework before you can even begin to write your storage and filesystem 
drivers.

There's a silver lining: by the end of this year, we should have published an 
extensible, fairly well generalized driver framework which you can just conform 
to in your implementation. But you'll still have to write the drivers for your 
target system though, sorry ;)

--
Kofi Doku Atuah
Kernel engineer
DATA61 | CSIRO
_______________________________________________
Devel mailing list
[email protected]
https://sel4.systems/lists/listinfo/devel

Reply via email to