Echtzeit eingepflanzt

Mit seiner Erweiterung um Echtzeit-Eigenschaften mutiert der Linux-Kernel zum „Generalisten“. Der Eingriff in das Erbgut wirft aber auch Fragen auf.

Mit seiner Erweiterung um Echtzeit-Eigenschaften mutiert der Linux-Kernel zum „Generalisten“. Der Eingriff in das Erbgut wirft aber auch Fragen auf.

INHALT:
Zwei-Kernel-Lösungen – nur ein Zwischenschritt?
Ist der RT-Patch „hart“ genug?
Die Risiken minimieren
Bleiben Embedded CPUs außen vor?
Autor

Bislang ist die Welt der Betriebssysteme klar strukturiert und in die drei typischen Anforderungsklassen gegliedert:

  • Human Machine Interface (HMI),
  • Communication (COM) sowie
  • Real Time (RT) für zeitkritische Anwendungen.

Für die beiden ersten Anwendungsbereiche eignen sich PC-Betriebssysteme wie Windows oder Linux, die im Allgemeinen nicht echtzeitfähig sind. Ohne spezielle Erweiterungen (Zwei-Kernel- Lösungen) kommen sie für Automatisierungsaufgaben wie die Synchronisation von Antrieben oder die Ablaufsteuerung einer SPS nicht in Frage. Für derartige Aufgabenstellungen werden in der Regel RTOS (Real Time Operating System) wie VxWorks oder QNX eingesetzt. Deshalb gibt es innerhalb der Automatisierungslösung einer Maschine teilweise völlig unterschiedliche Betriebssysteme, um die Teilaufgaben Visualisierung, Kommunikation und Steuerung/Regelung zu realisieren. Dies verursacht bei Maschinenund Anlagenbauern hohe Kosten beim Engineering und der laufenden Produktpflege. Um diesen Kostenblock zu verringern, fordern Anwender immer wieder ein einziges, universelles (General-Purpose) Betriebssystem für die Automatisierung.

Zwei-Kernel-Lösungen – nur ein Zwischenschritt?

Die Forderung führte zu Zwei-Kernel-Lösungen, bei denen ein zusätzliches echtzeitfähiges Betriebssystem das jeweilige PC-Betriebssystem (Linux oder Windows) kontrolliert. Der echtzeitfähige Miniatur- Kernel greift dabei direkt auf die Hardware zu und schafft für den zweiten, nicht echtzeitfähigen Kernel des PC-Betriebssystems eine teilweise virtuelle Hardware- Umgebung. Die Verteilung der CPURechenzeit erfolgt ausschließlich über den Echtzeit-Kern. Allerdings gibt es inzwischen eine kaum noch überschaubare Vielfalt an Lösungen, beispielsweise RTAI (RealTime Application Interface for Linux), PikeOS von Sysgo oder INtime Real Time for Windows (Tenasys).

Um das Ziel eines General-Purpose- Systems mit Linux zu erreichen, wurde in Deutschland eine Vereinigung gegründet: OSADL (Open Source Automation Development Lab). Seit einiger Zeit arbeiten Linux-Entwickler daran, das Open- Source-PC-Betriebssystem mittels „RTPreempt- Patch“ mit Echtzeit-Eigenschaften auszustatten. Neben einem verbesserten Zeitverhalten, beispielsweise bei der Aufnahme und Wiedergabe von Audiosignalen sowie der Übertragung von VoIP (Voice-over-IP) und Streaming-Video in der Telekommunikation, sollen darüber hinaus aber auch zeitkritische Anwendungen in der Automation und in militärischen Projekten möglich sein – also harte Echtzeit-Anwendungen.

Für harte Echtzeit-Anwendungen und vor dem Hintergrund einer Haftung für Sachund Personenschäden muss die Komponentenauswahl einer Echtzeit-Lösung mit größter Sorgfalt erfolgen. Der Kostenaspekt bezüglich Engineering- und Lizenzkosten sollte dabei sekundär sein.

Gegen den Einsatz eines „Generalisten“ als Betriebssystem für Visualisierung, Kommunikation und Steuerung sprechen die Komplexität und das damit einhergehende Risiko verdeckter Schwachstellen. Ein komplexes und offenes Betriebssystem wie Linux ist hinsichtlich aller Situationen in einer bestimmten Anwendung nur bedingt testbar. Die Wahrscheinlichkeit, dass Schwachstellen im Zeitverhalten unerkannt bleiben, ist höher als bei einem kompakten RTOS-Kernel. Die Ursache für eine kritische Konfiguration, in welcher das gewünschte Zeitverhalten nicht erreicht wird, muss nicht einmal der Kernel mit dem RT-Preempt-Patch sein. Auch nachträglich hinzugefügte Treiber und Bibliotheken kommen als Verursacher in Frage.

Die Alternative zum Einsatz eines Betriebsystems für alle Automatisierungsaufgaben bleibt auch in Zukunft die Zwei- Kernel-Lösung – besonders im Hinblick auf die aktuellen Entwicklungen bei den CPU-Prozessoren, Stichwort: Multicore. Zeitkritische Aufgaben laufen künftig unter einem RTOS getrennt von den unkritischen Funktionen (HMI, COM) – jeweils in einem eigenständigen Betriebssystemkern auf separaten Prozessor-Cores. Der überschaubare Codeumfang zur Lösung der Echtzeit-Aufgaben kommt einem umfassenden Test des Zeitverhaltens entgegen. Auf der Hannover-Messe waren bereits erste Lösungen mit Intel-Core-Duo- Prozessoren zu sehen, beispielsweise von Beckhoff. Hinzu kommt, dass sich die Anzahl der Rechnerkerne je Chip in Zukunft weiter erhöht (n-Core-Prozessoren). Das erlaubt eine weitere Gliederung der Teilaufgaben.