Aus Linux-Magazin 05/2017

Kernel 4.11: Neuer Syscall, BFQ-Scheduler, Opal-Support

© Gerard Koudenburg, 123RF

Zu den wesentlichen Neuerungen von Linux 4.11 gehört der frisch eingeführte Systemcall “statx()”, der den Abgleich von Daten über Netzwerkdateisysteme optimiert. Der moderne Scheduler BFQ soll hingegen Zugriffe auf Datenträger beschleunigen.

Am 5. März 2017 schloss Linus Torvalds mit der Freigabe des ersten Release Candidate [1] von Linux 4.11 das Zeitfenster, in dem Entwickler neuen Code für die nächste Kernelversion einreichen dürfen.

Neuer Systemaufruf

Torvalds hob insbesondere »statx()«[2] hervor, den neuen Systemaufruf, der ausführlichere Datei-Informationen bereitstellt. Von diesen Informationen profitieren vor allem Netzwerkdateisysteme, wie etwa das Linux-eigene Network File System (NFS) oder das Common Internet File System (CIFS), das Windows in seinem SMB-Protokoll nutzt. So stellt »statx()« einen Zeitstempel zur Dateientstehung oder Versionsnummern bereit, was den Abgleich von Daten zwischen Client und Server beschleunigen soll.

Eine erste Version von »statx()« landete laut Torvalds bereits sechs Jahre zuvor im Kernel, inzwischen haben die Entwickler auch das Jahr-2038-Problem gelöst. Diese Anomalie könnte am 19. Januar 2038 ab 3:14 Uhr auf Unix-Systemen für Probleme sorgen, die für den Datums-Datentyp »time_t« vorzeichenbehaftete 32-Bit-Ganzzahlen nutzen. Deren Wert überschreitet zu diesem Zeitpunkt 2 147 483 647 und springt anschließend dank eines Zählerüberlaufs auf einen negativen Wert. Dieser verweist in der Folge auf eine Zeit vor dem 1. Januar 1970, dem Beginn der Unix-Zeitrechnung, was zu Programmabstürzen und Endlosschleifen führen kann. Vor einiger Zeit eingeführte 64-Bit-Zähler beheben das Problem.

Schlangestehen

Einen langen Entwicklungszeitraum hat auch der Budget Fair Queuing (BFQ) genannte Scheduler hinter sich. Weil die Kernelentwickler die Notwendigkeit eines weiteren Scheduler neben CFQ sahen, verarzteten sie zunächst CFQ mit Patches aus dem BFQ-Projekt. Deren Macher trieben die Entwicklung aber weiter voran. Inzwischen unterscheidet sich der Code so stark, dass eine Rückportierung nicht mehr möglich ist, weshalb bevorzugt das modernere BFQ zum Einsatz kommt.

Der aktuelle Kernel setzt die Unterstützung für mehrfache Warteschlangen mit einem effizienteren Algorithmus für die Ein- und Ausgabe um. Das schafft die Voraussetzungen für BFQ, der laut Hauptentwickler Jens Axboe [3] Einzug in den Kernel 4.12 halten soll.

Seit einem halben Jahr gibt es den Code für Autonomous Power State Transitions (APST), mit dem der Kernel NVMe-SSDs (Abbildung 1) in den Schlafmodus schickt. Er wurde nie aktiviert, weil ungelöste Probleme auf einigen Datenträgern zu Abstürzen und somit zum Datenverlust führten. Inzwischen ist nur noch Samsungs SM951 betroffen, daher bleibt APST nur für diesen speziellen Datenträger deaktiviert. APST kann bis zu einem Watt Leistung einsparen und sorge damit insbesondere auf Notebooks für eine längere Akkulaufzeit, berichten die Entwickler.

Abbildung 1: NVM-Express-SSDs lassen sich nun dank APST standardmäßig schlafenlegen, was den Stromverbrauch senkt.

Abbildung 1: NVM-Express-SSDs lassen sich nun dank APST standardmäßig schlafenlegen, was den Stromverbrauch senkt.

Integre Daten

Apropos Samsung: Das maßgeblich von Samsung speziell für Flashspeicher entwickelte Flash-Friendly Filesystem (F2-FS) bringt in Kernel 4.11 zahlreiche Neuerungen mit, darunter Bitmaps auf dem Datenträger, die die Suche nach freien Sektoren beschleunigen. Ein neuer Discard Thread soll zudem Latenzen beim Trimming reduzieren, »write_begin()« soll künftig auf überflüssige Input-Output-Operationen verzichten, was Zugriffe beschleunigt.

Der für Raid-Systeme verantwortliche Devicemapper unterstützt nun Journaling für Raid-4-, -5- und -6-Systeme. Dank des Journal gewährleistet der Devicemapper neuerdings, dass sich auch Stripe Payloads nach einem Plattencrash vollständig wiederherstellen lassen. Bislang gingen in bestimmten Crash-Szenarien Daten verloren. Zugleich optimierten die Entwickler den Code, um mehr Leistung auf Raid-1- und Raid-5-Konfigurationen zu erzielen.

Die großen Dateisysteme Ext4, XFS und Btr-FS bringen hingegen keine nennenswerten Neuerungen mit, dafür zahlreiche kleine Bugfixes. Ext4 kennt zudem das neue »ioctl()«-Interface »EXT4_IOC_SHUTDOWN«. Das signalisiert, ob das Dateisystem unmittelbar gelöscht werden kann, weil sich keine wertvollen Daten mehr darauf befinden.

Swappen und Verschlüsseln

Weil der Arbeitsspeicher ihrer Rechner genügt und der Zugriff darauf deutlich flotter passiert als der auf traditionelle Festplatten, verzichten viele Nutzer auf Auslagerungsdateien. Deshalb vernachlässigten die Entwickler den Swapping-Code von Linux seit einiger Zeit. Nun haben ihn die Kernel-Hacker aber aktualisiert. Dank der Änderungen soll die Auslagerungsdatei auf schnellen Datenträgern wie SSDs besser skalieren.

Es gibt Blockgeräte, die Daten nach den Opal-Storage-Spezifikationen [4] selbst verschlüsseln. Zahlreiche Hersteller setzen auf Opal, darunter Hitachi, Intel, Samsung, Sandisk, Seagate und Toshiba. Ihre selbst-verschlüsselnden Opal-Datenträger lassen sich nur mit passenden Anwendungen entschlüsseln. Da Kernel-Version 4.11 das Opal-Protokoll beherrscht, kommt er nun auch mit der Passwortverwaltung zurecht.

Besser geschützt

Auch in Sachen Sicherheit hat sich im Kernel wieder etwas getan. So liefert die neue virtuelle Datei unter »/sys/kernel/security/lsm« einen Überblick über alle auf einem Linux-System laufenden Sicherheitsmodule.

Die Security-Label für NFS-Exporte schalten die Entwickler nun standardmäßig ab. Sie hätten in dem Netzwerkdateisystem viele Probleme verursacht, besonders wenn Server und Clients unterschiedlichen SE-Linux-Richtlinien folgen, schrieb Entwickler Bruce Fields [5].

Einen besseren Schutz erhält in Kernel 4.11 der EFI-Code. Die mit UEFI 2.6 eingeführte »EFI_MEMORY_ATTRIBUTES_TABLE«-Code soll die EFI-Laufzeitbereiche strikter voneinander abgrenzen und so besser schützen.

Schnellere AMD-Grafik

Nicht zuletzt erhielt der freie AMDGPU-Treiber für neuere Grafikkarten von AMD zahlreiche Patches, um die Performance zu verbessern. Laut Phoronix [6] laufen Spiele, die die Vulkan-Abstraktionsschicht des AMDGPU-Treibers samt einer Vorabversion der Grafikschicht Mesa 17.1 sowie Linux 4.11 verwenden, deutlich schneller als zuvor. Allerdings dürfte es noch eine Weile dauern, bis Steam-Nutzer davon profitieren.

Intels Treiber kommt jetzt mit Audiodaten zurecht, die über den Multistream-Transport der Displayports kommen. Für die im Herbst erwarteten neuen GPUs auf den Gemini-Lake-SoCs gibt es schon jetzt ersten Code.

Der auf Mainboards mit Intels Kabylake- und AMDs Ryzen-7-Prozessor oftmals zum Einsatz kommende Realtek-HD-Audio-Codec ALC1220 erhält in Linux 4.11 einen Kerneltreiber. Systeme mit Ryzen 7 sollte der Kernel damit fast vollständig unterstützen [7].

Die Testversion des nächsten Linux-Kernels ist auf Kernel.org erhältlich. Bleibt es bei der üblichen sechswöchigen Testphase, dürfte Linus Linux 4.11 Ende April freigeben. (kki)

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 2 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben