Login
Newsletter
Werbung

Di, 4. Oktober 2016, 08:08

Software::Kernel

Linux-Kernel 4.8 freigegeben

Linux-Initiator Linus Torvalds hat Version 4.8 des Linux-Kernels freigegeben. Zahlreiche Optimierungen dürften Linux 4.8 zum bisher schnellsten und effizientesten Kernel machen. Daneben wurden etliche neue Funktionen und Verbesserungen der Sicherheit implementiert.

Linus Torvalds, Initiator des Linux-Kernels

Linux Foundation

Linus Torvalds, Initiator des Linux-Kernels

Zehn Wochen nach Linux 4.7 ist nun Linux 4.8 fertiggestellt. Linux-Initiator Linus Torvalds hatte die Testphase des neuen Kernels um eine Woche verlängert, da er das Gefühl hatte, dass noch eine größere Zahl von Fehlern gefunden werden könnten. Tatsächlich gab es in der zusätzlichen Woche nur noch wenige Korrekturen, so dass im Rückblick die Verzögerung nicht notwendig gewesen wäre.

Die Zahl Änderungen gegenüber der letzten Version ist dieses Mal wieder höher als im letzten Zyklus. Über 13.200 einzelne Änderungen von 1.578 Entwicklern wurden integriert, wodurch der Kernel-Quellcode um weitere 350.000 Zeilen anwuchs. Damit war die Aktivität in diesem Zyklus hoch, der bisherige Rekord wurde aber um rund 500 Änderungen verfehlt. Wie meistens betrafen etwa zwei Drittel der Änderungen die Treiber, wobei unter diesen wiederum die Grafik- und die Netzwerktreiber führend waren.

Während die AMD-Grafiktreiber unter anderem eine Unterstützung für das Übertakten einiger neuerer Chips erhielten, wurde der Nouveau-Treiber um ersten Code für Nvidia Pascal-Chips erweitert. Der Intel-Treiber bietet nun GVT-g Paravirtualisierung und ein Mali-Treiber kam neu hinzu, der aber wohl nur für bestimmte Display-Hardware von Interesse ist. Auch die Unterstützung für den Raspberry Pi 3 ist jetzt, neben anderen Einchipsystemen, im Kernel.

Transparente Huge Pages können jetzt auch für Cache genutzt werden. Nach einer umfassenden Diskussion, welche von zwei konkurrierenden Implementationen aufgenommen werden sollte, machte Kirill Shutemov das Rennen. Eine weitere recht grundlegende Änderung ist, dass das Freigeben von Speicherseiten, die anderweitig benötigt werden, jetzt auf NUMA-Knoten statt Speicherzonen beruht. Das dürfte heutzutage die performantere Lösung sein, wobei die Verbesserung sich allerdings nur im einstelligen Prozentbereich auf die Gesamtleistung des Systems auswirken dürfte.

Die Kernel-Dokumentation erhielt ein neues Formatierungssystem auf Basis von Sphinx. Das Perf-Subsystem erhielt wiederum eine Menge von Neuerungen. Bezüglich der Gefahr von Stack-Überläufen wurde der erste Teil einer Lösung integriert, die Stacks in den virtuellen Speicher packt und den Speicher entsprechend schützt. Das Senden von Logausgaben von Programmen an das Kernel-Log kann nun durch die neue Kommandozeilenoption printk.devkmsg beeinflusst werden. Es kann unbegrenzt, in der Rate begrenzt oder ganz unterbunden werden, wobei die zweite Option die Standardeinstellung ist.

Das Ceph-Dateisystem unterstützt nun RADOS-Namensräume vollständig. Bei OrangeFS wurden die Caching-Funktionen verbessert. Die vielleicht bedeutendste Änderung erfuhr das Dateisystem XFS, das um Reverse Mapping erweitert wurde. Diese Funktionalität nützt momentan noch nichts, wird aber für die Implementation von reflink, Copy on Write, Datendeduplikation, verbesserte Meldung von fehlerhaften Blöcken und bessere Reparatur von Dateisystemschäden benötigt, was alles Funktionen sind, die in nächster Zeit implementiert werden sollen.

Das TCP-Protokoll wurde um den Algorithmus »New Vegas« zur Stauvermeidung bzw. -auflösung erweitert, der besser funktionieren soll als »Vegas«. Auch im WLAN-Bereich gab es Änderungen für bessere Stauvermeidung. Hier wurde der CoDel-Algorithmus eingesetzt, der durch die Reduktion von Warteschlangen auch die Latenzzeiten verringern soll. Im RDS-Protokoll, das Datagramm-orientierte Verbindungen über TCP ermöglicht, kann der Durchsatz jetzt durch die Verwendung mehrerer TCP-Verbindungen gesteigert werden. Zudem wurde die Netzwerk-Paketverarbeitung um die Möglichkeit erweitert, bereits vor jeder weiteren Verarbeitung ein BPF-Programm auf das Paket loszulassen.

Ein neuer Treiber ist »Software RDMA over Ethernet«, der es ermöglicht, RDMA-Protokolle von Ininiband über den Kernel-Netzwerkstack zu nutzen. Ebenfalls neu ist die Funktionalität, mit der man in einem Container Software für eine andere Architektur ausführen kann, was über eine entsprechende Emulation dieser Architektur erreicht wird.

Interne Optimierungen sind unter anderem die Neuimplementierung der Timer-Verwaltung und die Möglichkeit für Treiber, verschiebbaren Speicher zu allokieren. Beides kann zu mehr Effizienz und damit auch Geschwindigkeit beitragen, wenn auch kaum in merklichen Größenordnungen. Der Kernel-interne Zufallsgenerator wurde auf Basis des Verschlüsselungsalgorithmus ChaCha20 neu geschrieben, was zu mehr Skalierbarkeit führen soll. Für Entwickler sind vor allem die neuen atomaren Operationen von Interesse. Außerdem wurde die Möglichkeit hinzugefügt, GCC-Plugins bei der Kernel-Compilierung zu nutzen. Momentan sind Plugins für die Codeabdeckung und die Messung der Code-Komplexität vorhanden, eines zur Erzeugung von Entropie im frühen Stadium des Boot-Vorgangs ist in Vorbereitung.

Proaktive Sicherheit ist mittlerweile eine absolute Notwendigkeit, um im Wettlauf zwischen entdeckten und behobenen Sicherheitslücken einen Vorsprung zu erlangen. Während diesbezüglich zum Beispiel SELinux und AppArmor lange etabliert sind, wurden viele Arbeiten aus dem Grsecurity-Projekt bisher nicht übernommen. In Linux 4.8 wurden aber zwei Maßnahmen integriert, um den Kernel widerstandsfähiger zu machen. Der Entzug der Schreibberechtigung auf bestimmte Speicherbereiche nach der Initialisierung ist die eine, die verbesserte Adressprüfung beim Kopieren von Daten zwischen Kernel und Anwendungen die zweite.

Darüber hinaus wurden zahlreiche Treiber aktualisiert, erweitert oder kamen neu hinzu. 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
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung