Embedded Software und ihre bunte Welt. Wie jeder andere Computer benötigen auch Embedded- und Edge-Geräte Software zur Erfüllung ihrer Aufgaben. Heute existiert eine Vielzahl verschiedener Betriebssysteme und Applikations-Programme. Doch die Tendenz geht hin zu offenen Systemen.
Embedded und Edge Geräte sind nichts anderes als kleine Computer. Und wie Computer benötigen sie Software, um ihre Aufgaben erfüllen zu können. Wie zum Beispiel mit Embedded Software. Das beginnt wie beim PC mit einem Betriebssystem. Ein Embedded System muss auf Grund der Reduzierung auf genau definierte Aufgaben bei weitem nicht so viel leisten wie ein PC.
Somit kommen sehr einfache eingebettete Systeme ganz ohne Betriebssystem aus. Doch sobald mehrere Applikationen hinzukommen – wie es beim Edge Computing der Fall ist – benötigt auch ein Embedded Gerät ein Betriebssystem. Es ist unter anderem für die Speicher und Dateiverwaltung zuständig und sorgt für die Parallelverarbeitung verschiedener Aufgaben. Aber auch für die Integration in übergeordnete Systeme mit Hilfe verschiedener Kommunikationsstandards. Zum Einsatz kommen dabei häufig spezielle Embedded-Versionen von Standard-Betriebssystemen, zum Beispiel Windows 10 IoT oder Linux-basierende Systeme wie Ubuntu.
Linux wird echtzeitfähig
Linux hat sich nicht nur aufgrund der hohen Anzahl unterstützter CPU-Architekturen und der nahezu unendlichen Anzahl von Treibern etabliert. Auch die gute Portier- und Skalierbarkeit trägt dazu bei, dass es eines der leistungsfähigsten Embedded Betriebssysteme ist. Laut des „IoT Developer Survey 2018“ der Eclipse Foundation setzen rund 72 Prozent der Entwickler für ihre IoT-Geräte auf Linux-Systeme. Nur knapp 23 Prozent nutzen Windows.
Inzwischen existieren auch Linux-basierende Systeme, die den Anforderungen an harte Echtzeit entsprechen. Bisher griff man dazu allerdings auf spezielle Realtime-Erweiterungen, wie „RT-Patches“ oder „PREEMPT_RT“ zurück. Viele der hierfür entwickelten Techniken sind heute bereits in den Linux-Kernel, also ins „Basissystem“ eingezogen. Es ist absehbar, dass die Realtime-Erweiterungen aber in absehbarer Zeit komplett in den Kernel aufgenommen werden.
Schon die aktuelle Linux Version 5.3 kann man als Wegbereiter für die Echtzeit-Unterstützung sehen. Denn in den Hauptentwicklungszweig des Kernels ist eine neue Kernel-Konfigurationsoption eingeflossen. Durch diese es irgendwann möglich ist, einen „Fully Preemptible Kernel (Real-Time/RT)“ zu bauen. Der anschließend Echtzeit-Anforderungen erfüllt.
Schneller auf den Markt mit Edge-Frameworks
Auf das Betriebssystem setzt die Applikations-Software auf. Sie beinhaltet die gerätespezifischen Funktionen, verarbeitet die erfassten Daten und stellt die Schnittstelle zum übergeordneten System dar. Eine Programmierung einer Applikation ist von Grund auf aufwändig. Da jedoch bestimmte Funktionen und Elemente in jeder Anwendungs-Software gleich sind, entwickelte man sogenannte Frameworks. Dabei handelt es sich nicht um eigenständige Programme, sondern vielmehr um ein Gerüst für den Programmierer.
Er erhält mit dem Framework ein Programmiergerüst, dass bereits verschiedene Funktionen und Elemente enthält. Sie müssen also nicht jedes Mal neu programmiert werden, was die Entwicklungszeit erheblich reduziert. Im Edge Computing Bereich haben sich zum Beispiel die Frameworks AWS Greengrass, Microsoft Azure IoT Edge oder Alibaba Cloud etabliert. Allerdings ist die Wahl des richtigen Frameworks nicht ganz einfach. Denn es erfordert in der Regel bestimmte Hardware, läuft nur auf einem definierten Betriebssystem und ist auf spezielle Anwendungsfelder zugeschnitten.
Offene Systeme führen Markt zusammen
Da gerade beim Edge Computing jedoch mitunter ein ganzes Ökosystem verschiedener Geräte von unterschiedlichen Herstellern miteinander kommuniziert, sollen Schnittstellen zwischen verschiedenen Betriebssystemen und Applikations-Programmen möglichst vermieden wären. Das versprechen offene Systeme. Wobei offen nicht bzw. nicht nur bedeutet, dass die Software als Open-Source-Projekt entwickelt wird. Das ist zum Beispiel auch bereits bei Azure IoT Edge der Fall. Offen bedeutet tatsächlich, dass die Applikations-Software unabhängig von Hardware, Betriebssystem und der in der Cloud verwendeten Software ist.
Genau das soll mit LF Edge erreicht werden. Hiermit soll innerhalb der Linux Foundation ein offenes, interoperables Framework für Edge Computing geschaffen werden, das unabhängig von Hardware, Silizium, Cloud oder Betriebssystem ist.
LF Edge wurde Anfang 2019 gestartet und besteht zunächst aus fünf Projekten. Darunter Akraino Edge Stack, EdgeX Foundry, Home Edge, Open Glossary of Edge Computing und Project EVE, die teils schon vorher angestoßen wurden. Das offene Framework unterstützt neu entstehende Edge Anwendungen und vernetzten Dinge. Solche, die eine geringere Latenz, eine schnellere Datenverarbeitung sowie einen mobilen Einsatz erfordern. Durch den Software-Stack trägt LF Edge dazu bei, den fragmentierten Edge-Markt durch eine gemeinsame Vision für die Branchenzukunft zu vereinheitlichen.