Login
Newsletter
Werbung

Mo, 24. Dezember 2018, 07:00

Software::Kernel

Linux-Kernel 4.20 freigegeben

Linux-Initiator Linus Torvalds hat Version 4.20 des Linux-Kernels freigegeben. Die neue Version enthält eine überarbeitete Signalverarbeitung, den »earliest departure time«-Algorithmus beim Senden von TCP-Paketen sowie zahlreiche interne Optimierungen wie die Datenstruktur XArray und eine RCU-Vereinfachung.

Hans-Joachim Baader

Neun Wochen nach Linux 4.19 ist nun Linux 4.20 fertiggestellt. Die Zahl der Änderungen in Linux 4.20 liegt mit 14.000 im höheren Bereich, etwa gleichauf mit der vorigen Version. Die Änderungen verteilen sich wie fast immer: Knapp zwei Drittel fallen in den Treiberbereich, wobei Grafik- und Netzwerktreiber den größten Teil ausmachen. Der Rest verteilt sich vor allem auf Architektur-Updates, Dateisysteme, den Kern des Kernels, Netzwerk, Dokumentation und Werkzeuge.

Zu den zahlreichen Änderungen in Linux 4.20 gehören zwei neue Typen von BPF Maps, die die Datenstrukturen Queue und Stack implementieren. Der Ausbau des Berkeley Packet Filter (BPF) im Kernel geht somit weiter. Die Signalbehandlung wurde überarbeitet und soll nun einfacher und robuster sein. Dabei wurden auch einige bisher unerkannte Fehler behoben. Für Anwendungsprogramme sichtbar ist die Vergrößerung einer Datenstruktur in diesem Zusammenhang. Es scheint aber kein Programm zu geben, bei dem das von Bedeutung wäre.

Zahlreiche Blocktreiber wurden auf das Multiqueue-API umgestellt. Die alte Schnittstelle wird wahrscheinlich schon in der nächsten Version entfernt, trotz des in Linux 4.19 eingeschleppten Fehlers, der zu Dateisystemkorruption in bestimmten Konfigurationen führen konnte und der erst nach wochenlanger Suche behoben werden konnte. Der Fehler in der Multiqueue-Implementation war laut Jens Axboe der schwerwiegendste »seit Dekaden«. Damit ist gemeint, dass solche Fehler extrem selten sind und nicht mit weiteren zu rechnen ist. Das sei nur ein Grund mehr, die alte Implementation loszuwerden, denn die neue Implementation sei die besser gewartete.

Auf Systemen mit asymmetrischen CPUs kann der Scheduler Prozesse identifizieren, die einen schnelleren Prozessor benötigen, und diese verschieben. Die ARM64-Architektur verfügt nun dank des neuen SSBS-Zustandsbits der Hardware über einen Schutz gegen die Spectre-Variante 4 und auf RISC-V steht jetzt der Systemaufruf futex zur Verfügung. Außerdem gibt es jetzt kexec in der MIPS-Architektur. Ganz neu ist die C-SKY-Architektur, nach Meinung einiger Beobachter die letzte, die für längere Zeit zum Kernel hinzukommen wird. Denn kein Hersteller kann mehr mit der Kosteneffizienz von ARM und RISC-V mithalten. Auch C-SKY stammt noch aus einer Zeit, in der ARM noch nicht so dominant und RISC-V noch nicht existent waren. Die chinesische Entwicklung ist über 15 Jahre alt und umfasst 32-Bit-Prozessoren mit niedrigem Energiebedarf bei ausreichender Geschwindigkeit für eingebettete Systeme.

TCP-Netzwerkpakete werden mit einem neuen Algorithmus von Van Jacobson auf die Reise geschickt. Dies soll Skalierungsprobleme lösen. Die Traffic-Analyse kann nun mit BPF-Programmen vorgenommen werden, was nicht nur sicherer, sondern auch schneller sein soll. Der neue Traffic-Scheduler »taprio« ermöglicht es, Pakete zu festgelegten Zeitpunkten abzuschicken. Ferner erhielt das rtnetlink-Protokoll eine Option, die es Programmen ermöglicht, sicherzustellen, dass sie genau die Information erhalten, die sie anfordern.

Der Systemaufruf fanotify_mark wurde um den Typ FAN_MARK_FILESYSTEM erweitert, womit alle Ereignisse in einem Dateisystem beobachtet werden können. Die Server-Seite des asynchronen Kopierprotokolls von NFS 4.2 wird jetzt unterstützt. Der Schutz gegen die Spectre-Variante 2 wurde verstärkt, indem mehr Barrieren eingesetzt werden. Dies dürfte wiederum etwas Leistung kosten, allerdings sollten diese Kosten gering sein. Der fragwürdige Verschlüsselungsalgorithmus Speck wurde entfernt. dafür wurde das Stackleak-GCC-Plugin nach einigem Hin und Her aufgenommen. Wenn es aktiviert wird, erhöht es die Robustheit gegen Stack-Überläufe und Auslesen von Kernel-Daten. Diese erhöhte Sicherheit kostet aber ungefähr zwischen einem und vier Prozent an Leistung.

Das RCU-Subsystem wurde vereinfacht. Es gibt jetzt nur noch zwei Varianten, eine für Kernels mit Präemption und eine ohne. Ferner wurden Peer-to-Peer DMA-Operationen ins PCI-Subsystem eingebracht. Die Datenstruktur XArray, eine verbesserte Variante der Radix-Baumstruktur, wurde aufgenommen und wird bereits vom Seiten-Cache verwendet. Alle Arrays mit variabler Länge sind jetzt entfernt und beim Compilieren gibt es künftig eine Warnung, wenn ein solches Array definiert wird.

Darüber hinaus kamen auch wieder Treiber für zahlreiche Chips aller Art hinzu. Bemerkenswert ist dabei der LED Pattern-Treiber, der es ermöglicht, LEDs mit wechselnder Helligkeit leuchten zu lassen. Ebenso bemerkenswert ist ein neuer Treiber für mehr als 20 Jahre alte DEC FDDI-Controller-Karten, die Vorläufer der (immer noch unterstützten) FDDI-Controller mit Camel-Chip sind. Möglicherweise ist diese TurboChannel-Karte nur in einigen alten MIPS-Rechnern nutzbar.

Eine Liste aller Änderungen kann man dem Git-Repositorium entnehmen. Die Seite Kernelnewbies.org wird in Kürze eine übersichtliche Zusammenfassung der Änderungen veröffentlichen. Die aktuelle Version von Linux kann von kernel.org und zahlreichen Spiegel-Servern in Form von Patches oder tar-Paketen heruntergeladen werden.

Werbung
Kommentare (Insgesamt: 15 || Alle anzeigen )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung