Porting MirageOS to IoT devices
Mentors: Magnus Skjegstad, Lucas Pluvinage
Location: Tarides office, Paris
MirageOS is an ecosystem of libraries and tools to build specialized applications, known as unikernels. By providing a unified API, MirageOS allows a developer to build cross-platform applications in OCaml, relying on base layers to perform the hardware abstraction. Originally aimed at virtualized environments, MirageOS has proven to be runnable on bare-metal embedded devices, such as the ESP32 chip. These low-power, low-cost, highly-connected devices are good candidates for IoT development.
The goal of this internship is to leverage the MirageOS project to build small and efficient IoT applications in OCaml. As a base layer we aim to use RIOT, an IoT-specific operating system targeting most embedded devices. For testing, the goal is to run applications on the nRF52840-MDK board, an ARM-based system-on-chip with Bluetooth support. Further work includes developing IoT-specific APIs such a peripheral communications (SPI, GPIO) and investigating optimizations (reducing the OCaml runtime size, dead code elimination).
- Low-level drivers
- Constrained devices