Mirage/RIOT Hybrid Operating System
I am a rising Senior at Yale-NUS College in Singapore and an ex Tarides Intern. I am
interested in Functional Programming and Operating systems
MirageOS is a library operating system for building minimal unikernels, written in OCaml. MirageOS applications are small and efficient, but to run on embedded devices we also need drivers to be able to interact with the hardware.
The talk will present how we have been able to take advantage of the modularity of RIOT-OS and successfully interface it with MirageOS. Doing so allows us to build a hybrid operating system that benefits from using components from RIOT and Mirage. RIOT takes care of handling the low-level interaction with the hardware whereas Mirage lets us define our application logic in high-level and type safe OCaml.
Using this technique, we show that we can architect a http server that uses RIOTs GNRC stack up until the IPv6 layer and then passes it off to MirageOS TCP/IP and HTTP upper layer library implementations. This is possible by understanding how to interact RIOTs threading system with Mirage’s event loop and carefully coercing RIOTs build system to build the OCaml runtime.