Login
Newsletter
Werbung

Mo, 16. September 2019, 11:30

Software::Kernel

Linux-Kernel 5.3 freigegeben

Linux-Initiator Linus Torvalds hat Version 5.3 des Linux-Kernels freigegeben. Die neue Version bringt Unterstützung für die neuen Grafikchips der Radeon RX 5700-Serie, neue Systemaufrufe und viele weitere Verbesserungen.

Linus Torvalds

Hans-Joachim Baader

Linus Torvalds

Zehn Wochen nach Linux 5.2 ist nun Linux 5.3 fertiggestellt. Mit etwas über 14.600 Änderungen waren die Entwickler noch produktiver als bei der Vorversion, damit bricht Linux 5.3 aber noch keinen Rekord. Ein neuer Rekord ist allerdings die Zahl von 1846 Entwicklern, die laut einer Statistik von LWN am neuen Kernel beteiligt waren. Dass der Kernel dieses Mal acht Wochen statt der üblichen sieben in der Testphase war, hatte keinen technischen Grund. Der Zeitpunkt passte lediglich besser zu den Reiseplänen von Torvalds, der zu einigen Konferenzen reisen wird.

Die weitaus umfangreichste Änderung für Linux 5.3 ist die Unterstützung für die neuen Grafikchips der Radeon RX 5700-Serie. Ein Großteil der mehr als 400.000 neu hinzugekommenen Code-Zeilen sind allerdings »nur« automatisch generierte Registerdefinitionen. Der AMDGPU-Treiber ist aufgrund der zahllosen Definitionen und der vielen zu unterstützenden Chip-Generationen der bei weitem größte Treiber im ganzen Kernel.

In letzter Minute vor der Veröffentlichung machte Torvalds eine Optimierung des ext4- Dateisystems rückgängig. Die Optimierung funktionierte laut Torvalds zwar perfekt, doch sie führte zu einer unerwarteten Regression an anderer Stelle. Manche Systeme konnten beim Booten nicht mehr genug Entropie sammeln und hingen daher, da der sichere Zufallsgenerator nicht initialisiert werden konnte. Torvalds machte anlässlich dieses Problems noch einmal klar, dass auch Regressionen, die sich nur im beobachteten Verhalten äußern, wie alle anderen Regressionen im Linux-Kernel nicht zulässig sind. Die ext4-Optimierung wird in Kürze zurückkommen, wenn die Probleme mit der Entropie behoben sind.

In der x86-Architektur sind nun die Instruktionen umonitor, umwait und tpause von Anwenderprozessen nutzbar. Sie kommen zum Einsatz, wenn ein Programm sehr kurze Zeit auf etwas warten will - etwa wenige Mikrosekunden. Da in diesem Fall ein Systemaufruf zu einer deutlich zu langen Wartezeit führen kann, wird oft ein aktives Warten in einer Schleife verwendet, was die CPU voll auslastet und bei Hyperthreading die Ausführung der anderen Threads der CPU verhindert. Die neuen Instruktionen sorgen in solch einem Fall für mehr Effizienz und der Administrator kann einstellen, wie lang Prozesse mit diesen Instruktionen die CPU höchstens anhalten dürfen.

Der Prozess-Scheduler kann nun beeinflusst werden, so dass er die CPU-Taktfrequenz besser an Prozessanforderungen anpassen kann. Zwei Systemaufrufe kamen neu hinzu: pidfd_open ermöglicht einem Prozess, einen Deskriptor für einen anderen Prozess zu erhalten, der wie ein Dateideskriptor genutzt werden kann. Damit kann der Prozess beispielsweise über poll eine Benachrichtigung erhalten, wenn der andere Prozess beendet wurde. Der zweite neue Aufruf ist clone3, eine Erweiterung von clone, die Platz für mehr Flags bietet. Da nur eine neue Struktur und die Größe der Struktur an clone3 übergeben werden, sind weitere Erweiterungen in der Zukunft möglich.

BPF-Programme dürfen nun Schleifen besitzen, sofern der BPF-Verifier, der den Code prüft, erkennen kann, dass die Schleife endlich oft durchlaufen wird, und die Zahl der ausgeführten Instruktionen unter dem erlaubten Maximum bleibt. Der NFSv4-Server legt jetzt ein Verzeichnis unter /proc/fs/nfsd/clients mit Informationen über die NFS-Clients an, darunter auch die gerade geöffneten Dateien. BPF-Programme können jetzt ferner auch bei Aufrufen von setsockopt und getsockopt ausgeführt werden. Eine bedeutende Änderung ist, dass IPv4-Adressen, die mit Null beginnen (der Adressblock 0.0.0.0/8) jetzt als gültig angesehen werden. Das schafft mehr als 16 Millionen weitere nutzbare IPv4-Adressen, auch wenn es eine Weile dauern wird, bis jede Netzwerk-Hardware damit umgehen kann. Darüber hinaus gibt es Anstrengungen, noch weitere Adressbereiche nutzbar zu machen, beispielsweise den völlig ungenutzten Multicast-Bereich 225/8 bis 231/8 mit über 112 Millionen Adressen. Diese werden dringend benötigt, bis IPv6 überall genutzt werden kann, was selbst bei optimistischster Schätzung noch sechs Jahre dauern wird.

Darüber hinaus kamen auch wieder Treiber für zahlreiche Chips aller Art hinzu. Dieses Mal wurden aber auch veraltete Treiber in Rente geschickt. Es handelt sich um die beiden älteren der drei vorhandenen ISDN-Subsysteme. Der alte Treiber isdn4linux (auch als Hisax-Treiber bekannt) funktioniert laut Arnd Bergmann schon gar nicht mehr und wird entfernt. Das CAPI-Subsystem besteht aus vier Treibern, von denen drei obsolet sind und zunächst zu den Staging-Treibern verschoben werden. Der vierte CAPI-Treiber wird von Bluetooth CMTP genutzt und bleibt daher erhalten. Die letzten verbleibenden ISDN-Nutzer nutzen den moderneren mISDN-Treiber, der ebenfalls erhalten bleibt.

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

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