20 Jahre lang pflegten die Entwickler die Echtzeitunterstützung außerhalb des Mainline-Kernels. Jetzt avanciert sie mit Linux 6.12 zum offiziellen Teil des Betriebssystemkerns.
Linux 6.12 erschien am 17. November als der letzte Kernel des Jahres 2024. Erwartungsgemäß kürte ihn Greg Kroah-Hartman Anfang Dezember zum nächsten LTS-Kernel. Linux 6.12 bringt 13 344 Änderungen in den Mainline-Kernel ein. Es arbeiteten 2074 Entwickler am Gelingen mit, 335 davon leisteten ihren ersten Beitrag zum Kernel – ein neuer Rekord. Obwohl die Commit-Zahlen eher auf einen durchschnittlichen Kernel hindeuten, zeigt sich Linux 6.12 prall gefüllt mit interessanten neuen Funktionen und sinnvollen Erweiterungen.
Kernel-Aufreger 2024
Die Kernel-Entwicklung im Jahr 2024 kam nicht ohne Dispute einerseits und staatliche Einflussnahme andererseits aus, um nur einige Aufreger zu nennen. Streit gab es zwischen Linus Torvalds und Kent Overstreet, dem Entwickler des Next-Gen-Dateisystems Bcachefs, das mit Kernel 6.7 in Mainline einzog. Es könnte diesen Status aber bald wieder verlieren. Bei der Auseinandersetzung ging es um Zweifel an der Teamfähigkeit Overstreets und um die Art, wie er seine Commits einreicht. Overstreet rechtfertigte seine Vorgehensweise in einem langen Beitrag und stellte darin auch etablierte Verfahren der Kernel-Entwicklung infrage [1]. Die Mitglieder des Code of Conduct im Kernel sperrten Overstreet, der fünf Prozent von Linux 6.12 im Alleingang bewältigt hat, wegen Fehlverhaltens für Kernel 6.13 komplett.
Kritik mussten Torvalds und die Kernel-Gemeinschaft wegen der Entfernung von zwölf russischen Programmierern von der offiziellen Liste der Kernel-Entwickler einstecken. Allerdings blieb Torvalds bei diesem Schritt aufgrund der Executive Order 14071 von US-Präsident Joe Biden aus dem Jahr 2022 [2] kaum Spielraum: Die offiziell ausgeschlossenen russischen Entwickler oder ihre Arbeitgeber standen wohl auf der SDN-Liste (Specially Designated Nationals) der US-Ausländerbehörde OFAC. Diese Behörde veröffentlicht regelmäßig eine Aufstellung ausländischer Personen und Unternehmen, die gegen die US-Sanktionen unter anderem gegen Russland, Syrien oder den Iran verstoßen haben. Die Entwicklung des Linux-Kernel kann sich der Weltpolitik nicht entziehen. Kritisieren darf man aber die zunächst sehr minimalistische Kommunikation Torvalds in dieser Angelegenheit [3].
Bei den Rust-Kernel-Entwicklern gab es ebenfalls Aufregung. Die gipfelte im Rücktritt des bei Microsoft beschäftigten Rust-Entwicklers Wedson Almeida Filho vom Projekt Rust for Linux. Er gab zu Protokoll, ihm fehle der Enthusiasmus, sich mit dem “nichttechnischen Blödsinn” und dem “Bikeshedding” einiger C- und C++-Entwickler in der Diskussion auseinanderzusetzen [4]. Der Hintergrund: Seit 2020 gibt es Anstrengungen, die speichersicherere Programmiersprache Rust im Kernel zu etablieren – doch das gefällt nicht allen. Auch außerhalb des Kernels gibt es nicht nur Zustimmung zu der Art, wie Rust-Code in den Kernel einfließt. Einer der lautstärksten Kritiker ist der bekannte Entwickler Drew DeVault [5].
Die Ärgernisse waren damit allerdings noch nicht erschöpft. In gewohnt direkter Manier reagierte Torvalds auf die geplante Einführung der Klassifizierung der Mikroarchitektur für AMD64 oder x86_64, die Compiler-Entwickler bei Red Hat 2020 entworfen hatten. Die Benennung der Hardwarefunktionen nach Klassen wie v2, v3 und v4 hält Torvalds für kontraproduktiv: Sie entspricht seiner Ansicht nach nicht der Komplexität heutiger Hardware. Der Kernel-Chef bevorzugt das etablierte CPUID-Modell [6] und formulierte dementsprechend eine drastische Absage [7] an Red Hats Definition.
In Echtzeit
Neben den üblichen Aktualisierungen zur Unterstützung aktueller und kommender CPUs und GPUs stechen zwei Neuerungen am Kernel 6.12 heraus. Dabei geht es um zum einen um Echtzeitunterstützung und zum anderen um einen neuen Extensible Scheduler, der eigentlich bereits mit Linux 6.11 erscheinen sollte.
Real-Time-Support für den Kernel existierte in der Form des PREEMPT_RT-Patchsets als Out-of-Tree-Patches bereits seit 2005. Die Patches taten Dienst in Echtzeitbetriebssystemen (RTOS) für zeitkritische Anwendungen in der Medizin, in der Robotik, im Flugwesen sowie bei der Audio- und Videoproduktion. Es dauerte fast 20 Jahre, bis Echtzeit-Linux, das im Sinne der Erfinder zeitkritische Aufgaben mit Präzision und Zuverlässigkeit erledigt, in den Mainline-Kernel einzog. Linux sollte damit jetzt in der Lage sein, zuverlässig Antwortzeiten von 100 Mikrosekunden zu garantieren (Abbildung 1).

