Aus Linux-Magazin 04/2024

Linux 6.7 mit Bcachefs im Mainline-Kernel

© Sergey Mironov / 123RF.com

Nicht häufig schafft es ein neues Dateisystem in den Mainline-Kernel. Mit Linux 6.7 gebührt diese Ehre dem Next-Gen-Filesystem Bcachefs.

Eigentlich sollte Linux 6.7 der letzte Kernel des Jahres 2023 werden. Die Lage der Feiertage verhinderte allerdings eine für Linus Torvalds und die Kernel-Entwickler genehme Lösung. So schob Torvalds den Prepatch -rc8 ein und veröffentlichte Linux 6.7 Anfang Januar. Das bedeutete auch, dass nicht Linux 6.7 zum aktuellen Kernel mit Langzeitunterstützung erklärt wurde, sondern der Vorgänger 6.6. Damit bekommt das Release vermutlich nur bis zum Erscheinen von Linux 6.8 im März oder April 2024 Unterstützung. Schon im Vorjahr hatten die Feiertage Linux 5.16 einen zusätzlichen achten Release-Kandidaten beschert.

In seiner Ankündigung schreibt Torvalds, dass Linux 6.7 mit über 17 000 Commits eine der größten Kernel-Veröffentlichungen überhaupt ist [1]. Über 2800 dieser Einreichungen entfallen auf den Hauptdarsteller dieses Kernel-Releases, das Next-Gen-Dateisystem Bcachefs. Das hat nach einigen erfolglosen Anläufen den Einzug in den Mainline-Kernel geschafft, nachdem es bereits den Zyklus zu Linux 6.6 in Linux-Next in Wartestellung verbrachte. Der Neuzugang tritt damit in Konkurrenz zu Btrfs, dem anderen Copy-On-Write-Dateisystem (COW) im Kernel.

Bcachefs

Das Dateisystem ging aus dem ebenfalls von Bcachefs-Entwickler Kent Overstreet entwickelten, auf SSDs zugeschnittenen Caching-Verfahren Bcache hervor. Es trat 2015 erstmals in Erscheinung, 2022 erklärte es Overstreet als stabil. Im Kernel gilt Bcachefs vorerst noch als experimentell, da ihm noch einige Funktionen fehlen, die in den nächsten Kernel-Versionen nachfolgen sollen. So liegt für Linux 6.8 bereits die initiale Unterstützung für einen Online-Dateisystem-Check im Master-Zweig von Bcachefs.

Auch Btrfs bietet mit 6.7 neue Funktionen. An erster Stelle sei hier die Unterstützung der temporären Dateisystem-ID »fsid« genannt. Die FSID identifiziert ein Dateisystem und ist hart kodiert, was das Einhängen derselben FSID auf verschiedenen Geräten verbietet. Diese Funktion nutzt etwa Valve auf dem Steam Deck für A/B-Tests von Root-Partitionen. Des Weiteren erhält Btrfs mit »raid-stripe-tree« einen neuen Tree mit verbessertem Mapping und mit »squota« eine einfachere Quota-Berechnung [2].

Grafik

Im Bereich Grafik gilt Intels “Meteor Lake” [3] jetzt als stabil, während sich die Unterstützung für die noch 2024 erwarteten Prozessorfamilien “Lunar Lake” [4] und “Arrow Lake” im Ausbau befindet. Daneben wurde der Intel-i915-Display-Code für die Verwendung mit dem kommenden Xe-DRM-Kernel-Treiber vorbereitet. Der Xe-Kernel-Treiber ist seit rund zwei Jahren als Intels moderner Direct-Rendering-Manager-Treiber in der Entwicklung. Frühestens mit Linux 6.8 könnte der neue Treiber als experimentelle Option bereitstehen.

Der freie Nouveau-Treiber für Nvidia-Karten erhält initiale Firmware-Unterstützung für GSP-Prozessoren [5], die einige GPUs zum Auslagern von Initialisierungs- und Verwaltungsaufgaben mitbringen. Die GSP-Firmware übergibt dabei fast alle Verwaltungsaufgaben an eine RISC-V-CPU auf der GPU. AMDs Seamless Boot [6] lief bisher unter anderem auf Valves Steam Deck, um einen nahtlosen und flackerfreien Boot-Vorgang zu gewährleisten. Neue Patches sollen die Nutzung von Seamless Boot für weitere AMD-Radeon-Grafikhardware ermöglichen.

