Von Echtzeit bis Open Source: 6 Beispiele für eingebettete Betriebssysteme
Software ist inzwischen ein essentieller Bestandteil von vielen modernen Produkten. Doch die Software muss irgendwo laufen. Dafür benötigen wir Controller (Computer) und eingebettete Betriebssysteme, welche auf den Controllern laufen. Und dann erst kommt unsere Software.
Im folgenden ein kurzer Überblick über Betriebssysteme für eingebettete Systeme.
Echtzeitbetriebssysteme
Betriebssysteme für eingebettete Systeme sind oft Echtzeitbetriebssysteme (RTOS, Real Time Operating System). Ein Echtzeitbetriebssystem ist ein Betriebssystem, das speziell dafür ausgelegt ist, Anwendungen mit hohen Anforderungen an die zeitliche Genauigkeit zu unterstützen. Es zeichnet sich durch eine deterministische Verarbeitung von Ereignissen aus, bei der die Reaktionszeit auf eingehende Ereignisse garantiert ist.
Im Gegensatz zu anderen Betriebssystemen, die oft eine hohe Leistung und Flexibilität priorisieren, geht es bei Echtzeitbetriebssystemen primär um die Zuverlässigkeit und Vorhersehbarkeit der Reaktionszeit.
Eingebettete Betriebssysteme müssen keine Echtzeitbetriebssysteme sein. Doch oft erfordern weitere Rahmenbedingungen dies.
Sicher oder nicht?
Systeme mit Anforderungen an die funktionale Sicherheit benötigen eigentliche immer ein Echtzeitbetriebssystem. Typische Anwendungen finden sich beispielsweise in der Automatisierungstechnik, Luft- und Raumfahrt, Medizintechnik oder in anderen sicherheitskritischen Systemen.
Hier müssen Prozesse in Echtzeit überwacht und gesteuert werden, um sicherzustellen, dass alles reibungslos funktioniert. Ein Echtzeitbetriebssystem stellt sicher, dass die beteiligten Prozesse rechtzeitig und deterministisch ausgeführt werden, um ein zuverlässiges und sicheres System zu gewährleisten.
Es gibt aber auch viele Anwendungsfälle, wo dies nicht der Fall ist, wie bei digitalen Anzeigetafeln, Geldautomaten und vielen anderen Geräten. In solchen fällen können wir auch „normale“, in der Regel wesentlich günstigere eingebettete Betriebssysteme verbauen.

Kommerzielle Echtzeitbetriebssysteme
Der Litmustest für ROTS ist der Einsatz in Luft- und Raumfahrt. Weit verbreitet sind VxWorks von Windriver, Integrity von Green Hills Software oder LynxOS von Lynx Software. Alle drei sind fürAnwendungen in viele sicherheitskritischen Branchen zertifiziert. Es gibt aber noch viele mehr, insbesondere für domänenspezifische Anwendungen oder spezielle Controller.
Open Source
Open Source, sicher und zertifiziert schließen sich nicht gegenseitig aus. Ganz im Gegenteil, man könnte sogar argumentieren, dass quelloffene (Betriebs-) Systeme sicherer sind als nicht-offene. Dabei bedeutet quelloffen nicht immer auch kostenlos. Außerdem gibt es inzwischen interessante Geschäftsmodelle, die auf quelloffener Software aufsetzen. Zum Beispiel über den Zertifizierungsprozess.
Ein Beispiel für ein quelloffenes Betriebssystem ist FreeRTOS, das in einer Vielzahl von eingebetteten Systemen eingesetzt wird. FreeRTOS wird aktiv gepflegt und weiterentwickelt.
FreeRTOS wurde in vielen sicherheitskritischen Anwendungen eingesetzt und hat Zertifizierungsprozesse für den Einsatz in verschiedenen Branchen durchlaufen, darunter Luft- und Raumfahrt sowie medizinische Geräte. So wurde FreeRTOS beispielsweise nach dem DO-178C-Standard für den Einsatz in der Luftfahrt zertifiziert.
FreeRTOS-Plus-TCP V3.0.0 adds comprehensive unit test coverage for all lines and branches of code, and has undergone penetration testing and protocol testing by AWS Security to reduce the exposure to security vulnerabilities.
Toshiyanger Walling, Software Development Manager on the FreeRTOS team
Ein weiteres Beispiel für ein Open-Source-RTOS, das für den Einsatz in sicherheitskritischen Anwendungen zertifiziert wurde, ist das Zephyr-Projekt. Zephyr ist ein Open-Source-RTOS, das skalierbar und leichtgewichtig ist, so dass es sich für den Einsatz in Geräten mit eingeschränkten Ressourcen eignet. Zephyr wurde nach der Norm IEC 61508 SIL 2 zertifiziert, einer Sicherheitsnorm für industrielle Steuerungssysteme.
Linux
Als das bekannteste quelloffene Betriebssystem ist Linux natürlich auch bei den eingebetteten Betriebssystemen vertreten. Unter dem Begriff Embedded Linux finden wir viele Implementierungen. Embedded Linux ist zunächst einmal kein Echtzeitbetriebssystem, kann aber mit entsprechenden Anpassungen als eines verwendet werden. Zum Beispiel basiert das eben erwähnte Zephyr-Projekt auf dem Linux Kernel.
Die Spitze des Eisbergs
Wie gesagt, dies sind nur ein paar wenige repräsentative Beispiele für eingebettete Betreibssyteme. Weitere sind inyOS, ein Betriebssystem für drahtlose Sensornetzwerke. Oder Contiki, welches speziell für das Internet der Dinge (IoT) entwickelt wurde. RIOT OS und µC/OS sind leichtgewichtige Betriebssysteme. Im Automobilbereich ist QNX recht weit verbreitet.
Das ist nur eine kleine Auswahl, die aber hoffentlich bei der Auswahl und Produktanalyse ein bisschen weiter hilft.
Photo by Harrison Broadbent on Unsplash