Login
Newsletter
Werbung

Mo, 22. Juli 2019, 14:56

Software::Kernel

Erste Vorschau auf Linux-Kernel 5.3

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

Zwei Wochen nach Linux 5.2 hat Linus Torvalds nun die erste Testversion von Linux 5.3 veröffentlicht. Die kommenden sieben Wochen (bei Bedarf auch mehr) dienen zum Testen der Änderungen und Korrigieren der gefundenen Probleme. In seiner Ankündigung beschreibt Torvalds die neue Version als »groß«. Mit etwas über 12.600 Änderungen waren die Entwickler noch produktiver als bei der Vorversion, doch gab es bereits Versionen mit noch mehr Änderungen. In der Integrationsphase stieß Torvalds auf mehrere Probleme, die seiner Meinung nach auf zu neuen und schlecht getesteten Code zurückzuführen waren. In einigen Fällen wurden die Probleme behoben, aber mindestens eine der Einreichungen wies Torvalds zurück.

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

Werbung
Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung