Login
Newsletter
Werbung

Mo, 13. August 2018, 12:24

Software::Kernel

Linux-Kernel 4.18 freigegeben

Linux-Initiator Linus Torvalds hat Version 4.18 des Linux-Kernels freigegeben. Die neue Version bringt zahlreiche Optimierungen, systemweite Energiesparzustände, Unterstützung für Nvidia Volta und viele Erweiterungen von BPF.

Linus Torvalds, Initiator des Linux-Kernels

Linux Foundation

Linus Torvalds, Initiator des Linux-Kernels

Zehn Wochen nach Linux 4.17 ist nun Linux 4.18 fertiggestellt. Linus Torvalds hatte die Freigabe um eine Woche verschoben, nachdem es vorletzte Woche noch einige kritische Fehler zu korrigieren gab. Im Nachhinein wäre seiner Meinung nach die Verschiebung nicht nötig gewesen, doch kamen dadurch noch einige Korrekturen an anderen Stellen hinzu.

Die Zahl der Änderungen in Linux 4.18 liegt mit knapp 13.000 etwa 500 niedriger als in Linux 4.17, womit auch 4.18 zu den kleinsten Kerneln seit zwei Jahren gehört. Die Änderungen verteilen sich wie immer, eine bemerkenswerte Ausnahme war allerdings, dass der Kernel unter dem Strich wiederum kleiner wurde. Rund 553.000 hinzugekommenen Zeilen Code stehen 652.000 entfernte gegenüber. Der hauptsächliche Grund dafür ist, dass das Cluster-Dateisystem Lustre aus dem Kernel entfernt wurde. Das bedeutet freilich nicht, dass Lustre nicht mehr verwendet oder entwickelt wird. Vielmehr wird Lustre separat vom Kernel entwickelt. Der Code von Lustre war bisher für die Aufnahme in den offiziellen Kernel ungeeignet und im Kernel befand sich Lustre daher nur im Staging-Bereich, wurde dort aber nicht gepflegt. Lustre besitzt tausende von Benutzern und die Entwickler werden vermutlich zu einem späteren Zeitpunkt das Dateisystem zur Aufnahme in den Kernel vorschlagen, nachdem sie den Code konsolidiert haben.

Zu den zahlreichen Änderungen in Linux 4.18 zählt, dass die 32 Bit ARM-Architektur Abwehrmaßnahmen gegen Spectre 1 und 2 erhielt, 64 Bit-ARM dagegen solche gegen die Spectre-Variante 4. 32 Bit x86-Systeme verfügen nun über einen Just-in-Time-Compiler für eBPF-Programme. Für asynchrone Ein- und Ausgabe wurde eine neue Polling-Schnittstelle geschaffen. Die Energieverwaltung wurde mit den Power Domain Performance Levels erheblich erweitert. Damit kann das gesamte System einschließlich aller Peripheriegeräte in der Leistung und damit auch der Energieaufnahme an den aktuellen Bedarf angepasst werden. Ferner können Trace-Marker eingesetzt werden, um Trigger für Aktionen wie die Histogrammerzeugung auszulösen. Nach jahrelanger Diskussion wurden außerdem die sogenannten Restartable Sequences integriert, die es ermöglichen, ein Stück Code, das unterbrochen wurde, erneut auszuführen.

Im Dateisystem Btrfs lassen sich leere Subvolumes jetzt einfach mit rmdir löschen. Zwei neue ioctls, FS_IOC_FSGETXATTR und FS_IOC_FSSETXATTR, dienen zum Ändern von Dateiattributen. Weitere neue ioctls erlauben es unprivilegierten Benutzern, Informationen über Subvolumes zu erhalten. Benutzer, die in einem Benutzer-Namensraum Root-Rechte haben, können nun Dateisysteme mounten. Zuvor war dies nicht möglich, da damit Sicherheitsrisiken einhergehen. Aus diesem Grund sind auch nur bestimmte Dateisystemtypen für diese Operation zugelassen, aktuell neben den Pseudo-Dateisystemen proc, sysfs, tmpfs, ramfs, devpts und mqueue nur FUSE, das weitgehend außerhalb des Kernels agiert.

Der in Linux 4.17 integrierte Kryptografie-Algorithmus Speck (mit 128 oder 256 Bit) kann nun auch zum Verschlüsseln von F2FS- und ext4-Dateisystemen eingesetzt werden. Der Algorithmus ist in Kryptografenkreisen weitgehend verpönt, da er von der NSA entwickelt wurde, seine Parameter aber völlig unzureichend begründet wurden. Inzwischen wurde die Standardisierung von Speck von der ISO abgelehnt und die Kernel-Entwickler erwägen bereits, Speck wieder zu entfernen, zumal auch Google den Algorithmus in Android anders als geplant nicht verwenden will. Derweil erhielt das Krypto-Subsystem Unterstützung für die Zstandard-Kompression sowie zwei weitere Verschlüsselungsalgorithen: AEGIS und MORUS.

Das TCP-Protokoll unterstützt jetzt Zero Copy-Empfang unter bestimmten Voraussetzungen. Neu ist außerdem AF_XDP, das Zero-Copy-Netzwerkübertragungen unter der Kontrolle von BPF-Programmen ermöglicht. Ebenfalls ganz neu, aber noch nicht komplett, ist bpfilter, ein Paketfilter auf BPF-Basis. Noch ist unklar, ob es eine Kompatibilität zu iptables oder nftables geben wird. Klar ist jedoch, dass das seit Linux 3.13 existierende nftables für manche Benutzer nicht genug Leistung bringt. bpfilter könnte der bessere Ersatz dafür werden.

BPF kann jetzt ferner Infrarot-Protokolle dekodieren. Mit dieser Fähigkeit kann, sobald passende Werkzeuge bereitstehen, der Daemon lircd abgeschaltet werden. Die jüngst eingeführte TLS-Unterstützung im Kernel kann nun auch von Hardware übernommen werden, die entsprechende Funktionen anbietet. Der erste Treiber, der dies nutzt, ist der für Mellanox mlx5. Eine weitere Verbesserung ist die »Selective Acknowledgment (SACK)-Kompression«, die die Anzahl der SACK-Pakete reduzieren soll. Ferner kann ein BPF-Programm einem Socket zugewiesen werden und beim Aufruf von sendmsg ausgeführt werden.

Die Einführung von Jahr-2038-sicheren Systemaufrufen ist wieder ein Stück näher gekommen. Kernel-intern wurde eine neue Datenstruktur für Zeitstempel mit zwei 64-Bit-Feldern definiert und an einigen Stellen verwendet. Außerdem wurden die SysV-Prozesskommunikationsaufrufe 2038-fest gemacht. Die zentrale Datenstruktur struct page erhielt einige Optimierungen und die Kernel-Konfigurationssprache kann nun Makros definieren.

Der Grafiktreiber Nouveau unterstützt jetzt Nvidias Volta-Chips. Auch AMD Vega 20 wird offenbar bereits unterstützt, noch bevor entsprechende Hardware erhältlich ist. Mit teilweiser Unterstützung des Qualcomm Snapdragon 845 ist zum ersten Mal Code für einen aktuellen Soc der höchsten Leistungsklasse im offiziellen Kernel vorhanden. Darüber hinaus wurden zahlreiche Treiber aktualisiert, erweitert oder kamen neu hinzu. Neben Lustre wurden ferner noch einige andere Treiber entfernt, die offenbar keine Benutzer hatten. Darunter befinden sich sogar Treiber für Hardware, die nie die Marktreife erreichte.

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