Release des Linux-Kernels 6.16

Nach zwei Monaten der Entwicklung hat Linus Torvalds die Veröffentlichung des Linux-Kernels 6.16 vorgestellt. Zu den bemerkenswertesten Änderungen gehören: ein Treiber zur Beschleunigung von OpenVPN, der Kexec HandOver-Mechanismus, standardmäßig aktivierte fünfschichtige Speichertabellen für x86, die Entfernung des DCCP-Protokolls, der Blocktreiber zloop, die Möglichkeit zur Übertragung von Core-Dumps über UNIX-Sockets, Unterstützung für atomare Schreibvorgänge in XFS, Offload-Verarbeitung von Audio für USB-Geräte, Optimierungen in Ext4, ein virtueller TPM (Trusted Platform Module)-Treiber, eine vollständige Implementierung von Device Memory TCP, Unterstützung für benannte Pipes in io_uring, Vorbereitungen zur Integration des DRM-Treibers von Asahi, der "usermode queue"-Mechanismus im AMDGPU-Treiber sowie Unterstützung für Intel TDE (Trusted Domain Extensions) und Intel APE (Advanced Performance Extensions).

In die neue Version wurden 15924 Korrekturen von 2145 Entwicklern aufgenommen, die Patchgröße beträgt 50 MB (die Änderungen betreffen 13793 Dateien, es wurden 655451 Codezeilen hinzugefügt und 316441 Zeilen gelöscht). Im vorherigen Release gab es 15945 Korrekturen von 2154 Entwicklern, die Patchgröße betrug 59 MB. Etwa 45 % aller in 6.16 dargestellten Änderungen beziehen sich auf Gerätetreiber, ca. 16 % der Änderungen sind auf Aktualisierungen des codespezifischen für Hardwarearchitekturen zurückzuführen, 13 % hängen mit dem Netzwerk-Stack zusammen, 4 % mit Dateisystemen und 3 % mit internen Untersystemen des Kernels.

Die wichtigsten Neuerungen im Kernel 6.16:

  • Festplattensubsystem, Ein-/Ausgabe und Dateisysteme
    • Der zloop-Treiber wurde hinzugefügt, um zonierte Block-Loopback-Geräte im Loop-Modus zu erstellen. Der Treiber emuliert den Betrieb herkömmlicher Blockgeräte, indem er mehrere Dateien aus dem bestehenden Dateisystem verwendet (je eine Datei zur Speicherung jeder Zone). Diese Möglichkeit kann nützlich sein, um Dateisysteme, Geräte-Mapper und Anwendungen auf die Unterstützung zonierter Geräte zu testen, die eine Zonenunterteilung von Blockgruppen oder Sektoren anwenden, in die nur sequentiell Daten hinzugefügt werden können, wobei die gesamte Gruppe von Blöcken aktualisiert wird.
    • Im Dateisystem XFS wurde die Unterstützung für atomare Schreibvorgänge großer Datenmengen implementiert – mehrere Blöcke können jetzt im atomaren Modus geschrieben werden (entweder werden alle Blöcke erfolgreich geschrieben, oder keiner der Blöcke wird geschrieben).
    • Im Ext4-Dateisystem wurde die Leistung des Mechanismus "fast commit" verbessert. Es wurde Unterstützung für große Speicherseiten (large folios) für normale Dateien hinzugefügt, was in durchgeführten Tests die Leistung bei intensivem sequenziellen Ein-/Ausgabe um 37 % gesteigert hat. Zudem wurde die Unterstützung für atomare Schreiboperationen, die mehrere Blöcke umfassen, hinzugefügt.
    • Im Treiber für das Dateisystem ext2 wurde die Unterstützung des DAX-Mechanismus, der den direkten Zugriff auf das Dateisystem ohne Seiten-Cache ermöglicht, als veraltet erklärt. Die Entfernung von DAX aus dem Treiber ext2 ist für Ende des Jahres geplant. Als Grund wird die Betrachtung desTreiber ext2 als stabile Referenzimplementierung erwähnt, in der die Verwendung spezifischer Funktionen, die nicht weit verbreitet sind, nicht akzeptabel ist.
    • Die Dateisysteme OrangeFS, UFS, BFS und OMFS wurden auf die Nutzung der neuen API zur Einbindung von Partitionen umgestellt.
    • In sysctl wurde die Einstellung vfs_cache_pressure_denom hinzugefügt, um die Anzahl der Einträge im "dentry"-Cache (interne Darstellung von Verzeichniselementen) unter Bedingungen von Speichermangel im System zu steuern. Je höher der Wert, desto mehr Einträge können aus dem Cache verdrängt werden (weniger Einträge verbleiben im Cache) bei Speichermangel.
    • Im Dateisystem Bcachefs wurde die Option "rebalance_on_ac_only" hinzugefügt, die das Durchführen von Rebalancing- und Hintergrundkomprimierungsoperationen bei Betriebssystemen mit Akkustromversorgung verbietet. Die Operationen zum Löschen von Snapshots und Geräten wurden beschleunigt. Der Speicherverbrauch beim Mounten im Nur-Lese-Modus wurde gesenkt. Es wurde die Möglichkeit hinzugefügt, einige Wiederherstellungsoperationen im Hintergrund zu starten, ohne die Arbeit mit dem Dateisystem zu unterbrechen.
    • Es wurde der Energieverwaltung erlaubt, selbstständig Dateisysteme und EFI-Variablen für Wartemodus und Schlafmodus zu frieren (wenn die Dateisysteme bereits durch den Benutzerraum-Handler eingefroren sind, erfolgt keine Wiederfrierung).
    • Die Möglichkeit, die Leistung von EROFS mithilfe des in Intel-Prozessoren integrierten Beschleunigers QAT (QuickAssist Technology) zu steigern, wurde hinzugefügt. Dieser bietet Mittel zur Beschleunigung von Berechnungen im Zusammenhang mit Kompression und Verschlüsselung.
    • In NFS wurde die maximale Größe für Datenpakete bei Lese- und Schreiboperationen von 1 auf 4 MB erhöht (standardmäßig auf 1 MB eingestellt, da nicht alle Clients eine größere Größe unterstützen).
    • Benutzern ohne Privilegien, die über CAP_SYS_ADMIN-Rechte in einem separaten Benutzer-Namespaces verfügen, jedoch keine erweiterten Berechtigungen im Root-Namespace haben, wurde die Möglichkeit eingeräumt, den fanotify-Mechanismus zur Überwachung von Änderungen im Dateisystem zu nutzen.
    • Für Dateisysteme, die das FUSE-Subsystem verwenden, wurde die Funktionalität zur gleichzeitigen Bereinigung aller zwischengespeicherten Verzeichniseinträge (dentries) bereitgestellt. Das FUSE-Subsystem unterstützt große Seitenblätter im Speicher.
    • In der Dateiüberlagerung OverlayFS wurde die Unterstützung für die Erstellung von Schichten mit Daten in nicht privilegierten Namespaces implementiert, für die eine Integritätskontrolle auf Basis des dm-verity-Moduls verwendet wird. Diese Funktionalität ermöglicht die Kombination vertrauenswürdiger Schichten mit Metadaten und nicht vertrauenswürdigen Datenschichten, die in nicht privilegierten Namespaces verarbeitet werden.
  • Speicher und Systemdienste
    • Ein KHO-Mechanismus (Kexec HandOver) wurde hinzugefügt, um einen neuen Kernel aus einem alten zu starten, ohne den Systemzustand zu verlieren. Vor der Übergabe der Kontrolle an die neue Kernelversion kann der Zustand der wichtigen Kernsubsysteme mithilfe von KHO in einem Speicherbereich serialisiert werden, der durch nachfolgende Vorgänge nicht beeinträchtigt wird. Der neue Kernel, der die Kontrolle übernimmt, stellt den serialisierten Zustand wieder her. Auf der Basis von KHO wird das Live Update Orchestrator (LUO) entwickelt, das es ermöglicht, den Kernel ohne Unterbrechung der Geräteoperationen neu zu starten.
    • Ein Kernel-Build-Parameter CONFIG_X86_NATIVE wurde hinzugefügt, der die Verwendung der Option „-march=native“ während der Kompilierung zur Optimierung basierend auf den Fähigkeiten des Prozessors im aktuellen System ermöglicht.
    • Die Unterstützung der Intel APX (Advanced Performance Extension)-Architektur des Befehlssatzes wurde hinzugefügt, die 16 zusätzliche allgemeine Register (neben den vorhandenen 16) zur Verfügung stellt, wodurch weniger Speicher-Lese- und -Schreiboperationen im Code verwendet werden, um die Leistung zu steigern und den Energieverbrauch zu senken.
    • Ein Modus zur automatischen Anpassung der Speicherverteilungspolitik in NUMA-Systemen wurde hinzugefügt, bei dem alle Knotengewichte neu berechnet werden, wenn neue Informationen zur Bandbreite während des Bootvorgangs oder beim Hot-Plugging von Speicher verfügbar sind.
    • Bei der Implementierung von futexen wurde die Unterstützung einer lokalen Hash-Tabelle für Prozesse (local futex_hash_bucket) hinzugefügt, die im Gegensatz zur zuvor unterstützten gemeinsamen Hash-Tabelle für alle Prozesse, lokal für einen einzelnen Prozess ist und von allen Threads dieses Prozesses gemeinsam genutzt wird. Lokale Hash-Tabellen werden nur für die futex-Operation PROCESS_PRIVATE verwendet. Darüber hinaus wurde in der neuen Version die Unterstützung der Optionen FUTEX2_NUMA und FUTEX2_MPOL hinzugefügt, die es ermöglichen, die Platzierung der futexe im Speicher zu beeinflussen, um sie näher an die Prozesse zu bringen, die sie verwenden.
    • Für x86_64-Systeme wurde die permanente Unterstützung für fünflagige Seiten-Tabellen (Parameter CONFIG_X86_5LEVEL, der die Aktivierung der fünflagigen Tabellen steuerte, wurde entfernt).
    • Im intel_pstate-Treiber, der die Energieverbrauchsparameter (P-State) auf Systemen mit Intel-Prozessoren steuert, wurde die Unterstützung für die Arbeit des Task-Schedulers unter Berücksichtigung des Energieverbrauchs (EAS — Energy Aware Scheduling) auf Hybridprozessoren hinzugefügt, die leistungsstarke und energieeffiziente CPU-Kerne kombinieren, wie Intel Lunar Lake.
    • In sysfs wurden die Schnittstellen hinzugefügt: „/sys/devices/system/cpu/cpuN/cpu_capacity“ zur Abfrage von Informationen über die Fähigkeiten verschiedener CPUs in Hybridprozessoren sowie „/sys/devices/system/cpu/cpuidle/intel_c1_demotion“ zur Steuerung der Möglichkeit, CPUs in einem leistungsstärkeren Zustand zu halten, selbst wenn der Kern versucht, die CPU in einen energiesparenderen Zustand zu versetzen (z. B. kann der Kern einen Übergang in den Energiezustand C6 anfordern, aber die Firmware kann die CPU bei hoher Wachsamkeit im Zustand C1 halten).
    • Für die Architektur ARM64 wurde die Unterstützung für den Modus der faulen Vorwegnahme von Aufgaben (PREEMPT_LAZY, lazy preemption) aktiviert, der dem Modus der vollständigen Vorwegnahme („full preemption“) für Echtzeitanwendungen (RR/FIFO/DEADLINE) entspricht, jedoch die Vorwegnahme von normalen Aufgaben (SCHED_NORMAL) bis zur Tick-Grenze verzögert.
    • Für die Architektur ARM64 wurde die Unterstützung für die Verwendung der Erweiterungen SME (Scalable Matrix Extension) hinzugefügt, die über den Parameter CONFIG_ARM64_SME aktiviert wird.
    • Die Übertragung von Änderungen aus dem Rust-for-Linux-Zweig, die die Verwendung der Programmiersprache Rust als zweite Sprache für die Entwicklung von Treibern und Kernelmodulen betreffen, wurde fortgesetzt (die Unterstützung von Rust ist standardmäßig nicht aktiv und führt nicht dazu, dass Rust zu den erforderlichen Build-Abhängigkeiten des Kernels gehört). Für in Rust geschriebene Module wurde die Möglichkeit der Verwendung von configfs bereitgestellt. Es wurden Abstraktionen hinzugefügt, die für die Entwicklung von Grafiktreibern erforderlich sind. Die Funktionalitäten der Module alloc, time, str, list, workqueue und page wurden erweitert. Die Unterstützung des Makros „assert!“ in KUnit-basierten Tests wurde hinzugefügt. Außerdem wurde ein Satz von Abstraktionen zur Steuerung der CPU-Frequenz und zur Nutzung von API für das Energiemanagement hinzugefügt. Unterstützung für die Datenstruktur 'xarray' wurde eingefügt.
    • Für die Architektur RISC-V wurde die Implementierung des Systemaufrufs getrandom() übertragen, die durch den vDSO-Mechanismus (virtual dynamic shared object) optimiert wurde. Dieser ermöglicht es, den Systemaufrufhandler aus dem Kernel in den Benutzerspeicher zu übertragen und Kontextwechsel zu vermeiden. In durchgeführten Tests beschleunigte die Optimierung die Generierung von Zufallszahlen um das 17-fache. Für RISC-V wurde auch Unterstützung für die Vektorerweiterungen Zicbop, Zabha und Svinval implementiert, die in SiFive-Prozessoren verwendet werden.
    • Für die Architektur LoongArch wurde das Limit für die Anzahl der CPUs im System von 256 auf 2048 angehoben. Unterstützung für den SCHED_MC-Task-Scheduler (Multi-Core) wurde hinzugefügt.
    • Die Verwendung von Unix-Sockets zur Übertragung von Dateideskriptoren wurde ermöglicht. Um diese Möglichkeit zu deaktivieren, können Anwendungen das Flag SO_PASSRIGHTS in setsockopt() nutzen.
    • Die Möglichkeit, den Ringpuffer, der für das Tracing der Kernelaktivität verwendet wird, in den Benutzerspeicher zu mappen, wurde bereitgestellt.
    • Die Crash-Dump-Handler, die zur Erstellung von Problemmeldungen nach einem Kernel-Crash verwendet werden, können jetzt die von dem abgestürzten Kernel verwendeten LUKS-Schlüssel nutzen, um die Crash-Dumps in verschlüsselten Dateisystemen zu speichern.
    • Im asynchronen Ein-/Ausgabe-System io_uring wurde die Operation IORING_OP_PIPE hinzugefügt, um anonyme Pipes zu erstellen. Diese ist dem Systemaufruf pipe2 ähnlich, bietet jedoch Unterstützung für feste Dateideskriptoren.
    • Eine Kernel-Befehlszeilenoption „rt_group_sched“ wurde hinzugefügt, um die Aktivierung des Planers für die Ausführung von Echtzeitarbeitsgruppen (SCHED_RR) zu steuern. Diese Option entspricht der Einstellung RT_GROUP_SCHED in Kconfig.
    • Für Geräte, die auf dem CXL-Bus (Compute Express Link) basieren und zur Organisation einer Hochgeschwindigkeitskommunikation zwischen CPU und Speichereinheiten eingesetzt werden, wurde die Unterstützung von RAS-Erweiterungen (Reliability, Availability, Serviceability) implementiert, die die verschiedenen Schemen zur Fehlererkennung und -korrektur ermöglichen. CXL ermöglicht den Anschluss neuer Speicherbereiche, die von externen Speichereinheiten bereitgestellt werden, und deren Verwendung als zusätzliche Ressourcen des physischen Adressraums zur Erweiterung des Systemspeichers (DDR) oder des persistenten Speichers (PMEM).
    • Die für den Kernel-Bau erforderliche minimale GCC-Version wurde für alle Architekturen auf den Branch GCC 8 angehoben. Für den Bau wird jetzt außerdem mindestens die Version des Pakets binutils 2.30 benötigt.
    • Der Systemaufruf uselib() wurde entfernt, der schon lange als veraltet gilt, und stattdessen wird mmap() für den gemeinsamen Zugriff von Programmen auf gemeinsam genutzte Bibliotheken verwendet.
  • Virtualisierung und Sicherheit
    • Eine erste Unterstützung für die Verwendung des Intel TDX-Mechanismus (Trusted Domain Extensions) zum Schutz von Gast-Systemen, die unter dem Hypervisor KVM laufen, vor Eingriffen und Analysen durch den Administrator des Host-Systems sowie physischen Angriffen auf die Hardware wurde hinzugefügt. Der Schutz erfolgt durch die Verschlüsselung des Speichers. virtuelle Maschinen.
    • Ein virtueller TPM-Treiber (Trusted Platform Module) wurde hinzugefügt, der virtuellen Maschinen die Interaktion mit TPM-Geräten (Trusted Platform Module), die durch das SVSM-Modul (Secure VM Service Module) emuliert werden, ermöglicht.
    • Die Möglichkeit zur Verwendung des GCC-Plugins randstruct, das die Anordnung von Datenstrukturen während des Compilierens randomisiert, um die Ausnutzung von Schwachstellen zu erschweren, wurde wiederhergestellt.
    • Die Möglichkeit zur Verwendung der IMA-Technologie (Integrity Measurement Architecture) zur Integritätsprüfung beim Start neuer Kerne mittels des Systemaufrufs kexec wurde hinzugefügt.
    • Maßnahmen wurden ergriffen, um die Auswirkungen der Verwendung von SELinux auf die Leistung zu verringern. Zur Beschleunigung wurde ein Cache mit den Ergebnissen der Zugriffsprüfungen auf Verzeichnisse hinzugefügt. In die genfscon-Regeln wurde die Möglichkeit zur Verwendung von Masken integriert.
    • Im Code zur Interaktion mit EFI wurde die Möglichkeit zur Einbettung eines SBAT-Abschnitts (UEFI Secure Boot Advanced Targeting) mit Metadaten zu zurückgerufenen Versionen von Boot-Komponenten bereitgestellt.
    • In den geladenen Modulen wurde der Abschnitt „.static_call_sites“ in den schreibgeschützten Modus versetzt, nachdem die Initialisierung abgeschlossen war.
    • Für 64-Bit-ARM-Systeme wird im KVM-Hypervisor Unterstützung für verschachtelte Virtualisierung bereitgestellt (standardmäßig deaktiviert).
    • Im KVM-Hypervisor wurde die Unterstützung der RISC-V-Architektur als stabil erklärt.
  • Netzwerksubsystem
    • Der Treiber ovpn wurde integriert, der die Leistung von OpenVPN erheblich steigert, indem er die Verschlüsselungsverarbeitung, die Paketverarbeitung und die Verwaltung des Datenkanals auf den Kernel von Linux auslagert. Der Treiber eliminiert die Kosten, die mit dem Kontextwechsel verbunden sind, ermöglicht eine Optimierung durch direkten Zugriff auf die internen Kernel-APIs und schließt die langsame Datenübertragung zwischen Kernel und Anwendungsebene aus (Verschlüsselung, Entschlüsselung und Routing erfolgen im Modul, ohne den Datenverkehr an den Handler in der Benutzerebene zu senden).
    • In den Device Memory TCP-Mechanismus wurde die Unterstützung für das Senden von Daten aus dem Gerätespeicher (TX-Pfad) hinzugefügt. Zuvor war die Funktionalität zur Vereinfachung der Integration von Device Memory TCP in den Kernel nur auf den Empfang von Daten (RX-Pfad) beschränkt. Device Memory TCP ermöglicht die Nutzung von Netzwerk-Sockets zum direkten Senden des Inhalts des Speichers des Peripheriegeräts über das Netzwerk (Zero-Copy-Modus) sowie die direkte Platzierung des Inhalts der Netzwerkpakete im Speicher des Gerätes auf der Empfängerseite. Die in den Paketen übertragenen Daten werden von der Netzwerkkarte in den Speicher des Peripheriegeräts (DMABUF), beispielsweise den Videospeicher der GPU, oder direkt aus dem Gerätespeicher in die Netzwerkkarte über die CPU hinweg übertragen, wobei die Header der Pakete in die normalen Kernel-Puffer gelangen.
    • Es wurde die Möglichkeit geschaffen, den Inhalt von Core-Dumps über den AF_UNIX-Socket zu versenden, was die Erstellung sichererer Core-Dump-Handler im Benutzermodus ermöglicht, die nicht auf den Aufruf privilegierter Prozesse durch den Kernel angewiesen sind.
    • Die Unterstützung des Netzwerkprotokolls DCCP (Datagram Congestion Control Protocol) wurde entfernt, da es sich nicht verbreitet hat und seit fünf Jahren unbetreut bleibt. Die Entfernung von DCCP aus dem Kernel wird Hindernisse beseitigen, die einer Überarbeitung der Datenstruktur inet_connection_sock im Wege stehen, um die Effizienz des TCP-Stacks zu erhöhen. Die Unterstützung von Netfilter-Modulen zur Paketfilterung von DCCP bleibt erhalten.
    • Zur Vereinfachung der Fehlerbehandlung bei der Verwendung von Sockets kann der Kernel jetzt pidfd für bereits abgeschlossene Prozesse übertragen (pidfd ist mit bestimmten Prozessen verbunden und wird im Gegensatz zu pid nicht erneut zugewiesen).
    • Mit BPF können jetzt Paket-Queue-Management-Handler im Netzwerkstack (qdiscs) erstellt werden, um die Reihenfolge der Verarbeitung von Netzwerkpaketen zu beeinflussen.
    • In dem Netzwerkdateisystem AFS wird GSSAPI (Generic Security Services API) zur Verwaltung der Verschlüsselung der Verbindungen mit Servern YFS und OpenAFS verwendet.
    • Es wurden umfangreiche Optimierungen vorgenommen. Die Organisation der Sperren für IPv6-Routing-Tabellen wurde überarbeitet (Einige Routenoperationen werden jetzt bis zu dreimal schneller ausgeführt). Die Softwareberechnung der crc32c-Prüfziffern wurde beschleunigt. Der GRO-Engine für getunnelten UDP-Verkehr wurde um 10 % schneller gemacht. Die Autoanpassung des Empfangspuffers für TCP wurde verbessert und die standardmäßigen Limits wurden angehoben (In durchgeführten Tests stieg die Bandbreite für einzelne Streams über einen 200Gbs-Kanal um 60 %).
    • In Netfilter wurde die Möglichkeit hinzugefügt, Masken in den Namen von Netzwerkgeräten zu verwenden, die in netdev und flowtable verwendet werden. In die nft trace-Infrastruktur wurde Informationen zur Verbindungsverfolgung (conntrack) integriert. Das Abrufen von conntrack-Tracking-Tabellen über procfs wurde beschleunigt.
  • Ausrüstung
    • Die Unterstützung für die Auslagerung der Verarbeitung von Audiostreams auf die Seite von USB-Audio-Geräten (USB audio offload) wurde hinzugefügt. Diese Änderung ermöglicht eine erhebliche Reduzierung des Energieverbrauchs tragbarer Geräte, da die Verarbeitung des Audiostreams fortgesetzt wird, während der Rest des Systems im Energiesparmodus ist. Zuvor gab es in Kerneln der Android-Plattform eine spezifische Implementierung der Offload-Audioverarbeitung für USB-Geräte, und jetzt gibt es eine universelle Implementierung im Hauptkernel, die von allen Projekten genutzt werden kann.
    • Die Integration der Nova-Treibermodule für NVIDIA GPUs, die mit GSP-Firmware ausgestattet sind, wird fortgesetzt. Diese wird ab der NVIDIA GeForce RTX 2000-Serie auf Basis der Turing-Mikroarchitektur verwendet. Der Treiber ist in Rust geschrieben. Neben dem im letzten Release hinzugefügten Modul nova-core, das die grundlegenden Abstraktionsschichten über die Software-Schnittstellen der GSP-Firmware implementiert, wurde in Version 6.16 eine erste Implementierung des DRM-Treibers nova-drm (Direct Rendering Manager) für die Interaktion mit dem GPU aus dem Benutzermodus hinzugefügt.
    • Der Prozess zur Förderung des Asahi-DRM-Treibers für Apple AGX GPUs, die in Apple Silicon-Chips verwendet werden, hat begonnen. Der Treiber ist in Rust geschrieben. In dieser Phase sind nur die Header-Dateien mit UAPI vom Asahi-Treiber, die für Mesa erforderlich sind, in das Kernel integriert, während der Hauptcode des Asahi-Treibers später integriert wird.
    • Die Unterstützung für NVIDIA GPUs der Hopper- und Blackwell-Familie wurde im Nouveau-Treiber hinzugefügt.
    • Die Arbeit am drm-Treiber (Direct Rendering Manager) Xe für GPUs auf Basis der Intel Xe-Architektur, die in Intel Arc-Grafikkarten und integrierter Grafik ab den Tiger Lake-Prozessoren verwendet wird, wird fortgesetzt. Die Möglichkeit, unterschiedliche Firmware-Dateien für verschiedene Intel GPU-Familien zu verwenden, wurde hinzugefügt.
    • Im AMDGPU-Treiber wurde die Unterstützung für den „usermode queue“-Mechanismus implementiert, der es ermöglicht, eigene Arbeitswarteschlangen im Benutzermodus zu erstellen und diese direkt an die GPU zu senden, ohne den Scheduler im Kernel zu kontaktieren. Die Unterstützung für die „usermode queue“ ist für die GPUs der Navi 4X- und GFX 12-Familien aktiviert.
    • Die Unterstützung für die Audioplattformen Intel WCL (Whiskey Lake), AMD ACP 7.x (Audio Co-Processor), Cirrus Logic CS35L63 und CS48L32, Everest Semiconductor ES8375 und ES8389, Pioneer DJM-V10, Longsoon-1 AC’97, NVIDIA Tegra264, Richtek ALC203, RT9123 und Rockchip SAI sowie neue Intel AVS-Plattformen wurde hinzugefügt.
    • Die Unterstützung für ARM-Plattformen, SoCs und Geräte wurde hinzugefügt: Samsung Exynos7870, Qualcomm Snapdragon X1P42100, Qualcomm MSM8926, RK3562, NXP i.MX94, Renesas RZ/V2N, Amlogic S6/S7/S7D, WonderMedia wm8950, Amlogic s805y, Allwinner A523, Toradex Verdin AM62P, ROCK 5B+, Nitrogen8M Plus, Retronix R-Car V4H Sparrow Hawk, MT8186 Ponyta Chromebook, VIA APC Rock/Paper, Renesas rz/t2h, ASUS Transformer Pad LTE TF300TL, LG Nexus 4, Google Pixel 4a, Raspberry Pi 2.
    • Der Treiber für Videoaufnahmegeräte auf STA2X11-Chips wurde entfernt.

Gleichzeitig hat die lateinamerikanische Stiftung für Freie Software eine vollständig freie Kernel-Version 6.16 — Linux-libre 6.16-gnu — erstellt, die von Elementen der Firmware und Treibern gereinigt wurde, die nicht-freie Komponenten oder Codeabschnitte enthalten, deren Verwendung vom Hersteller eingeschränkt ist. In der Version 6.16 wurde das Laden von Blobs in den neuen Intel qat 6xxx Cryptotreibern, dem ST vd55g1 Sensor, dem ath12k AHB Wifi, dem Aeonsemi AS21xxx und dem MediaTek 25Gb Ethernet neutralisiert. Die Namen von Blobs in den dts-Dateien (Device Tree) für ARM-Chips von Qualcomm und MediaTek wurden bereinigt. Der Code zur Bereinigung von Blobs in den Treibern Nova Core, Nouveau, Realtek r8169 Ethernet, Qualcomm Iris, Venus, Mediatek mt7996 Wifi, Qualcomm ath11k und ath12k Wifi sowie Texas Instruments tas2781 und Renesas R-Car gen4 PCIe wurde aktualisiert.

Quelle: opennet.ru

60GB SSD 8Gb DDR4