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

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster