Freies Echtzeitbetriebssystem Zephyr wird erwachsen

Auf dem Embedded Open Source Summit der Linux Foundation in Prag zeigte das Echtzeitbetriebssystem Zephyr seine Reife.

In Pocket speichern vorlesen Druckansicht 1 Kommentar lesen

(Bild: jamesteohart/Shutterstock.com)

Lesezeit: 7 Min.
Von
  • Tam Hanna
Inhaltsverzeichnis

Zentrales Thema des Embedded Open Source Summit 2023 war das Erwachsenwerden des Echtzeitbetriebssystems der Linux Foundation.

Während Linux im Bereich klassischer Embedded-Systeme gut etabliert ist, sind Echtzeitbetriebssysteme für Kleinstsysteme im Allgemeinen Domäne der Cloud-Anbieter mit Amazon FreeRTOS beziehungsweise Microsoft mit Azure RTOS. Sie bieten Developern diverse Zusatzdienste vom GUI-Stack über das Logging-Framework bis zum Cloud-System. Um daran anzuschließen, setzt man bei Linux auf Beiträge aus der Community.

Zephyr erfreut sich durchaus prominenter Anwender: Google nutzt das System für den Embedded Controller von Chromebooks, während Meta die Verwaltungs-Engine mancher hauseigener Chips auf den Betrieb mit Zephyr optimiert.

Google benutzt Zephyr im Embedded-Controller der Chromebooks (Abb. 1) ...

...während Meta die Koordination der hauseigenen Mikrocontroller durch in Zephyr gehaltene Firmware bewerkstelligt (Abb. 2).

Anas Nashif, einer der wichtigsten Committer im Zephyr-Bereich, bat die Entwickler derweil, nicht nur Board Support Packages hochzuladen. Seiner Ansicht nach kann Zephyr nur dann erfolgreich sein, wenn es auch verschiedene Value-Added-Komponenten zur Verfügung stellt. Im Vortrag illustrierte er dies am Beispiel eines Logging-Frameworks, das die Dateneinsammlung von Reportinformationen erleichtert.

Darauf reagierte die Community. Das beste Beispiel dafür war das quelloffene Updateverwaltungssystem Mender, das dank der durch die Open-Source-Komponente mender-mcu-Client Mikrocontroller-Firmware verwalten kann. Auf dem Kongress kündigte man an, in Zukunft auch das Zephyr-Terminal über Mender ansprechbar zu machen.

Der Mikrocontroller-Client ist ein Produkt der Community (Abb. 3).

Bald ist die Zephyr-Kommandozeile auch aus Mender heraus ansprechbar (Abb. 4).

Für die Koppelung der Komponenten innerhalb Zephyr steht mit Zbus ein Eventbus zur Verfügung, der die Entkoppelung der Embedded-Software ermöglicht und so die Codequalität verbessert. Meta evaluiert derweil den Einsatz von Thrift unter Zephyr, was derzeit vor allem aufgrund der mangelhaften C++-Anbindung eher limitierte Ergebnisse liefert.

Google präsentierte Verfahren zur Hardwareemulation in Embedded-Systemen über die Zephyr-APIs.

Satellitensysteme setzen verschiedene spezialisierte Bussysteme ein (Abb. 10).

(Bild: VZLU)

Hintergedanke ist, externe Sensoren durch ein Codestück zu simulieren: Es klinkt sich in den Bustreiber ein, und ersetzt die reale Interaktion mit der Hardware durch algorithmische Verarbeitung. Damit kann man Maßnahmen zur Qualitätssicherung online durchführen und Verfahren wie Continuous Integration anwenden. Außerdem erleichtert das Vorgehen die Entwicklung: Randfälle wie die Überhitzung eines Systems lassen sich abseits des Labors nur schwer nachbilden.

Integrierte Entwicklungsumgebungen sind im Embedded-Bereich weit verbreitet. Für Zephyr gibt es derzeit keine Standardkonfiguration zum Verwalten von Build-Steuerungsdateien. Das Problem ist der Community indes bekannt, die auf dem Kongress einige empfohlene Plug-ins für Visual Studio Code präsentierte. Außerdem arbeiten einige Hardwarehersteller daran, ihre IDEs auf die Arbeit mit Zephyr zu optimieren.

Verschiedene Systeme versuchen, Zephyr in Visual Studio Code zu integrieren (Abb. 6).

Zu guter Letzt gaben sich mehrere Hardwarehersteller ein Stelldichein. Espressif präsentierte (s. Abb. 7) den aktuellen Stand der Portierungen und demonstrierte eine Mehrkernapplikation. Das firmeninterne Zephyr-Team ist mittlerweile vier Mann groß. STMicroelectronics entsandte einen Entwickler, der den vergleichsweise arbeitsintensiven Bring-up-Prozess von Zephyr am STM32 besprach – ob beziehungsweise wann eine Integration von Zephyr in den CUBE-Codegenerator erfolgt, bleibt offen.

Die Arbeit an Zephyr für ESP32-Kerne macht gute Fortschritte (Abb. 7).