Nach zwei Monaten Entwicklung stellte Linus Torvalds die Veröffentlichung des Linux-Kernels 7.0 vor. Zu den bemerkenswertesten Änderungen gehören: Regeln für den Einsatz von KI-Assistenten, die Integration von Rust in die Kernfunktionen, eine Verbesserung der Swapping-Leistung, die standardmäßige Aktivierung des PREEMPT_LAZY-Modus, Unterstützung für Filter bei io_uring-Operationen, ein neues Dateisystem Nullfs, die fserror-Infrastruktur, XFS-Monitoring-Tools, Unterstützung für Remapping in Btrfs, die standardmäßige Aktivierung von NFS-Version 4.1, die Integration eines post-quanten Verschlüsselungsalgorithmus ML-DSA und die Aktivierung von AccECN im Netzwerk-Subsystem, sowie die anfängliche Unterstützung für WiFi 8.
Die Version 7.0 wurde vergeben, weil in der 6.x-Reihe genügend Releases angesammelt wurden, um die erste Ziffer der Versionsnummer zu ändern (damals wurde das Release 6.0 direkt nach 5.19 veröffentlicht). Die Änderung der Nummerierung erfolgt aus ästhetischen Gründen und ist ein formeller Schritt, um das Unbehagen aufgrund der Ansammlung einer großen Anzahl von Releases in der Serie zu beseitigen.
In die neue Version wurden 15624 Korrekturen von 2477 Entwicklern aufgenommen, die Patch-Größe beträgt 56 MB (Änderungen betrafen 18053 Dateien, 704060 Codezeilen wurden hinzugefügt, 278132 Zeilen wurden entfernt). Im vorherigen Release gab es 15657 Korrekturen von 2237 Entwicklern, die Patch-Größe betrug 52 MB. Etwa 51 % aller in 7.0 vorgenommenen Änderungen beziehen sich auf Gerätetreiber, ca. 11 % der Änderungen stehen im Zusammenhang mit der Aktualisierung architekturspezifischen Codes, 14 % betreffen den Netzwerk-Stack, 5 % die dateisysteme und 3 % die internen Subsysteme des Kerns.
Die wichtigsten Neuerungen im Kernel 7.0 (1, 2, 3):
- Festplattensubsystem, Ein-/Ausgabe und Dateisysteme
- Die Infrastruktur fserror wurde implementiert und eine API hinzugefügt, um Informationen über Eingabe-/Ausgabefehler und die Beschädigung von Metadaten beim Arbeiten mit Dateien zu erhalten. Die vorgeschlagene Infrastruktur vereinheitlicht in den Dateisystemen die Übermittlung von Fehlermeldungen an den Benutzerspace über den fsnotify-Mechanismus.
- In XFS wurden neue Möglichkeiten zum Überwachen des Zustands des Dateisystems aus dem Benutzerspeicherraum hinzugefügt. Die ioctl-Operation XFS_IOC_HEALTH_MONITOR wurde vorgeschlagen, die einen Dateideskriptor zurückgibt, über den Informationen zu Fehlern, die mit der Beschädigung von Metadaten oder dem Auftreten von Eingabe-/Ausgabefehlern verbunden sind, abgerufen werden können, sowie zur Verfolgung von Zustandsänderungen des FS, wie z.B. Unmounting und Shutdown. Zusätzlich wurde ein über systemd verwalteter Hintergrundprozess xfs_healer vorgeschlagen, der Ereignisse über den Zustand des FS aus dem Benutzerspeicherraum verarbeitet und bei Bedarf automatisch Wiederherstellungsverfahren startet.
- Im Dateisystem Btrfs wurde experimentelle Unterstützung für die Struktur "Remap-Baum" (remap tree) hinzugefügt, die in Zukunft als Zwischenschicht bei der Durchführung von Eingabe-/Ausgabeoperationen eingesetzt werden kann. Der Sinn der hinzugefügten Funktion besteht darin, dass nach dem Verschieben von Daten auf dem Speicher anstelle der Aktualisierung aller mit diesen Daten verbundenen Strukturen in der zusätzlichen Struktur "Remap-Baum" alte und neue Datenadressen gespeichert werden, wobei die Adressen bei Zugriffen auf die Daten umgeschrieben werden. Der neue Ansatz wird als zuverlässiger und flexibler präsentiert und vereinfacht zudem die künftige Erweiterung der Funktionen von Btrfs.
- In Btrfs wird Unterstützung für Direct I/O in Situationen implementiert, in denen die Blockgröße die Seiten Größe im Speicher des Systems übersteigt.
- In das System wurde ein neues Dateisystem "Nullfs" aufgenommen, das als Platzhalter für das Root-FS verwendet werden kann. Das Dateisystem Nullfs ist immer leer, enthält keine Daten und unterstützt keine Änderungen. Der Zweck von Nullfs ist die Nutzung als Ausgangs-FS zur Vereinfachung des Systemstartprozesses – über Nullfs werden dann andere FSs gemountet und der Systemaufruf pivot_root() wird verwendet, um das Root-FS umzuschalten, anstatt den Inhalt von initramfs zu löschen und das damit verbundene Root-FS zu verwenden.
- Die Aktualisierung von Informationen über die Änderungszeit von Dateien im nicht blockierenden Modus wurde implementiert. Früher gab der Aufruf file_update_time_flags() mit dem Flag IOCB_NOWAIT den Fehler "-EAGAIN" zurück, was die Verwendung von Direct-Write-Operationen im nicht blockierenden Modus verhinderte.
- In den Dateisystemen wurde die Unterstützung für benachrichtigende Sperren (lease) als eine separate Option übertragen. Standardmäßig ist dieser Mechanismus aufgrund von Problemen mit Dateisystemen, die ursprünglich nicht für dessen Anwendung ausgelegt sind, jetzt nicht aktiviert. Beispielsweise wird er von den Dateisystemen 9p und cephfs nicht unterstützt.
- Im Dateisystem EROFS (Extendable Read-Only File System), das für die Verwendung auf Partitionen gedacht ist, die nur im Nur-Lese-Modus zugänglich sind, wird standardmäßig der LZMA-Algorithmus zur Komprimierung verwendet. Optional sind die Algorithmen DEFLATE und Zstandard verfügbar, die nicht mehr als experimentell gekennzeichnet sind. Es wurde die gemeinsame Nutzung von Einträgen im Seiten-Cache (page-cache) für identische Dateien in verschiedenen EROFS-Dateisystemen implementiert.
- Der Modus laptop_mode, der den Energieverbrauch durch das Verzögern und Zusammenfassen von Schreibvorgängen auf die Festplatte reduziert, um die Zeit, die die Festplatte im Schlafmodus verbringt, zu verlängern und die Anzahl der Aufwachvorgänge zu verringern, wurde entfernt. Der Modus hat an Relevanz verloren, da in modernen mobilen Geräten Festplatten von Solid-State-Laufwerken verdrängt werden.
- Das Dateisystem F2FS wurde auf die Verwendung großer Speicherblätter (large folios) umgestellt.
- Die Arbeit am Treiber ntfs3, der von der Firma Paragon Software entwickelt wird, wurde wieder aufgenommen. Unterstützung für Dateioperationen basierend auf iomap wurde hinzugefügt, die Optionen llseek SEEK_DATA/SEEK_HOLE wurden implementiert und der Modus delalloc für die verzögerte Zuweisung von Blöcken wurde hinzugefügt. In der Mailingliste der Kernel-Entwickler wurde im Februar die Aufnahme einer neuen Implementierung von NTFS — ntfsplus — genehmigt, die als Ersatz für ntfs3 entwickelt wurde.
- Standardmäßig ist bei der Erstellung die Version 4.1 des NFS-Protokolls (CONFIG_NFS_V4_1) aktiviert. Der Export spezifischer Pseudo-Dateisysteme wie pidfs und nsfs über NFS ist blockiert. In NFSD wurde eine experimentelle Funktion zur Verwendung von POSIX ACL implementiert und die Unterstützung für die dynamische Anpassung des Thread-Pools je nach Last hinzugefügt.
- Speicher und Systemdienste
- Die offiziellen Regeln für die Verwendung von KI-Assistenten und die Einbeziehung automatisch generierten Inhalts in den Kern wurden genehmigt. Bei der Übermittlung des generierten Codes ist es vorgeschrieben, diesen durch Angabe des verwendeten KI-Assistenten über das Tag „Assisted-by“ zu kennzeichnen. KI-Assistenten ist es untersagt, das Tag „Signed-off-by“ hinzuzufügen — die Person, die den Patch übermittelt, gilt als Autor, trägt die Verantwortung für die übermittelte Änderung und garantiert deren Qualität. Den Entwicklern ist vorgeschrieben, eine manuelle Überprüfung des durch KI erhaltenen Codes durchzuführen und die Übereinstimmung des Ergebnisses mit den Lizenzanforderungen zu überprüfen.
- Die Unterstützung für Rust wurde aus experimentellen in die Hauptfunktionen des Kerns übertragen. Die Unterstützung für Rust ist standardmäßig nicht aktiviert und führt nicht dazu, dass Rust zu den obligatorischen Build-Abhängigkeiten des Kerns gehört.
- Die Integration des Mechanismus „Swap Table“ in den Kern wurde abgeschlossen, der die Leistung des Paging verbessert. Die Beschleunigung wird durch die Verringerung des Wettbewerbs um den Zugriff auf den Paging-Cache, eine effizientere Suche im Cache und die Verringerung der Fragmentierung erreicht. Der Backend auf der Grundlage von Swap Table wird zum Caching des Paging verwendet, anstelle des Backends XArray, und erlaubte im Test redis-benchmark mit BGSAVE eine Steigerung der verarbeiteten Anfragen um 22%.
- Die Unterstützung für die in Clang 22 eingeführte Erweiterung zur Analyse der Thread-Sicherheit wurde hinzugefügt, die es ermöglicht, potenzielle Race-Conditions und Fehler, die durch falsches Setzen von Sperren verursacht werden, während der Kompilierung zu erkennen. Die Erweiterung bietet eine Reihe von Attributen wie GUARDED_BY(…), REQUIRES(…), RELEASE(…) und ACQUIRE(…), mit denen gesperrte Funktionen markiert und der Geltungsbereich von Sperren (Kontext) definiert werden kann. Während der Kompilierung wird die Korrektheit der Anwendung von Synchronisationsprimitiven wie Mutexen basierend auf der Bewertung der Aktivität oder Inaktivität des jeweiligen Kontexts überprüft.
- Im Systemaufruf open_tree wurde das Flag OPEN_TREE_NAMESPACE hinzugefügt, um die Konfiguration von isolierten Containern zu vereinfachen und den Start von Containern auf Systemen mit vielen Einhängepunkten zu beschleunigen. Analog zu OPEN_TREE_CLONE kopiert das neue Flag nur den angegebenen Baum der Einhängepunkte (mount tree), gibt jedoch anstelle eines lokalen Dateideskriptors einen Dateideskriptor im neuen Namensraum der Einhängepunkte zurück, in dem der kopierte Baum über einer Kopie des echten Root-Dateisystems gemountet wird. Das Flag OPEN_TREE_NAMESPACE wird benötigt, um von der separaten Ausführung der unshare(CLONE_NEWNS)- und pivot_root()-Operationen, die bei der Erstellung von Containern verwendet werden, wegzukommen.
- Im Systemaufruf rseq wurde ein Mechanismus zur Erweiterung von Zeitscheiben (time slice) hinzugefügt, der es ermöglicht, zusätzliche CPU-Zeit für die ununterbrochene Ausführung von kritischen Abschnitten zu erhalten. Ziel ist es, eine Unterbrechung des kritischen Abschnitts durch den Scheduler mit gesetzt Blockierung zu vermeiden, was zur Übergabe der Kontrolle an andere Threads führt, die diese Ressource verwenden, für die die Blockierung weiterhin gesetzt ist. Die Erweiterung der Zeitscheibe erfolgt ohne zusätzliche Kosten, jedoch auch ohne strenge Garantien, die bei einer vollständigen Prioritätsregelung gegeben sind.
- Für die Architekturen arm64, loongarch, powerpc, riscv, s390 und x86 wurde der Preemption-Modus im Scheduler standardmäßig von PREEMPT_NONE auf PREEMPT_LAZY geändert. Die Anzahl der möglichen Modi wurde von vier auf zwei reduziert — PREEMPT_FULL und PREEMPT_LAZY (die Modi PREEMPT_NONE und PREEMPT_VOLUNTARY bleiben nur für Architekturen erhalten, die PREEMPT_FULL und PREEMPT_LAZY nicht unterstützen). Der Modus PREEMPT_LAZY wendet das Modell der vollständigen Preemption (PREEMPT_FULL) für Echtzeitarbeiten (RR/FIFO/DEADLINE) an, verzögert jedoch die Preemption regulärer Arbeiten (SCHED_NORMAL) bis zur Tickgrenze. Die verursachte Verzögerung führt zu einer Reduzierung der Fälle, in denen Inhaber von Lock-Objekten vorzeitig unterbrochen werden, was die Leistung den Konfigurationen annähert, die das Modell der freiwilligen Preemption (voluntary preemption) verwenden; d.h. PREEMPT_LAZY ermöglicht es, die Möglichkeiten der vollständigen Preemption für Echtzeitarbeiten beizubehalten, minimiert jedoch die Einbußen bei der Leistung für reguläre Arbeiten.
Die Aktivierung von PREEMPT_LAZY hat zu einem erheblichen Rückgang der Leistung von PostgreSQL auf ARM64-Systemen geführt, der die Leistung halbiert. Um den Leistungsabfall zu beheben, wurde Entwicklern von PostgreSQL empfohlen, die Option PR_RSEQ_SLICE_EXTENSION zu aktivieren, um die Wahrscheinlichkeit der Verdrängung des Sperrinhabers zu verringern.
- Der Transfer von Änderungen aus dem Rust-for-Linux-Zweig, die die Verwendung der Sprache Rust als zweite Sprache für die Entwicklung von Treibern und Kernelmodulen betreffen, wurde fortgesetzt. Dank der zuvor integrierten Bibliothek „syn“, die das Schreiben komplexer Makros erleichtert, konnte der Umfang des Rust-Codes im Kernel durch Vereinfachung der Definitionen bestehender prozeduraler Makros reduziert werden. Die Möglichkeiten der Bibliotheken kernel, macros und pin-init wurden erweitert.
- Im asynchronen Ein-/Ausgabesystem io_uring wurde eine Option zur Nutzung nicht-zirkulärer Warteschlangen (non-circular submission queue) hinzugefügt, die effizienter im Cache verwaltet werden, wenn die Ausführung einer Anfrage vor dem Rückkehr aus dem Systemaufruf abgeschlossen ist.
- Im eBPF-Subsystem wurde im BTF-Mechanismus (BPF Type Format), der Informationen zur Typprüfung im BPF-Pseudocode bereitstellt, eine binäre Suche zur Auffindung von Debug-Informationen implementiert, was die Effizienz beim Laden von BPF-Programmen erhöht hat. Außerdem wurde die Unterstützung für implizite Argumente beim Aufruf von kfunc (Kernel-Funktionen, die in BPF-Programmen genutzt werden können) hinzugefügt, die mit dem Flag KF_IMPLICIT_ARGS definiert sind.
- Der Code zur Unterstützung von initrd auf Basis von linuxrc wurde entfernt, da er seit langem als veraltet gilt. Die verbleibenden Implementierungen von initrd sollen bis 2027 entfernt werden. Stattdessen sollte initramfs verwendet werden (der Unterschied besteht darin, dass initrd die initiale Umgebung in einem Disk-Image platziert, während initramfs sie im Dateisystem platziert).
- Im Blockgerät zram, das zur komprimierten Speicherung des Swap-Bereichs im Arbeitsspeicher verwendet wird, wurde die Logik für den Umgang mit komprimierten Arbeitsspeicherseiten geändert, während Daten optional in den persistenten Speicher verschoben werden, wenn der verfügbare Arbeitsspeicher voll ist. Früher wurden die Arbeitsspeicherseiten vor dem Schreiben auf das physische Medium entpackt, jetzt werden sie komprimiert gespeichert, was die CPU-Belastung verringert und Energie spart, wenn das Gerät im Batteriebetrieb ist.
- Im Tool timerlat, das zur Messung von Verzögerungen bei der Arbeit des Task-Schedulers entwickelt wurde, wurde die Option „—bpf-action“ hinzugefügt, um BPF-Programme bei Überschreitung eines festgelegten Schwellenwerts zu starten.
- Im Trace-System ftrace wurde die Einstellung „bitmask-list“ hinzugefügt, um Bitmasken in lesbarer Form (in Form einer Bitliste anstelle einer hexadezimalen Zahl) auszugeben. In tracefs wurden Audit-möglichkeiten für Filter und Trigger hinzugefügt. Der Befehl „perf sched stats“ wurde hinzugefügt, um Statistiken über die Betriebsabläufe des Task-Schedulers zu sammeln und anzuzeigen.
- Es wurden Build-Optionen LOGO_LINUX_MONO_FILE, LOGO_LINUX_VGA16_FILE und LOGO_LINUX_CLUT224_FILE hinzugefügt, um die Datei mit dem Logo festzulegen, die beim Kernel-Start anstelle des standardmäßigen Tux-Pinguin-Logos angezeigt wird.
- Virtualisierung und Sicherheit
- Im System für asynchrone Ein-/Ausgabe io_uring wurde die Möglichkeit implementiert, BPF-Programme mit Filtern zu verknüpfen, die kontrollieren, was spezielle SQE (Submission Queue Entry)-Operationen (ähnlich Systemaufrufen in io_uring) tun können. Die hinzugefügte Funktion ist der Filterung von Systemaufrufen ähnlich. Filter können an bestimmten Aufgaben gebunden werden und werden beim Erzeugen anderer Prozesse nach einem fork()-Aufruf vererbt. Bei aktiven Filtern können hinzugefügte Filter nur zusätzliche Einschränkungen festlegen, jedoch bestehende nicht deaktivieren. Die implementierte Möglichkeit ermöglicht das Blockieren von Methoden zur Umgehung der Filterung von Systemaufrufen in Sandbox-Umgebungen, die auf der Ausführung ähnlicher Operationen beruhen, die in io_uring bereitgestellt werden.
- In SELinux wurde die Möglichkeit zur Verwaltung des Zugriffs auf BPF-Token hinzugefügt, die es nicht privilegierten Prozessen ermöglichen, einige privilegierte Operationen mit BPF durchzuführen, z. B. BPF-Programme in den Kernel zu laden und Map-Strukturen zu erstellen.
- Die Unterstützung des digitalen Signaturverfahrens ML-DSA (CRYSTALS-Dilithium), das auf der Gittertheorie basiert und gegen das Knacken durch Quantencomputer resistent ist, wurde hinzugefügt. Es ist nun möglich, ML-DSA zur Authentifizierung von Kernel-Modulen zu verwenden.
- Die Möglichkeit, digitale Signaturen mit dem SHA-1-Algorithmus zur Signierung von Kernel-Modulen zu verwenden, wurde entfernt (die Unterstützung des Ladens signierter Module bleibt erhalten).
- Im Audit-Eintrag NETFILTER_PKT wurden die Felder ‘sport’ und ‘dport’ hinzugefügt, um die Netzwerkportnummern zu inspizieren, und nicht nur IP-Adressen.
- Für Systeme mit RISC-V-Architektur wurde die Unterstützung der Erweiterungen Zicfiss und Zicfilp implementiert, die Hardware-Funktionen für die Anwendung des CFI-Schutzes (Control Flow Integrity) bereitstellen. Dieser blockiert Verstöße gegen die normale Reihenfolge der Ausführung von Anweisungen (Control Flow) durch die Anwendung von Exploits, die die in der Speicher abgelegten Funktionszeiger verändern.
- Im Hypervisor KVM wurde die Möglichkeit geschaffen, Informationen über die Unterstützung der ERAPS-Erweiterung (Enhanced Return Address Predictor Security) durch den Prozessor an die Gastsysteme zu übermitteln. Dies ermöglicht es, auf einige CPU-Zustandsrücksetzoperationen beim Rückkehr zum Host zu verzichten. Darüber hinaus wurde die Unterstützung für die Zuordnung von Hardware zur Leistungsmessung (PMU, Performance Monitoring Unit) in Gastsystemen implementiert, was die Genauigkeit des Profilings im Vergleich zur Verwendung emulierter PMUs erhöht.
- Im Treiber für den Hypervisor Hyper-V wurde die Unterstützung der debugfs-Schnittstelle hinzugefügt, um Statistiken über die Funktionsweise des Hypervisors anzuzeigen.
- Netzwerksubsystem
- Die Erweiterung AccECN (Accurate Explicit Congestion Notification) ist nun standardmäßig aktiviert. Sie implementiert eine verbesserte Version der ECN-Erweiterung, die es Hosts bei Überlastung ermöglicht, IP-Pakete zu markieren, anstatt sie abzulehnen. Dadurch wird es möglich, den Beginn einer Stausituation in Kommunikationskanälen zu erkennen, ohne Pakete zu verlieren. Die ursprüngliche ECN-Erweiterung hat die Einschränkung, dass nur ein Überlastsignal pro Zyklus der TCP-Datenübertragung (RTT, Round-Trip Time, Versand von Anfrage und Empfang von Antwort) gesendet werden kann. AccECN hebt diese Einschränkung auf und ermöglicht dem Empfänger, dem Sender mehrere Überlastmarkierungen im Header des TCP-Pakets zu übermitteln. Die Algorithmen für das Überlastmanagement können diese Informationen nutzen, um präziser auf Überlastsituationen zu reagieren und auf eine drastische Reduzierung der Paketübertragung bei geringfügigen Überlastungen zu verzichten.
- Im Implementierungsalgorithmus zur Verwaltung von Netzwerkwarteschlangen wurde die Möglichkeit hinzugefügt, mehrere Warteschlangen zur Lastverteilung auf mehrere CPU-Kerne zu verarbeiten. Der CAKE-Algorithmus wird verwendet, um die negativen Auswirkungen der zwischenzeitlichen Pufferung von Paketen an Grenznetzwerken zu verringern und zielt darauf ab, die maximal mögliche Bandbreite und das minimalste Verzögerungsniveau selbst über langsame Kommunikationskanäle zu erreichen.
- In die VSOCK-Sockets, die zur Interaktion mit virtuellen Maschinen verwendet werden, wurde die Unterstützung für Netzwerk-Namensräume hinzugefügt.
- Eine erste Implementierung des zukünftigen Standards WiFi 8 (802.11bn, Ultra High Reliability WiFi) wurde hinzugefügt.
- Optimierungen wurden hinzugefügt, die die Verarbeitung von eingehenden UDP-Paketen um 12% steigern, getestet in einem 100-Gigabit-Netzwerk.
- Ausrüstung
- Im AMDGPU-Treiber wurde die Unterstützung für IP-Blöcke implementiert, die in neuen AMD-GPUs verwendet werden, wie SMUIO 15.x, PSP 15.x, IH 6.1.1/7.1, MMHUB 3.4/4.2, GC 11.5.4/12.1, SDMA 6.1.4/7.1/7.11.4 und JPEG 5.3.
- Im Nouveau-Treiber wurde die Frequenzregelung auf Tegra 186+-Systemen verbessert.
- Der i915-Treiber hat anfängliche Unterstützung für den Display-IP-Block Xe3p_LPD erhalten, der in Intel Nova Lake-P-Prozessoren verwendet wird.
- Die Arbeiten am drm-Treiber (Direct Rendering Manager) Xe für GPUs basierend auf der Intel Xe-Architektur, die in den Intel-Grafikkarten der Arc-Serie und der integrierten Grafik ab Tiger Lake-Prozessoren verwendet werden, wurden fortgesetzt. Ein Multi-Queue-Modus wurde hinzugefügt. Komponenten für die Diagnose von GPU-Hängern in Mesa wurden hinzugefügt. Unterstützung für den MERT-Mechanismus zur Verwaltung des Zugriffs auf GPU-Speicher wurde hinzugefügt.
- Die Integration der Nova-Treiberkomponenten für NVIDIA-GPUs, die mit GSP-Firmware ausgestattet sind und seit der NVIDIA GeForce RTX 2000-Serie auf der Turing-Mikroarchitektur verwendet werden, wurde fortgesetzt. Der Treiber ist in Rust geschrieben. In der neuen Version wurden Vorbereitungen für die Unterstützung von GPUs auf Basis der Turing-Mikroarchitektur getroffen und verschiedene interne Änderungen vorgenommen.
- Die Unterstützung für Controller und Peripheriegeräte mit einem multimodalen SPI (Serial Peripheral Interface) wurde hinzugefügt, das die Übertragung von Daten in mehreren parallelen Strömen ermöglicht.
- Ein Treiber für kombinierte Typ-C-Anschlüsse, die in Geräten mit Apple Silicon-Chips verwendet werden und USB3-, DP-AltMode- und Thunderbolt/USB4-Schnittstellen kombinieren, wurde hinzugefügt.
- Unterstützung für die Audiocontroller der Tegra238-Chips, Minisforum V3 SE, iBasso DC04U, Intel Nova Lake, Nova Lake S und Focusrite Forte wurde hinzugefügt.
- Unterstützung für ARM-Plattformen, SoC und Geräte: Arduino UnoQ, OrangePi 6 Plus, OrangePi CM5, Anbernic RG-DS, Realtek Kent, Qualcomm Kaanapali, Mediatek Ezurio, Facebook Anacapa, Microchip LAN9668, Khadas VIM1S, QNAP TS133, i.MX952, i.MX93, i.MX94, VHIP4 EvalBoard, TQ-Systems MBLS1028A, Agilex5, Radxa CM3J, Glymur, wurde hinzugefügt.
- Unterstützung für Smartphones und Tablets: Fairphone Gen 6 (SoC Qualcomm Milos/Snapdragon 7s Gen 3), Pixel 3/3 XL, Microsoft Surface Pro 11 wurde hinzugefügt.
Gleichzeitig hat die lateinamerikanische Stiftung für freie Software eine vollständig freie Kernel-Variante 7.0 - Linux-libre 7.0-gnu, die von Firmware- und Treiberkomponenten befreit ist, die nicht-freie Komponenten oder Codeabschnitte enthalten, deren Verwendung vom Hersteller eingeschränkt ist, erstellt. In der Version 7.0 wurde eine Bereinigung von Blobs des iwlwifi-Treibers durchgeführt. Der Bereinigungscode in den Treibern amdgpu, adreno, TI PRUeth, air_en8811h, ath12k, TI VPE, rtw8852b, rt1320, rt5575 SPI, tas2783, Intel catpt wurde aktualisiert. Die Namen der Blobs in dts-Dateien (Device Tree) für ARM-Chips wurden bereinigt.
Quelle: opennet.ru
