Zum Hauptinhalt Zur Navigation

Linux: 2.6.39 ist fast ein Echtzeitkernel

In Kernel 2.6.39 wird die Interrupt-Verarbeitung durchweg in Kernel-Threads abgearbeitet – eine wichtige Voraussetzung für die Verwendung als Echtzeitkernel. Zudem wurde das Netzwerk verbessert und um ein wichtiges Sicherheitswerkzeug erweitert.
/ Jörg Thoma
19 Kommentare News folgen (öffnet im neuen Fenster)
Ein schwimmender Gentoo-Pinguin (Bild: Ken Funakoshi, CC BY-SA 2.0)
Ein schwimmender Gentoo-Pinguin Bild: Ken Funakoshi, CC BY-SA 2.0

Der Linux-Kernel 2.6.39 ist um eine Echtzeitfunktion erweitert worden: Die Interrupt-Verarbeitung erfolgt jetzt komplett in Kernel-Threads. Damit soll die Latenzzeit gesenkt werden. Zudem wurde die Steuerung des Paketflusses in Routern weiter optimiert. Außerdem gehen die Anpassungen von Open-Source-Treibern für WLAN-Geräte an den Wireless-Stack weiter voran.

Die meiste Arbeit an dem aktuellen Linux-Kernel hatte wohl Programmierer Thomas Gleixner, der im kompletten Kernel Änderungen an der Interrupt-Verarbeitung vornahm. Mit den "Forced Threaded Interrupt Handlers" werden die meisten Interrupts in Kernel-Threads abgearbeitet, um die Latenzzeiten zu senken. Die Funktion wird in den Echtzeitversionen des Linux-Kernels bereits verwendet.

Big Kernel Lock endgültig entfernt

Endgültig verschwunden ist der Big Kernel Lock: Die Funktion wurde aus einigen noch verbleibenden Modulen entfernt, etwa aus dem HPFS-Treiber für das OS/2-Dateisystem.

Torvalds hebt die Unterstützung für die an der Universität von Peking entwickelte Unicore32-Plattform(öffnet im neuen Fenster) hervor. Zudem können Blockgeräte per Thread eingebunden werden. Dadurch werden weniger Sperren benötigt und häufig wiederkehrende Zugriffe beschleunigt. Zusätzlich arbeitet der neue Kernel mit sogenannten Datei-Handles, über die Userspace-Dateisysteme mit dem eigentlich darunter liegenden Dateisystem kommunizieren können. Einen ähnlichen Mechanismus verwendet bereits das XFS-Dateisystem für Backup- und Wiederherstellungsfunktionen.

Unter dem etwas esoterisch anmutenden Namen " Transcendent Memory(öffnet im neuen Fenster) " bekam der nächste Kernel eine weitere Funktion zur effizienten Speicherverwaltung. Die transzendente Speicherverwaltung kann nicht mehr benötigte Speicherseiten, die der Page-Cache löschen wird, in einem Speicherpool abgelegen. Dort kann die Speicherseite bei Bedarf schnell nachgeladen werden. Die Funktion soll vor allem bei der Virtualisierung Vorteile bringen.

Effizienter und sicherer vernetzt

Ein neuer Algorithmus soll den Paketfluss in Routern besser steuern. Chokhee ist eine Erweiterung(öffnet im neuen Fenster) des RED-Algorithmus(öffnet im neuen Fenster) und berechnet, wann Pakete verworfen werden sollen, wenn der Platz in der Warteschleife knapp wird. Er berücksichtigt dabei unter anderem die Anzahl der Pakete, die aus einer bestimmten Quelle kommen und berechnet im Voraus, wann Pakete aufgrund knapper werdenden Speichers fallengelassen werden müssen.

Mit Ipset vereinfacht sich die Paketfilterung. Mit dem Kommandozeilenbefehl können mehrere IP-Adressen gleichzeitig in einer Tabelle aktualisiert werden, die im Arbeitsspeicher gehalten wird. Das Anpassen der Tabellen soll damit deutlich einfacher und schneller werden und das Sperren von Adressen und das Blockieren der Ports beschleunigen. Die Tabelle steht dementsprechend auch Firewall-Anwendungen zur Verfügung, die durch eine einzige Iptabels-Regel bereitgestellt werden kann.

Mehr drahtlose Treiber