Abbildung 1: Thomas Gleixner überreicht Linus Torvalds beim Kernel Summit in Wien den Code des Patchsets des PREEMPT_RT-Supports in ausgedruckter Form mit Goldpapier und Schleife. Quelle: Thorsten Leemhuis
Die zweite herausragende Neuerung betrifft den bereits für den Kernel 6.11 angekündigten Extensible Scheduler Sched_ext. Torvalds hatte die Aufnahme des 14 000 Zeilen umfassenden Patches auf Version 6.12 verschoben. Die neue Scheduler-Klasse weckt hohe Erwartungen, da sie die Implementierung von Scheduling-Richtlinien in Form benutzerdefinierter CPU-Scheduling-Algorithmen als eBPF-Programme (Extended Berkeley Packet Filter) ermöglicht [8]. eBPF ermöglicht, Programme zur Laufzeit aus dem Userspace in den Kernel zu laden. Das ermöglicht laut Jonathan Corbet von LWN ein deutlich anderes Scheduler-Verhalten, als es bislang möglich war.
Der EEVDF-Scheduler (Earliest Eligible Virtual Deadline First), der mit Linux 6.6. im Kernel landete und den CFS-Scheduler (Completely Fair Scheduler) ablöst, gilt mit Kernel 6.12 nun als komplett [9]. Zudem gibt es eine sinnvolle Erweiterung des kürzlich mit Linux 6.10 eingeführten Blue Screen of Death bei vom DRM-Treiber verursachten Kernel Panics: Ein optionaler in Rust geschriebener Panic-Screen mit QR-Code erleichtert die Erfassung der oft umfangreichen Informationen [10].
Grafik und CPUs
Der AMDGPU-Treiber bringt unter anderem Verbesserungen für DisplayPort Multi-Stream Transport (DP MST). Weitere Patches initialisieren die Prozessisolierung im AMDGPU-Kernel-Grafiktreiber. Davon profitieren zunächst GFX 9.4.3 und 9.4.4, weitere GPUs sollen später hinzukommen. Die Patches aktivieren den Prozessisolierungsmodus, der den Zugriff auf den Grafikblock zwischen Prozessen serialisiert. Ist er aktiv, läuft zwischen den einzelnen Prozessen ein Cleaner-Shader, der den LDS (Local Data Store) und die GPRs (General Purpose Registers) des Shaders löscht [11]. Für den bevorstehenden Start von RDNA 4/GFX12 mit den Grafikkarten Radeon RX 8600 und 8800 hat AMD weiteren Code abgeliefert [12].
Der Intel-Xe2-Grafik-Support für “Lunar-Lake”-CPUs und die “Battlemage”-Grafikkarten ist mit Kernel 6.12 standardmäßig aktiviert. Unterstützt werden die Notebooks der Core-Ultra-200-Serie sowie die GPUs der kommenden diskreten Intel-Grafikkarten [13]. Zudem meldet der Intel-Grafiktreiber mit Linux 6.12 neben Energie-, Leistungs- und Spannungsmetriken endlich auch die Lüftergeschwindigkeit [14]. Für Intel “Panther Lake” hält HDMI Audio Support Einzug in den Kernel. “Panther-Lake”-Kerne und “Diamond Rapids”, die Xeon-P-Core-Prozessoren der nächsten Generation, erhielten initial ihre künftigen Modell-IDs.
Für RISC-V gibt es mit dem neuen Kernel zusätzliche ISA-Erweiterungen und Kernel-Funktionen. Dazu zählen die bessere Handhabung der Randomisierung des Kernel-Adressraumlayouts sowie die Aktivierung der Berichterstattung über generische CPU-Schwachstellen [15]. Letztere findet sich bei anderen Architekturen üblicherweise unter »/sys/devices/system/cpu/vulnerabilities/«. Generell wurden die Idle-States von CPUs durch ein aktualisiertes Cpuidle-Tool aufgewertet, das nun detailliertere Informationen zu Energiesparzuständen liefert.
Bei den ARM-SoCs gibt es erstmals Unterstützung für den Broadcom BCM2712, der den Raspberry Pi 5 befeuert. Noch bedarf es weiteren Codes, um die gesamte Funktionalität anzubieten. Dem Qualcomm Snapdragon 414 haben sich die Entwickler ebenfalls gewidmet. Dadurch landen drei weitere Snapdragon-Notebooks sowie sieben Smartphones auf der Liste der kompatiblen Geräte [16].
Dateisysteme
Der für Linux 6.13 wegen Unstimmigkeiten mit anderen Kernel-Entwicklern gesperrte Kent Overstreet hat für den Kernel 6.12 ein Patchset eingereicht. Er hofft darauf, die Markierung von Bcachefs als Experimental im Jahr 2025 entfernen zu können [17]. XFS erreicht mit Linux 6.12 ein seit 16 Jahren verfolgtes wichtiges Ziel: Änderungen am Code für die Blockgröße des Virtual File System ermöglichen jetzt Blockgrößen, die jene der Page Size des Systems (LBS) übersteigen. Künftig lassen sich die Fortschritte bei den Blockgrößen des VFS vermutlich auch bei anderen Dateisystemen aktivieren [18].
NFS erfuhr Leistungssteigerungen durch die Einbindung der LOCALIO-Erweiterung. Über dieses Protokoll lässt sich ermitteln, ob sich Client und Server auf demselben Host befinden. Ist das der Fall, lässt sich das Network-RPC-Protokoll (Remote Procedure Call) umgehen, was zu erheblich höheren Transferraten führt. Dieses Szenario greift beispielsweise bei containerisierten Arbeitslasten, die auf demselben Server laufen wie der NFS-Daemon zur Bereitstellung des Speichers [19].
Die Integration von Rust im Kernel machte Fortschritte bei der Unterstützung der Handhabung von CPU-Mitigations. Retpoline, Straight Line Speculation (SLS) und Rethunk werden nun von Rust-Code gehandhabt. Des Weiteren wurden die Unterstützung für den Kernel Address Sanitizer (KASAN), die Kernel Control Flow Integrity (KCFI) und die Shadow Call Sanitizers in Rust umgesetzt [20].
Fazit und Ausblick
Linux 6.12 bewegt sich von der Größe her im oberen Mittelfeld, bringt aber einige gewichtige Entwicklungen zu den Anwendern. Neben dem Mainlining des PREEMPT_RT-Patchset betrifft das vor allem den Extensible Scheduler Sched_ext sowie die initiale Unterstützung für den Raspberry Pi 5. Alle Neuerungen zu Linux 6.12 fasst wie immer die Kernel-Newbies-Webseite [21] zusammen.
Mit der Freigabe von Linux 6.12 öffnete sich auch das zweiwöchige Merge-Fenster für den Nachfolger Linux 6.13. Der erste Kernel des neuen Jahres wird Ende Januar 2025 erwartet. Er bringt unter anderem Echtzeitfähigkeiten für die Loongarch-Architektur. Der Code des Dateisystems ReiserFS entfällt aus dem Kernel, was ihn um rund 32 800 Zeilen erleichtert [22]. (uba)
Infos
- Kent Overstreet: https://www.patreon.com/posts/116412665
- Executive Order 14071: https://en.wikipedia.org/wiki/Executive_Order_14071
- Weltpolitik: https://linuxnews.de/vertiefende-informationen-zur-entfernung-russischer-entwickler-aus-der-maintainer-liste-des-kernels/
- Rust: https://lore.kernel.org/lkml/20240828211117.9422-1-wedsonaf@gmail.com/
- Drew DeVault: https://drewdevault.com/2024/08/30/2024-08-30-Rust-in-Linux-revisited.html
- CPUID: https://de.wikipedia.org/wiki/CPUID
- Absage an Red Hat: https://lore.kernel.org/lkml/CAHk-=wh_b8b1qZF8_obMKpF+xfYnPZ6t38F1+5pK-eXNyCdJ7g@mail.gmail.com/
- Sched_ext: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=fa48e8d2c7b5
- EEVDF: https://lwn.net/Articles/969062/
- Panic Screen: https://lore.kernel.org/dri-devel/20240829144654.GA145538@linux.fritz.box/T/#u
- AMD Process Isolation: https://lists.freedesktop.org/archives/amd-gfx/2024-August/112521.html
- RDNA 4: https://lists.freedesktop.org/archives/dri-devel/2024-August/467040.html
- Intel-Xe2-Support: https://lore.kernel.org/dri-devel/wd42jsh4i3q5zlrmi2cljejohdsrqc6hvtxf76lbxsp3ibrgmz@y54fa7wwxgsd/T/#u
- Intel-Fanspeed: https://lore.kernel.org/dri-devel/Ztrfr_Wuurfa-3Rv@jlahtine-mobl.ger.corp.intel.com/
- RISC-V-Support: https://lore.kernel.org/lkml/mhng-664fc7b8-c82b-414e-9c10-8fe7840f2c76@palmer-ri-x1c9/
- ARM-Support: https://lore.kernel.org/lkml/a40b4b3a-5d61-4bef-b367-745ba058be9e@app.fastmail.com/
- Neues in Bcachefs: https://lore.kernel.org/lkml/dtolpfivc4fvdfbqgmljygycyqfqoranpsjty4sle7ouydycez@aw7v34oibdhm/
- Neues in XFS: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=171754c3808214d4fd8843eab584599a429deb52
- Neues in NFS: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=684a64bf32b6e488004e0ad7f0d7e922798f65b6
- Rust-Funktionen: https://lore.kernel.org/lkml/20240924221023.197610-1-ojeda@kernel.org/
- Kernel Newbies: https://kernelnewbies.org/Linux_6.12
- ReiserFS: https://linuxnews.de/reiserfs-wird-aus-dem-kernel-entfernt/