Prozessoren

Den 2001 aus einer Zusammenarbeit von Intel und Hewlett-Packard hervorgegangenen IA-64-Bit-Mikroprozessor Itanium hat Intel 2021 letztmalig verkauft. Er erreicht nun das Ende der Unterstützung im Kernel. Linux 6.7 ist nun (vorläufig) um 65 219 Zeilen Code leichter. Die von Torvalds ungeliebte Plattform dürfe nur zurückkehren, wenn sie außerhalb des Kernels für ein Jahr ausreichend Pflege erfahre, bestimmte der Herr der Kernel [7].

Mit Linux 6.7 ist es dank einer Initiative von Suse jetzt möglich, die 32-Bit-Emulation und entsprechende Syscalls auf x86-64-Kerneln mit dem Befehlszeilenparameter »ia32_emulation=« während des Boot-Vorgangs zu manipulieren. Damit lässt sich die 32-Bit-Emulation abschalten, wenn man sie nicht benötigt. Das verringert auch den Angriffsvektor, da die 32-Bit-Kompatibilitätsschnittstellen weniger gut getestet sind als der Rest der Kernel-API [8].

Intel erweitert den Code für seine Trust Domain Extensions (TDX), die das Unternehmen vor einem Jahr mit den Xeon-CPUs der “Sapphire-Rapids”-Baureihe eingeführt hat. TDX [9] soll insbesondere bei den Anwendern von Cloud-Diensten mithilfe von Confidential Computing (CC [10]) dafür sorgen, dass VMs und andere Workloads in einer vertrauenswürdigen Umgebung laufen.

Das RISC-V-Micro-ATX-Board Milk-V Pioneer [11] mit einem Sophon-SG2042-SoC erhält ein viertes Patchset [12], das die grundlegende Treiberunterstützung aktiviert und ausreicht, den Kernel in einer einfachen Konsole zu booten. AMDs auf ARM basierender Pensando-Elba-SoC erhält anfängliche Unterstützung. Bei diesem Chip handelt es sich um eine Datenverarbeitungseinheit (DPU) zur Auslagerung von Speicher- und Netzwerkaufgaben. Sie verfügt über 16 ARM-Cortex-A72-Kerne und einen dualen DDR4/DDR5-Speichercontroller mit Speicher- und Krypto-Offloading sowie anderen Funktionen für DPU-Einsatzzwecke [13].

Linux 5.16 brachte vor einem Jahr FUTEX2 als Erweiterung von FUTEX für Gamer in den Kernel. Das Akronym steht für Fast Userspace Mutual Exclusion und dient zur Synchronisation der zu einem Prozess gehörenden Threads. Mit dem Syscall »sys_futex_waitv()« verbrauchen Games weniger CPU-Zyklen, selbst die Frame-Rate steigt in manchen Spielen. Der System Call hilft bei Wine und Proton, die Semantik des Windows-Kernels zu emulieren, native Spiele-Engines profitieren ebenfalls davon. Den Syscall »sys_futex_waitv()« ergänzen nun »sys_futex_wake()«, »sys_futex_wait()« und »sys_futex_requeue()«. Für die geplante NUMA-Erweiterung für FUTEX2 wurde ein erstes Flag implementiert [14].

Das bei Facebook entwickelte und mit Kernel 5.1 eingeführte Syscall-Interface »io_uring« erhält mit Linux 6.7 ebenfalls FUTEX-Unterstützung. Bei »io_uring« handelt es sich um eine asynchrone I/O-API für Linux. Sie erlaubt es Programmen, mittels des Einsatzes von Ringpuffern eine Datenübertragung anzustoßen und andere Dinge zu erledigen, während sie läuft. Die Futex-Unterstützung in »io_uring« hilft dabei, Blockaden in gleichzeitig laufenden Programmen zu vermeiden.

Virtualisierung

Die Kernel-based Virtual Machine (KVM [15]) ermöglicht über den Schalter »CONFIG_KVM_MAX_NR_VCPUS« das Handling von bis zu 4096 vCPUs, während der Standard 1024 vCPUs beträgt. Den Hypervisor unterstützt seit Linux 6.7 die chinesische CPU-Befehlssatz-Architektur LoongArch. Der neue Kernel bringt zudem ein weiteres Patchset für die Bereitstellung von IOMMU Shared Virtual Addressing (SVA) auf AMD-Plattformen. IOMMU Shared Virtual Addressing ermöglicht die gemeinsame Nutzung von Prozessadressräumen mit Geräten. Auf RISC-V unterstützt KVM jetzt Erweiterungen wie Smstateen und Zicond.

