Femto-Containers are small containers hosting a virtual machine based on the Linux eBPF architecture, running on microcontroller-type devices. This makes it a suitable tool for secure DevOps workflows with small applications deployed on low-power IoT devices. Check out this paper for a description of Femto-Containers in details. If you want to cite this work, please cite it as such:
K. Zandberg, E. Baccelli, S. Yuan, F. Besson, JP Talpin. Femto-Containers: Lightweight Virtualization and Fault Isolation For Small Software Functions on Low-Power IoT Microcontrollers. In Proc. of 23rd ACM/IFIP MIDDLEWARE, Nov. 2022.
This repository is an open source implementation which hosts femto-containers on the operating system RIOT. To start browsing through femto-containers source code, a good entry point is here.
Before you try the femto-container tutorials, you need to set up your system. For this, please complete the steps listed in the setup guide.
A number of tutorials are available below to get familiar with the Femto-Container implementation in RIOT.
-
Tutorial 1 -- get started hosting Femto-Container applications on RIOT.
-
Tutorial 2 -- engage into more complex behaviour, learn how to pass context/return variables to/from the container.
-
Tutorial 3 -- use a femto-container to read sensor data and advertize it as a Bluetooth Low-Energy (BLE) service.
-
Tutorial 4 -- secure low-power DevOps-style interaction using Femto-container updates over the network, with SUIT-compliant security. (Tutorial currently based on an a separate artefact published at ACM Middleware 2022).