In Kernel 2.6.39 wanderten zahlreiche neue Wireless-Treiber diverser Hersteller ein. Realtek steuerte den Quellcode für die Chipsätze RTL8192CU und RTL8188CU bei, die allerdings von Kernel-Entwickler Larry Finger weitgehend angepasst werden mussten, damit sie mit dem Kernel-eigenen WLAN-Stack funktionieren. Zusätzlich wurde der Code für den B34-Treiber für Broadcom-Chips erweitert, so dass er aktuelle 802.11n-Geräte ansprechen kann. Die Wikiseite(öffnet im neuen Fenster) der Treiberentwickler listet die Geräte auf, die der quelloffene Treiber unterstützt und für die weiterhin der proprietäre Treiber benötigt wird.

Wenig Änderungen im Grafik-Stack

Mit neuem Code rückte ein funktionierender KMS-Treiber (Kernel Mode Settings) für Displaylink-Hardware näher. Entwickler David Airlie pflegte die entsprechenden Anpassungen(öffnet im neuen Fenster) in den DRM- (Direct Rendering Module) und den KMS-Code ein. Auf Basis des neuen Frameworks arbeitet Airlie bereits an dem neuen Treiber.

Der freie Treiber für Nvidia-Karten erhielt die Unterstützung für Z-Kompression(öffnet im neuen Fenster) , das die Leistung des Nouveau-Treibers weiter erhöhen soll. Zudem wurde für die Nvidia-Grafikkerne NV50(öffnet im neuen Fenster) mit Tesla-Kern und NVC0(öffnet im neuen Fenster) mit Fermi-Kern das Pageflipping implementiert, das die Leistung verbessern und Tearing verhindern soll.

Im neuen Kernel wurde die Funktion des Radeon-Treibers für die aktuellen AMD-Grafikkarten mit Cayman-Chipsätzen (HD 6790 und HD 6970) erweitert. Allerdings kommt das entsprechende DRM-Modul mit den Chipsätzen nicht zurecht, weshalb die bereitgestellte 2D- und 3D-Beschleunigung noch nicht genutzt werden kann.

Xen und KVM

Der Xen-Host erhielt Netzwerkunterstützung. Damit können Xen-Gäste über entsprechende Treiber nun mit anderen Systemen kommunizieren. Ferner erhielt Xens Dom0 die Unterstützung für Translation Table Maps (TTM), das die Grafikleistung der virtuellen Maschine verbessern soll. Zudem können Xen-Gastsysteme per Xenbus PM Events in den Ruhezustand geschickt werden. Xen bleibt aber weiterhin unbrauchbar, da das entsprechende Storagesystem noch fehlt. Die dafür eingereichten Patches der Xen-Entwickler wurden unter anderem wegen Kompatibilitätsgründen zu ReiserFS abgelehnt(öffnet im neuen Fenster) .

In KVM laufende Windows-Systeme starten deutlich schneller, da ein Problem mit dem Scheduler beseitigt wurde, das bereits Ende 2010 diskutiert worden war(öffnet im neuen Fenster) .

Video for Linux

Weitere Änderungen hat das V4L-Subsystem erfahren, in dem unter anderem das Media Controller API(öffnet im neuen Fenster) überarbeitet wurde. Die Änderungen sollen vor allem neue Parameter für Funktionen auf Videochipsätzen in System-on-a-Chip (SOC) bieten, die dann von Userspace-Anwendungen angesprochen werden können.

Wie der für den Multimedia-Stack verantwortliche Entwickler Mauro Carvalho Chehab in seiner Code-Einreichung beschreibt, wurde das V4L-Subsystem auch um etliche Treiber erweitert, darunter für Webcams mit Divio-Chips, etwa Logitecs Quickcam Pro sowie dem USB-DVB-S/S2-Empfänger von Technisat.

Außerdem wurde das V4L-Subsystem überarbeitet, in dem unter anderem die Priorisierung überarbeitet wurde. Die Zeitverwaltung ist um die Funktion CLOCK_BOOTTIME(öffnet im neuen Fenster) erweitert worden. Der neue Posix-Zeitmesser unterbricht auch im Schlafmodus die Zählung nicht. Er soll vor allem auf Android-Geräten zum Einsatz kommen.

Der Quellcode von Linux 2.6.39 liegt unter kernel.org(öffnet im neuen Fenster) zum Download bereit. Dort sind auch die Änderungen in einem Changelog zusammengefasst(öffnet im neuen Fenster) oder über Gitweb(öffnet im neuen Fenster) einsehbar.


Relevante Themen