In Sachen Sicherheit beherrscht der neue Kernel die TCP Authentication Option (TCP-AO), die die TCP MD5 Signature Option von RFC 2385 ablösen soll. Der in RFC 5925 [16] spezifizierte neue Mechanismus beschreibt die Verwendung von stärkeren Message Authentication Codes (MACs), schützt vor Wiederholungen auch bei langlebigen TCP-Verbindungen und liefert mehr Details über die Verbindung mit TCP-Verbindungen als TCP-MD5 [17]. Alle weiteren Neuerungen von Linux 6.7 lesen Sie bei Interesse auf der Webseite Kernel Newbies nach [18].

Fazit und Ausblick

Kernel 6.7 durfte während der Weihnachtsfeiertage 2023 eine Extrarunde drehen, die Kernel-Entwickler erhielten damit dringend benötigte Zeit zum Entspannen. Das neue Jahr startet deshalb mit einem an Neuerungen reichen Kernel 6.7, der für viele Anwender als Höhepunkt die lange erwartete Integration von Bcachefs als neues Dateisystem bringt.

Kernel 6.8 hatte dagegen einen schweren Start. Die zweite Woche für Einreichungen brachte für Linus Torvalds in Oregon einen Wintersturm, der ihn für den größten Teil der Woche ohne Strom und Internet ausharren ließ. Dennoch konnte er die verlorene Zeit aufholen und Linux 6.8-rc1 pünktlich am 21. Januar 2024 veröffentlichen [19]. Während der Kernel-Meister von der Welt abgeschnitten war, flammte auf der Kernel-Mailing-Liste eine bereits vor sechs Jahren begonnene Diskussion frisch auf, in der es darum geht, den Linux-Kernel auf modernen C++-Code umzustellen [20]. (uba)

Infos

  1. Ankündigung: https://lore.kernel.org/lkml/CAHk-=widprp4XoHUcsDe7e16YZjLYJWra-dK0hE1MnfPMf6C3Q@mail.gmail.com/
  2. Btrfs: https://lore.kernel.org/lkml/cover.1698679287.git.dsterba@suse.com/
  3. “Meteor Lake”: https://lore.kernel.org/dri-devel/ZTFDFSbd%2FU7YP+hI@tursulin-desk/T/#u
  4. “Lunar Lake”: https://lore.kernel.org/dri-devel/87r0m00xew.fsf@intel.com/
  5. GSP: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e70703890b2586bc3567365d391c260d23fb7a94
  6. Seamless Boot: https://lists.freedesktop.org/archives/amd-gfx/2023-September/098550.html
  7. Itanium: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1e0c505e13162a2abe7c984309cfe2ae976b428d
  8. 32-Bit-Emulation: https://lore.kernel.org/lkml/ZT0OqhIh%2F7c9IOYU@gmail.com/
  9. TDX-Patch: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8999ad99f4cb19638d9ecb8017831f9a0ab8dc3d
  10. CC: https://www.ibm.com/de-de/topics/confidential-computing
  11. Milk-V Pioneer: https://milkv.io/pioneer
  12. Patchset v4: https://lore.kernel.org/lkml/cover.1696426805.git.unicorn_wang@outlook.com/
  13. SoCs-Patchset: https://lore.kernel.org/lkml/263c2cf0-c35a-4d3c-85b3-fcb692cbfd40@app.fastmail.com/
  14. FUTEX2: https://lore.kernel.org/lkml/ZTzwTaf1iTnCHwJM@gmail.com/
  15. KVM: https://lore.kernel.org/lkml/20231102172917.142863-1-pbonzini@redhat.com/
  16. RFC 5925https://docs.kernel.org/networking/tcp_ao.html
  17. TCP-AO-Patch: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7fe0e38bb669
  18. Kernel Newbies: https://kernelnewbies.org/Linux_6.7
  19. Linux 6.8-rc1: https://lkml.org/lkml/2024/1/21/223
  20. C++-Debatte: https://lore.kernel.org/lkml/3465e0c6-f5b2-4c42-95eb-29361481f805@zytor.com/
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