Linux 5.2 freigegeben: Änderungsrekord und Geschwindigkeitsverbesserungen

Seite 4: IPv6-Router für IPv4; Abgesang auf ältere IDE-Treiber & ISDN4Linux

Inhaltsverzeichnis

Beim XFS-Dateisystem gab es einen größeren Batzen von Neuerungen, die ein Commit-Kommentar nennt. Darunter etwa eine Schnittstelle, über die das Dateisystem jetzt Informationen zum Gesundheitszustand des Dateisystems abliefern kann. Der Code zum Prüfen der Metadaten im Betrieb bleibt experimentell, bietet nach einer Erweiterung aber jetzt alle wesentlichen Funktionen, auf die Oracle-Entwickler Darrick Wong seit einiger Zeit im Rahmen eines größeren Umbaus hinarbeitet.

Auch beim Device Mapper (DM), auf den unter anderem der Logical Volume Manager oder die Datenträgerverschlüsselung mit Cryptsetup/LUKS zurückgreifen, gab es allerlei Änderungen. Eine davon ist ein Bitmap-Mode für Dm-Integrity (1, Dokumentation); diese Device-Mapper-Funktion zur Sicherstellung von Datei-Integrität soll damit eine bessere Performance erzielen als mit dem älteren Ansatz, der ein Journal verwendet. Neu ist das DM-Dust-Target, mit dem man zu Testzwecken das Verhalten eines gealterten Datenträgers simulieren kann, der defekte Sektoren aufweist.

Das beim Zugriff auf SMB-Freigaben von Samba- oder Windows-Servern verwendete CIFS beherrscht jetzt die lseek()-Flags SEEK_DATA und SEEK_HOLE. Auch das Overlay-Dateisystem (OVL) unterstützt sie jetzt. Diese Funktionen sind unter anderem zur effizienteren Handhabung von Images virtueller Maschinen interessant, denn Anwendungen können darüber Speicherbereiche in Dateien effizienter handhaben, die lediglich Nullen enthalten.

Unter den Änderungen an CEPH ist Unterstützung für den bei Linux 4.11 eingeführten Systemfunktionsaufruf statx(), der eine umfassendere und effizientere Abfrage von Datei- oder Verzeichniseigenschaften ermöglicht. Außerdem kann es jetzt NFS-Snapshots re-exportieren.

Beim ursprünglich für simple Flash-Datenträger gedachten F2FS-Dateisystem haben die Entwickler unter anderem den Support für Festplatten verbessert, die mit Shingled Magnetic Recording (SMR) arbeiten; bei solchen gibt es größere, Zonen genannte Bereiche, die immer sequenziell gefüllt werden müssen.

Das bei Linux 5.1 eingeführte, dort aber allenfalls intern verwendete Programmier-Interface zum Einhängen von Dateisystemen lässt sich bei 5.2 jetzt auch von Userspace-Programmen verwenden (u. a. 1, 2, 3, 4, 5). Der zuständige Entwickler will mit diesen neuen Mount-APIs eine Reihe von Problemen der bisherigen Schnittstelle aus der Welt schaffen.

Weitere Neuerungen nennen die wichtigsten Git-Commits der Bereiche AFS, Btrfs, Block-Layer (1, 2), CIFS (1, 2), Fuse, GFS, IO-Uring, MTD, NFS, NFSd, Orangefs, SCSI und Ubifs.

Eigentlich nur für Nostalgiker interessant ist eine Detailänderung, die im Internet aber viel Aufsehen erregte: Zwei Linux-Entwickler haben angekündigt, 2021 die Infrastruktur und die Treiber entfernen zu wollen, die via Parallel-ATA (auch PATA beziehungsweise IDE/Integrated Drive Electronics genannt) angesprochene Datenträger über Gerätenamen wie /dev/hda oder /dev/hdc bereitstellen.

PATA-Datenträger über diesen Code und solche Gerätenamen anzusprechen war in der Anfangszeit von Linux Usus. Mit dem Aufkommen von Serial ATA erhielt der Kernel aber eine modernere Infrastruktur samt neuer Treiber zum Austausch mit ATA-Datenträgern, die Linux dann unter Block-Devices wie /dev/sda, /dev/sdb, usw. bereitstellt. Dieses Libata genannte Subsystem erhielt wenig später auch alles Nötige, um gängige PATA-Chips anzusprechen. Damit hat Libata die ältere, oft schlicht "IDE-Treiber" genannte Infrastruktur schnell zurückgedrängt, sodass moderne Systeme auch PATA-Datenträger über /dev/sd? ansprechen.

Die Entwickler vermuten daher, dass kaum noch jemand die ältere Infrastruktur bei aktuellen Kernel-Versionen nutzt. Sofern niemand Einspruch erhebt, wollen sie den zuständigen Code entfernen, um die Wartung zu vereinfachen. Da die Parallel-ATA-Treiber auf Libata-Basis im Kernel bleiben, hat dieser Schritt für die meisten Anwender keinerlei Bedeutung.

Bei Linux kann man jetzt IPv6-Gateways in IPv4-Routen definieren; damit kann man jetzt einen Weg zu einem IPv4-Netz festlegen, das über ein IPv6-System erreichbar ist.

Einen Performance-Zuwachs auf Systemen mit vielen CPU-Kernen versprechen einige Locking-Optimierungen am Cache für empfangene und versendete Pakete; ein Benchmark mit Remote Procedure Calls (RPCs) legte dadurch laut Entwickler um zehn Prozent zu.

Der neue Kernel verspricht kleinere Performance-Verbesserungen bei der Steuerung des Netzwerkverkehrs via tc (Traffic Control), denn die Entwickler haben auch die Locking-Mechanismen beim Flow Classifier optimiert, der Datenströme klassifiziert.

Einige weitere Neuerungen am Netzwerkcode nennt der Kommentar des Git-Merge, der das Gros der Änderungen enthält, die für 5.2 in diesem Bereich vorgenommen wurden.

ISDN4Linux (I4L) soll bei 5.3 rausfliegen; auch der Capi-Stack steht auf der Abschussliste.

Bei Linux 5.3 soll es viel Code für ISDN-Hardware an den Kragen gehen, nachdem die meisten öffentlichen ISDN-Netzwerke laut den Linux-Entwicklern mittlerweile abgeschaltet wurden. Der alte ISDN4Linux-Stack samt seinem früher recht bekannten Hisax-Treiber soll komplett rausfliegen. Der jüngere CAPI-Stack wandert in den Staging-Zweig – der ist als Bereich für Code mit bekannten Qualitätsmängeln gestartet, dient dieser Tage aber gelegentlich auch als Vorstufe für Code, den die Entwickler entfernen wollen. Bisher wollten sie den Capi-Stack nicht absägen, da unklar ist, ob noch jemand diesen Code und seine Treiber mit aktuellen Kerneln nutzt; wer das tut, sollte sich daher baldmöglichst bei den Entwicklern melden, um den Rauswurf vielleicht abzuwenden.

Im Kernel verbleiben soll hingegen der mISDN-Stack, der die meiste Hardware unterstützt, die auch Hisax anspricht; das ist auch der Stack, auf dem die Telefonanlagen- und VoIP-Software Asterisk aufbaut.

Einige weitere Neuerungen rund um Sicherheit nennen die Git-Commit-Kommentare der Subsysteme Audit, Crypto, Random, SELinux, Tomoyo. Vermutlich kurz nach Erscheinen von Linux 5.2 dürfte Linux-Entwickler Kees Cook auch wieder einen Beitrag in seinem Blog veröffentlichen, in dem er regelmäßig einen Überblick zu Sicherheitsverbesserungen neuer Kernel-Versionen liefert. Zuletzt etwa für Linux 5.1. Dort hat er beispielsweise Arbeiten erwähnt, um switch nutzenden Programmcode aufzuräumen, damit der nach einem case-Abschnitt nicht versehentlich auch den folgenden ausführt, weil der Entwickler das Case-Ende-Zeichen vergessen hat. Bei den Aufräumarbeiten zur Vermeidung solcher "implicit fall-through"-Fälle haben die Entwickler schon eine Reihe von Bugs gefunden. Bei 5.2 gab es nochmal deutliche Fortschritte, wodurch die Entwickler jetzt fast alle derartigen Stellen im Kernel-Code tilgen konnten.