zurück zum Artikel

Freies Echtzeitbetriebssystem Zephyr wird erwachsen

Tam Hanna

(Bild: jamesteohart/Shutterstock.com)

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

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 [1] 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 [2])

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).

Linux ist im Embedded-Bereich vor allem in den Darbietungsformen Yocto und der Echtzeit-Kernel-Patch-Variante PREEMPT_RT relevant. Das für Infrastruktur vorgesehene CIP ist ebenfalls aktiv. Ein Vortrag der OSADL evaluierte, wie sich PREEMPT_RT-Komponenten im Zusammenspiel mit Virtualisierungssystemen verhalten. Zum Test kam dabei ein als Blocksys bezeichnetes Kernelmodul zum Einsatz, das das zugrundeliegende System einfriert. Ein Vergleich von Docker, KVM und JailHouse zeigte, dass der Virtualisierer von Siemens die höchste Robustheit bot. Interessant war zudem die Erkenntnis, dass insbesondere bei ARM-CPUs geteilte Caches zu Veränderungen der Latenz führen.

Nicht alle Hypervisoren sind gleich performant (Abb. 8).

Im Allgemeinen ist PREEMPT_RT nach wie vor Thema, und zwar sowohl die eigentliche Konfiguration als auch die Zertifizierung der fertig konfigurierten Resultate. Wie im Fall vieler anderer Echtzeitbetriebssysteme gilt auch für den Kernel-Patch, dass die bestmöglichen Einstellungen von System zu System unterschiedlich sind. Das schafft jede Menge Platz für Diskussion und Vorträge.

Die Zertifikation von quelloffenem Code ist unter anderem im Automotive-Bereich wichtig, um Klagen zu vermeiden. Dabei orientieren sich leider die von den Zertifikationsgremien gestellten Ansprüche und Erwartungen am Workflow der 80er Jahre. Themen wie Continuous Integration sehen die (an sich sinnvollen) Zertifikationsprozesse schlicht nicht vor. Mit dem von CodeThink vorangetriebenen RAFIA steht allerdings ein System am Start, das dieses Problem zu beheben sucht.

Zu beachten ist zudem, dass ein Austausch oder Update der verwendeten Kernel-Version in vielen Fällen eine teuren und aufwändige Rezertifizierung des Gesamtsystems erfordert. Das Civil Infrastructure Project möchte diesem Problem mit als SLTS (Super Long Time Support)-Kernel-Versionen abhelfen – als Mindestsupportdauer versprechen die Betreiber zehn Jahre. Als primäre Herausforderung erweist sich dabei die Auswahl der Patches, die man per Backport gegen den zu pflegenden Kernel anwenden soll: Nicht jede neue Funktion ist für Bestandssysteme beispielsweise in einem Kraftwerk sinnvoll oder nützlich.

Das Yocto-Projekt berichtete derweil vom Stand der Dinge: Als primäres Problem erweist sich Mangel an Entwicklerinnen und Entwicklern sowie Maintainern. Um es zu beheben, haben die Verantwortlichen einen Fünfjahresplan etabliert, der manche Aufgaben für beliebige Bieter ausschreibt. Details finden sich auf der Yocto-Seite [3].

Raumfahrtaufgaben setzen ebenfalls immer kompliziertere Steuerprogramme voraus: ein weiterer Marktbereich, in dem Linux sich immer besser etabliert. Insbesondere die kleinen, schrapnellartig von Trägerraketen ausgesetzten CubeSat-Plattformen nutzen immer häufiger Unix-Systeme.

Immer mehr CubeSats basieren auf Linux (Abb. 9).

(Bild: Linux4Space.org [4])

An der technischen Universität zu Liberec arbeitet man mit Linux4Space an einer Yocto-Variante, die die diversen im Raumfahrtbereich geltenden ESA-Standards so gut wie möglich abzudecken sucht.

Das tschechische Aeronautisches Forschungs- und Prüfungsinstitut (VZLU) entsandte mit dem VZLUSAT-2 bereits einen ersten solchen CubeSat, der Linux für Wolkenerkennung einsetzte und seine Flugmission erfolgreich bestand.

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

(Bild: VZLU [5])

Raspberry Pi, OrangePi und Co suchte man auf dem Kongress vergeblich. Die BeagleBone Foundation präsentierte in ihrem Vortrag Methoden zum Verbinden von Zephyr und Embedded Linux. Mit der Kombination aus BeaglePlay und BeagleConnect Freedom bietet man sogar eine Referenzimplementierung an, die Zephyr und Linux kombiniert.

Aussteller Nummero 2 war Seeed Studio. Das Unternehmen setzt seit einiger Zeit intensiv auf Zephyr – die Plattform wird beispielsweise im SenseCap verwendet, der einen RP2040 und einen ESP32 zur Realisierung eines intelligenten Displays kombiniert. Auch sonst kommt Zephyr im hauseigenen Evaluatonsboard-Ökosystem an mehreren Stellen zum Einsatz.

Seeed Studio nutzt Zephyr an verschiedener Stelle (Abb. 11).

Für Architekturfotografen war der Austragungsort ebenfalls sehenswert – das im sowjetischen Stil entworfene und schonend renovierte Gebäude beeindruckt mit durchdachten Details.

Das Kongresszentrum zu Prag ist ein Paradies für Architekturfotografen (Abb. 12).

Etwa 800 Personen nahmen vor Ort am Embedded Open Source Summit 2023 teil. Virtuell waren rund 450 Teilnehmende dabei. Das Hochladen der geschnittenen Videos auf YouTube ist für den nächsten Monat avisiert. Slides stehen bereits ohne Anmeldung auf der Konferenzseite [6] zur Verfügung. Für die Zukunft reduziert die Linux Foundation die Frequenz des Kongresses: Der nächste europäische Summit findet erst in zwei Jahren statt.

(rme [7])


URL dieses Artikels:
https://www.heise.de/-9211637

Links in diesem Artikel:
[1] https://github.com/joelguittet/mender-mcu-client
[2] https://static.sched.com/hosted_files/eoss2023/1e/ELC_2023-VZLUSAT-2_CubeSat_with_Linux_Payload_Computers.pdf
[3]  https://www.yoctoproject.org/community/yocto-project-engineering-request-for-quotation/
[4] https://static.sched.com/hosted_files/eoss2023/58/Linux4Space%20-%20EOSS%202023.pdf
[5] https://static.sched.com/hosted_files/eoss2023/1e/ELC_2023-VZLUSAT-2_CubeSat_with_Linux_Payload_Computers.pdf
[6] https://events.linuxfoundation.org/embedded-open-source-summit/program/schedule/
[7] mailto:rme@ix.de