Geschichte, Technologie, Risiken

Vom Internet der Dinge zu Apps für Dinge

Betriebssysteme und Softwareplattformen

Neben den oben betrachteten Netzwerkthemen haben sich auch in den letzten Jahren einige neue Betriebssysteme und Softwareentwicklungsumgebungen sehr prominent entwickelt. Ein wichtiges Prinzip ist hier die reaktive Programmierung, die speziell hierfür optimierten Betriebssystemen umgesetzt wurde. Reaktive Systeme basieren auf dem Prinzip, dass ein System nur dann aus einem Schlaf- oder Ruhemodus erwacht, wenn Daten zu verarbeiten sind. Beispielsweise wenn Daten aus dem Netz eintreffen, oder wenn eine zeitgesteuerte Aufgabe ansteht, etwa um einen Sensorwert zu lesen und über das Netz zu verteilen.

Dies bedeutet dann auch eine im Wesentlichen Ereignis-gesteuerte Programmierung, was in TinyOS und auch in anderen Systemen wie Contiki umgesetzt wurde und sehr energieeffiziente Systeme ermöglich. Sensor- und Aktuatorsysteme mit Batterielaufzeiten von mehreren Jahre sind hier möglich. Neben Contiki und TinyOS, die seit über 10 Jahre weiterentwickelt werden und aus Forschungsprojekten in den kommerziellen Einsatz gekommen sind, gibt es auch neue Systeme, wie zum Beispiel Riot, das eine bessere Kompatibilität mit Posix/Linux Betriebssystemen bietet.

Neben diesen hochoptimierten Betriebssystemen sind auch einige populäre Systeme entstanden, die sich auf einfache Programmierung von Animationen, Grafik und einfachen Steuerungsaufgaben fokussiert haben. Ein sehr bekannter Vertreter ist hier Arduino, das auch eine einfache Programmiersprache anbietet. Im Gegensatz zu den obigen Systemen wird hier aber weniger Wert auf nebenläufige Prozesse (oder Threads) legen, wie sie typischerweise in komplexen reaktiven Systemen verwendet werden. In Arduino werden Threads nur über zusätzliche Bibliotheken unterstützt, für die es verschiedenen Varianten gibt.