Login
Newsletter
Werbung

Di, 6. November 2018, 09:25

Software::Kernel

Erste Vorschau auf Linux-Kernel 4.20

Linux-Initiator Linus Torvalds hat die Kernel-Version 4.20-rc1 als erste Testversion für Linux 4.20 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.

Linus Torvalds, Initiator des Linux-Kernels

Linux Foundation

Linus Torvalds, Initiator des Linux-Kernels

Zwei Wochen nach Linux 4.19 hat Linus Torvalds nun die erste Testversion von Linux 4.20 veröffentlicht. Die kommenden sieben Wochen (bei Bedarf auch mehr) dienen zum Testen der Änderungen und Korrigieren der gefundenen Probleme. Laut Torvalds war es ein normaler Integrationszyklus mit einem großen, aber nicht rekordverdächtigen Umfang von Änderungen. 70% der über 12.100 Änderungen betrafen Treiber.

Eigentlich beträgt die Zeitspanne, in der die Entwickler ihre Änderungen einsenden können, ja zwei Wochen. Torvalds bevorzugt es allerdings, wenn die wesentlichen Änderungen bereits in der ersten Woche eintreffen - neue Funktionalität sollte schließlich zum Beginn des Integrationszyklus bereits fertig sein, ansonsten hat sie im neuen Kernel auch nichts zu suchen. Üblicherweise integriert Torvalds zuerst die kleineren oder unkritischen Änderungen, um die anderen in der zweiten Woche genauer anzusehen. Letzte Woche kamen jedoch stetig weitere Änderungen herein, als er eigentlich den größten Teil des Tages nutzen wollte, um einige Änderungen zu untersuchen. Daher erwägt er nun, es zu einer generellen Regel zu machen, dass alle hauptsächlichen Änderungen in der ersten Woche vorliegen müssen. Noch ist eine solche Regel allerdings nicht explizit in Kraft.

Viele Beobachter hatten erwartet, dass die kommende Version von Linux die 5.0 sein würde. Diesen schlug Torvalds ein Schnippchen, indem er den an sich bedeutungslosen Versionswechsel noch nicht vollzog. Höchstwahrscheinlich wird es aber ein Linux 5.0 anstelle von 4.21 geben.

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. 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. Die zahlreichen weiteren Änderungen sind im Änderungslog von Git zu finden. Kernel und Patch-Dateien sind von zahlreichen Spiegelservern von kernel.org herunterzuladen.

Werbung
Pro-Linux
Traut euch!
Neue Nachrichten
Werbung