Login


 
Newsletter
Werbung

Do, 21. Juli 2011, 09:33

Software::Kernel

Neuer Echtzeit-Linux-Kernel

Thomas Gleixner hat eine neue Version des Patches vorgestellt, die Linux mit harten Echtzeitfähigkeiten ausstattet. Nach einer längeren Pause seit Linux 2.6.33 beruht dieser Patch auf dem heute erscheinenden Linux 3.0.

Der Patch für den Echtzeit-Linux-Kernel wird vom Open Source Automation Development Lab (OSADL) gepflegt und hat das Ziel, die Unterschiede zwischen dem normalen Linux-Kernel und dem Echtzeit-Kernel zu minimieren. Beide Varianten zu vereinheitlichen, ist ein schon seit Jahren andauerndes Projekt, und ob es vollständig erreichbar ist, hängt hauptsächlich davon ab, ob die Änderungen in einer Weise eingebracht werden können, die den restlichen Kernel-Entwicklern zusagt.

Viele Neuerungen aus dem Echtzeit-Projekt wurden schon in den Standard-Linux-Kernel übernommen, so dass er bereits weiche Echtzeitfähigkeiten und eine normalerweise geringe Latenz besitzt. Für harte Echtzeitanforderungen sind jedoch weitergehende Änderungen nötig. Entscheidend ist dabei, dass der Kernel garantierte Antwortzeiten auf Ereignisse unter allen Umständen einhält. Diese brauchen nicht einmal besonders kurz zu sein; einige Millisekunden reichen für die meisten Anwendungen.

Linux 2.6.33 liegt schon 15 Monate zurück, und der dazugehörige Echtzeit-Patch wurde im Dezember 2010 veröffentlicht. Extra dafür wurde die Unterstützung für Linux 2.6.33 verlängert, so dass dieser Kernel heute noch mit Updates versorgt wird. Ursprünglich plante Thomas Gleixner, eine neue Version auf Basis von Linux 2.6.38 zu erstellen. Doch massive Probleme ließen das Team letztlich aufgeben und stattdessen Linux 3.0 als Ziel anvisieren.

Nun liegt ein neuer Patch für Linux 3.0-rc7 vor. Aufgrund der langen Entwicklungszeit stellt dieser Patch eine komplette Umstrukturierung dar, der den Code vereinfacht, den Patch deutlich verkleinert und die Geschwindigkeit erhöhen soll. Der Anlass für diese Änderungen war die wachsende Benutzung von CPU-spezifischen Variablen im Standard-Kernel, die so im Echtzeit-Kernel nicht funktioniert. Alle diese Stellen mussten durch ein anderes Konstrukt ersetzt werden, was immer unhandlicher wurde. Also dachten sich Thomas Gleixner und Peter Zijlstra einen neuen Ansatz aus, der die Migration von Tasks an kritischen Stellen unterbindet und keine Änderung an den einzelnen Variablen mehr nötig macht. Die Änderung machte eine weitere schon lange gewünschte Neuerung möglich, nämlich Softirq-Handler direkt von Interrupt-Threads aus auszuführen.

Der neue Patch ist nur noch halb so groß wie der alte und ändert 374 Dateien und rund 10.000 Zeilen Code im Kernel. Laut Gleixner ist die neue Version bereits getestet und wurde für stabil befunden. Neben den genannten Änderungen verzichtet die neue Version auch auf das Aufteilen von Soft-Interrupt-Threads, sorgt dafür, das SPARSE-Interrupts und IOMMU-Interrupt-Remapping funktionieren und führt eine neue Kernel-Konfigurationsoption ein.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung