Aus Linux-Magazin 11/2019

Kernel 5.3: ExFAT, "clone3()", Navi-Support

© pictrough, 123RF

Linux 5.3 unterstützt weiterhin Disketten und bringt unter anderem Änderungen an Grafik- und Dateisystemen sowie Systemaufrufen mit. Doch am Rand des aktuellen Release-Zyklus gab es auch Neuerungen für das Ökosystem rund um den Kernel.

Entwickler Steven Rostedt hat nach einiger Verzögerung die Software Kernelshark 1.0 veröffentlicht [1], eine überarbeitete Version des Kernel-Trace-Frontends. Die grafische Anwendung zum Betrachten von Kernel-Events sei nun komplett in Qt geschrieben, laufe schneller und sei einfacher zu bedienen. Kernelshark spielt über Bande: Es dient als Frontend für »trace-cmd«, ein Kommandozeilentool, das die Interaktion mit dem offiziellen Kerneltracer Ftrace vereinfacht.

Zugleich sprangen die Floppy-Treiber dem Tod gerade noch einmal von der Schippe: Denis Efremov übernimmt fortan Wartung und Pflege der Treiber für die nicht mehr ganz zeitgemäße Speicherlösung. Linus Torvalds hatte zuvor vage, aber laut darüber nachgedacht, den Code in Rente zu schicken und ihn als verwaist zu markieren.

Der Grund war, dass das Diskettenlaufwerk des bisherigen Maintainers, Jiri Kosina, den Geist aufgegeben hat. Trotz dieses tragischen Verlusts an Hardware darf der Floppy-Treiber nun aber weiterleben.

ExFAT und Rust-Module

Microsoft hat die Spezifikation des hauseigenen ExFAT-Dateisystems veröffentlicht und die Patente zugleich an das Open Invention Network (OIN) weitergereicht [2]. Die geschätzte Linux-Community solle den Treiber nutzen können, ohne rechtliche Konsequenzen befürchten zu müssen, schrieb Microsoft Ingenieur John Gossman.

So richtig früh kommt der Schritt nicht: Den Treiber gibt es bereits seit 2006. Samsung hat 2013 zudem einen eigenen ExFAT-Treiber offiziell unter die GPL gestellt, wenn auch etwas unfreiwillig nach einem Code-Leak. Weil der “neue” ExFAT-Treiber noch einigen Feinschliff braucht, steckt er jetzt erst einmal in Greg Kroah-Hartmans Staging-Zweig.

Apropos Kroah-Hartman: Zumindest behauptete [3] ein Leser von LWN.net, dass der Kernel-Entwickler ihm erzählt habe, er würde unter bestimmten Bedingungen auch ein Framework für den Kernel akzeptieren, um Module in Rust zu schreiben. Bedingung Nummer eins wäre, dass Nutzer, die den Kernel selbst kompilieren, kein Rust dafür benötigen, auch dann nicht, wenn sie »make allyesconfig« einsetzen. Zweitens müsste Rust beweisen, dass damit mehr möglich sei, als C zu ersetzen. Ein Beispiel wäre, einen sicheren Wrapper für Kernel-APIs damit zu programmieren.

Mit dem Kernel selbst zeigte sich Linus Torvalds bei der Release der ersten Vorabversion 5.3-rc1 trotz eines holprigen Starts mit einigen Bugs insgesamt zufrieden mit den Früchten der Arbeit [4]. Die eingereichten Patches betreffen unter anderem Dateisysteme und Peripherietreiber, aber auch Kernkomponenten.

Das Wiederverwenden von Prozess-IDs kann auf Unix-Systemen mitunter Probleme machen, wenn unbekannt ist, in welchem Zustand sich die Prozesse gerade befinden. Die »pidfd« (Process ID File Descriptor) sollen ein wenig bei der Aufklärung helfen. Der neue Systemaufruf »pidfd_open()« sorgt dafür, dass auch mit »fork()« und »clone()« erzeugte Prozesse, die kein »CLONE_PIDFD« verwenden, ansprechbare »pidfd« verwenden. Über die erfährt der Prozessmanager davon, falls ein Kindprozess ohne Race Condition stirbt.

Ein weiterer Systemaufruf, das erwähnte »clone()«, wurde im aktuellen Kernel zudem geklont: Eine fast identische Kopie namens »clone3()« akzeptiert mehr Parameter als das Original.

Updates an Ceph und NFS

Eine Reihe aufregender Neuerungen kündigte Ilja Drjomow für Ceph an. Das unterstützt nun »rbd object-map« und »fast-diff«, die das Lesen, Verwerfen und Anlegen von Snap-Diffs für mitwachsende Images beschleunigen. Zudem unterstützt Ceph jetzt sicherheitsbezogene Extended File Attributes, allerdings bisher nur für SELinux.

Auch in Sachen NFS hat sich etwas getan. Das Verzeichnis »/proc/fs/nfsd/clients/« hält nun lange ersehnte Informationen über NFSv4-Clients bereit, etwa zu geöffneten Dateien. Auf Server-Seite darf der Admin zudem den State der Clients nun auch mit voller Härte ändern.

Client-seitig kommt NFSv4 mit dem speziellen File-Open-Access-Modus von Linux zurecht. Die Mount-Option »nconnect=Anzahl« erlaubt dem NFS-Client zudem, mehrere Verbindungen zum Server zu öffnen. Der Statistikcode liefert für alle Verbindungen Daten. Nicht zuletzt verlangt es NFSv4 dank eines neuen Mechanismus von Containern ohne Hostnamen, zumindest einen unverwechselbaren Bezeichner pro Host zu setzen.

AMDs Navi-GPU

Im GPU-Bereich hob David Airlie vor allem den Support für die Navi-GPUs von AMD (Abbildung 1) hervor, der mit einem Schub großer Header-Dateien für den Kernel einherging. Die liefern Support für RX-5700-Grafikkarten von AMD, die neu auf dem Markt sind. Außerdem kündigte Airlie für den Intel-Treiber i915 Support für HDR (High Dynamic Range) sowie für HDMI I2C Link an.

Abbildung 1: Kernel 5.3 unterstützt die RX-5700-Grafikkarten von AMD. © AMD

Abbildung 1: Kernel 5.3 unterstützt die RX-5700-Grafikkarten von AMD. © AMD

Für Xen lieferte Jürgen Gross eine Serie von Patches an, die einen allgemeinen Kommandozeilenparameter einführen sollen. Dank ihm dürfen Gäste in virtualisierten Umgebungen künftig die Paravirtualisierung-Erweiterungen deaktivieren. UBIFS unterstützt ebenfalls die Zstd-Kompression und signierte Offline-Dateisysteme.

Auch für die USB-Schnittstelle gibt es noch ein größeres Update, das die Einführung des neuen Cadence-DRD-Treibers betrifft. DRD steht für Dual-Role Device. Der Cadence-DRD-Treiber für USB 3 lässt sich wahlweise in zwei Modi betreiben, nämlich Peripheral Only und Host Only (»xhci«). Damit zusammen hängt der ebenfalls im Kernel 5.3 RC1 gelandete Support für Tigerlake-Devices (»dwc3«) und den neuen »imx7ulp«-Treiber.

No RISC, no fun

Auch für RISC-V hat Kernel 5.3 kleinere Neuerungen im Gepäck. So gibt es für die Architektur Hugepage-Support, also Unterstützung für große, von der CPU allozierte Arbeitsspeicherbereiche. Zugleich findet das initiale Pagetable-Setup nun in zwei Phasen statt.

Der Berkeley Packet Filter (BPF) bringt Support für BTF-to-C mit. Die hilfreiche Neuerung erlaubt es, eine Untergruppe von BPF-Type-Formaten als Typendefinitionen in C auszugeben. Das erhöht nicht nur die Lesbarkeit der kryptischen BTF-Ausgaben, sondern erlaubt es auch, BPF-Programme portierbar zu machen, weil sie nicht mehr von den Kernel-Headern des Hosts abhängen [5].

Darüber hinaus lässt sich die Boot-Kommandozeile während eines »kexec«-Kernel-Aufrufs messen, um so Manipulationen am Bootprozess auf die Schliche zu kommen. Der so genannte Measurement-Prozess dient der Sicherheit und verwendet unter anderem vom TPM erzeugte Werte. Herunterladen lässt sich Linux 5.3 über Kernel.org und Github.

Infos

  1. Kernelshark: http://www.kernelshark.org

  2. Ulrich Bantle, “Microsoft will ExFAT im Linux-Kernel”: https://www.linux-magazin.de/news/microsoft-will-exfat-im-linux-kernel/

  3. Rust im Kernel: https://lwn.net/Articles/797828/

  4. Linus Torvalds zu Kernel 5.3-rc1: http://lkml.iu.edu/hypermail/linux/kernel/1907.2/04769.html

  5. Kernelnewbies: https://kernelnewbies.org/Linux_5.3

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
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben