Hi Genodians,I got introduced to Genode as a viable userspace for seL4. But having looked at the code and the abstraction provided by the "core", I feel like I do not really case much about whether I am running sel4 under the hood or not. I plan to use Genode for my research and to that affect, I would like to understand whether I will be able to boot it on the hardware that is available to me and what components of the sw stack will work out of the box.
The things which attract me to Genode the most is the components based architecture and the notion of higher level capabilities like: PD, RM etc.
Below, I have listed some of things I am looking for. Followed up by understanding of the answers to those questions. If Norman or someone else can clear these up for me, it would be very helpfu.
I would like your opinion on the best combination of Genode+Kernel+arch, which would meet the following requirements:
- It can be booted on real hardware. FWIW I only have access to the following:
- Intel x86_64-based PC
- Raspberry Pi 4.
- Raspberry Pi 3 (can be purchased)
- The Toradex Aster carrier board with the iMX8X
- Has some drivers that work on bare metal, with some run examples.
- Network Driver: I think this exists only for PC,
- SD card Driver: I think this exists for both PC and rspi3
- Any other driver will also do, like a USB driver or something.
- Has a VMM based on VM_Session, which will also boot on real hardware
- I really liked the vmm_arm(full-fledged) and vmm_x86(toy VM guest) examples
- The hardware can be flashed and booted with new images easily. I am thinking tftp, usb
- Quick dev can be done on Qemu.
Based on my read of the code, the top three contenders are:
- Nova + x86_64:
- This will probably give me the best driver support. As it is the version which ships with sculpt and hence most widely tested.
- vmm_x86 will give a trivial VMM example
- VirtualBox will give me a full-fledged VMM example
- Base-HW: I really the idea of not having a separate microkernel, as the base-hw's abstraction seems like the right level to me. So, if I base my work off this kernel, that would be best.
- ARM_v8
- Looks like this will boot on rpi3, Is that correct?
- I am not sure if there will be networking support
- x86_64
- I am not sure if this boot on x86
- Or has the same driver support for networking
Thanks again.
Sid
Grad Student
University of British Columbia