RIOT: das freie IoT-Betriebssystem
Mikrocontroller im Internet der Dinge bringen so wenig Speicher mit, dass es spezielle Betriebssysteme braucht, um Anwendungen auf ihnen auszuspielen. Das quelloffene RIOT spart Ressourcen, kann aber trotzdem eine ganze Menge.
Das Internet der Dinge (Internet of Things, kurz IoT) findet sich überall: Lampen schalten sich automatisch an und aus, Heizungen wärmen das Haus, bevor man nach Hause kommt, und das Auto unterstützt beim Einparken. Auf technischer Ebene, also der eigentlichen Sensorik und Steuerung, ist alles extrem klein: Die meisten Mikrocontroller wie der beliebte Arduino, der ESP32 oder der Adafruit Feather werden mit nur wenigen Kilobytes an Speicher ausgeliefert, bestenfalls einer Handvoll an Megabytes. Und das meint sowohl den Arbeitsspeicher als auch den persistenten Speicher. Der Platz ist also minimal, verglichen mit den Gigabytes, mit denen Hochleistungsgeräte wie der Raspberry Pi ausgerüstet sind – daher muss man sparsam in der Softwareentwicklung sein. Selbst ein sehr abgespecktes Linux läuft hier nicht mehr. Früher schrieben Hersteller die Software für eine solche Plattform vorwiegend „bare metal“, also ohne Abstraktionsschicht zur Hardware. Das Problem dabei ist jedoch eine mangelnde Portabilität: Hat man die Software erst einmal für eine Plattform geschrieben, muss man sie für eine neue in großen Teilen umschreiben.
RIOT als Hardwareabstraktion
IoT-Betriebssysteme wie RIOT bieten hier eine Lösung. RIOT wird seit über 10 Jahren von einer weltweiten und unabhängigen Graswurzelcommunity, die ursprünglich aus einem deutsch-französischen Forschungsprojekt hervorging, unter der LGPL (GNU Lesser General Public License) stetig weiterentwickelt. Es unterstützt über 250 Plattformen mit Portierungen für eine Vielzahl unterschiedlicher Mikrocontrollerarchitekturen: von 8 Bit mit AVR über 16 Bit mit MSP430 bis hin zu 32 Bit mit ARM, ESP32 und RISC-V. Dabei schafft es den Spagat, auf der einen Seite größtenteils portabel zwischen den mitunter sehr verschiedenen Plattformen zu sein und auf der anderen Seite trotzdem wenig Ressourcen zu benötigen.