Betriebssysteme Wird Mainline-Linux noch echtzeitfähig?

Was nur wenige wissen: Rund 90 Prozent der Echtzeit-Eigenschaften sind schon in den Linux Mainline Kernel eingearbeitet. Die restlichen zehn Prozent sind aber für industrielle Anwender besonders bedeutsam. Deshalb ist die Unterstützung der Nutzer jetzt wichtig.

Seit Ende der 90er Jahre bestanden Pläne, Linux echtzeitfähig zu machen. Einer der Gründe dafür lag in der rasant schneller werdenden Innovationsgeschwindigkeit in der Informationstechnologie: Denn damals mussten die verfügbaren dedizierten RTOS Kernels jedesmal individuell nachgerüstet werden, wenn eine neue Technologie den Markt eroberte. Der Aufwand dafür war immens, und die verzögerte Verfügbarkeit der neuen Technologien für industrielle Systeme wurde von den Anwendern zunehmend kritisiert. Daraus entstand die Erkenntnis, dass es langfristig sinnvoller ist, ein General-Purpose-Betriebssystem echtzeitfähig zu machen, als alle RTOS Kernels nachträglich immer wieder mit den Technologien der General-Purpose-Betriebssysteme auszurüsten. Aber dies war kein leichtes Unterfangen. Viele anerkannte Betriebssystem-Experten hielten es damals sogar für vollkommen ausgeschlossen, Echtzeitfähigkeit nachträglich in ein Betriebssystem einzubauen. Die offene Struktur und die Flexibilität einer gut koordinierten Open-Source-Entwicklung wie jene des Linux Kernel machten dies aber möglich, obwohl es eine beachtliche Herausforderung war. Zu denen, die sich dieser Herausforderung stellten, gehörten neben vielen anderen

  • Doug Niehaus, Professor an der Kansas University in den USA,
  • Ingo Molnár im Auftrag von Red Hat,
  • Thomas Gleixner in seiner Firma Linutronix für unterschiedliche Auftraggeber,
  • Paul McKenney im Auftrag von IBM und
  • Steven Rostedt im Auftrag von Red Hat

Nach der Entwicklung der wesentlichen Komponenten in der Zeit von 2000 bis 2006 begann die schrittweise Integration in den Mainline Linux Kernel, die inzwischen zu etwa 90 % erfolgt ist. Die restlichen zehn Prozent stehen als sogenannter PREEMPT_RT-Patch zur Verfügung. Zur Zeit wird dessen Pflege und Anpassung an den jeweils aktuellen Linux Kernel von Thomas Gleixner und seinem Mitarbeiter Sebastian Siewior in der Firma Linutronix vorgenommen. Zusätzlich kümmert sich Steven Rostedt um die Pflege der Echtzeiteigenschaften der Langzeit-Versionen 3.2, 3.4, 3.10 und 3.12. Der PREEMPT_RT-Patch unterstützt mehr Architekturen und mehr Subsysteme und ist enger an die Mainline-Entwicklung angebunden als jedes andere Verfahren für Linux-Echtzeit.

Wird Mainline Linux echtzeitfähig gemacht und in geeigneter Weise konfiguriert, entsteht ein Echtzeit-Betriebssystem, das es in vielerlei Hinsicht mit etablierten RTOS Kernels aufnehmen kann. Die beiden wesentlichen Eigenschaften des echtzeitfähigen Mainline Linux sind 
garantierte Echtzeiteigenschaften für die überwiegende Mehrheit industrieller Systeme und API ausschließlich basierend auf dem POSIX-Standard.

Dass das Antwortverhalten eines solchen Echtzeit-Linux-Kernel tatsächlich sehr weitgehend vorhersagbar und praktisch garantiert werden kann, belegen unter anderem die im Testzentrum des Open Source Automation Development Lab (OSADL) durchgeführten Langzeit-Messungen, bei denen täglich zweimal 100 Millionen Triggerimpulse pro Testsystem unter verschiedenen Stress- und Last-Szenarien ausgewertet werden. Die Darstellung erfolgt in sogenannten Latenz-Plots, die voreinander gestellt werden. Die logarithmische Skalierung der Häufigkeitswerte in y-Richtung erlaubt es, sogar einen einzigen Ausreißerwert sichtbar zu machen. Wie in einer Beispiel-Messung im Bild zu erkennen ist, kommt es hier selbst in über 60 Milliarden Zyklen zu keinem einzigen Ausreißer, und die höchste jemals gemessene Latenz dieses mit 2700 MHz getakteten Intel-Prozessors liegt mit etwas über 20 µs in der gleichen Größenordnung, die auch von dedizierten RTOS Kernels erreicht wird.