Nach zwei Monaten der Entwicklung stellte Linus Torvalds den Release des Kernels Linux 6.19. Zu den auffälligsten Änderungen gehören: das Live Update Orchestrator, Unterstützung für PCIe Link Encryption, der Systemaufruf listns, der Zero-Copy Receive-Modus in io_uring, Unterstützung für die ARM-Erweiterung MPAM, klp-build zur Erstellung von Live-Patches, Unterstützung der LoongArch32-Architektur, QoS für s2idle, Optimierung der Auditsubsysteme, Intel LASS zum Schutz vor Spectre, Unterstützung für die Hashes SHA-3 und BLAKE2b, der Confidential VMBus-Mechanismus, TX-Optimierungen im Netzwerk-Subsystem und das CAN XL-Protokoll, sowie APIs für die hardwarebeschleunigte HDR-Ausgabe.
In der Ankündigung der neuen Version teilte Linus mit, dass die nächste Kernel-Version die Nummer 7.0 erhalten wird, da in der 6.x-Serie ausreichend viele Versionen für eine Änderung der ersten Ziffer der Versionsnummer angesammelt wurden (zum Zeitpunkt der Veröffentlichung war die 6.0 unmittelbar nach der 5.19 veröffentlicht worden). Die Änderung der Nummerierung erfolgt aus ästhetischen Gründen und ist ein formeller Schritt, der die Unannehmlichkeiten aufgrund der Vielzahl von Versionsveröffentlichungen in dieser Serie abmildert. Linus scherzte, dass ihn die großen Zahlen verwirren, für die ihm die Finger an Händen und Füßen nicht ausreichen. Gleichzeitig gibt es formell einen Grund für eine wesentliche Änderung der Versionsnummer, da ab der nächsten Version die Unterstützung für Rust beschlossen wurde von experimentellen in die stabilen Funktionen des Kernels übertragen.
In die neue Version wurden 15.657 Korrekturen von 2.237 Entwicklern übernommen, die Patchgröße beträgt 52 MB (Änderungen betrafen 13.682 Dateien, 794.649 Codezeilen wurden hinzugefügt, 335.498 Zeilen wurden entfernt). Im vorherigen Release gab es 15.035 Korrekturen von 2.217 Entwicklern, die Patchgröße betrug 45 MB. Etwa 40 % aller in 6.19 eingeführten Änderungen betreffen Gerätetreiber, ungefähr 13 % beziehen sich auf die Aktualisierung von architekturspezifischem Code, 12 % sind mit dem Netzwerk-Stack verbunden, 5 % betreffen Dateisysteme und 3 % interne Subsysteme des Kernels.
Hauptneuheiten im Kernel 6.19 (1, 2, 3):
- Festplattensubsystem, Ein-/Ausgabe und Dateisysteme
- In Btrfs FS-Prüfprozesse (scrub) und Geräteersatz blockieren nun nicht mehr den Übergang des Systems in den Ruhemodus (der Zustand der scrub-Prüfung wird vor dem Schlafen gespeichert; nach dem Aufwachen wird die scrub-Prüfung fortgesetzt und der Vorgang des Geräteersatzes wird neu gestartet). In die Implementierung von RAID56 wurde die Unterstützung für Blockgrößen integriert, die die Größe einer Seiten des Speichers überschreiten. Es wurden Vorbereitungen zur Unterstützung von fscrypt. Die Leistung bei der Verarbeitung von Sperren während der Operationen zur Platzreservierung wurde erhöht. Hinzugefügt Unterstützung der ioctl-Operation shutdown, die es ermöglicht, das Dateisystem in einen Zustand zu versetzen, in dem eine Beendigung der bereits laufenden Operationen versucht wird, während alle neuen Operationen blockiert werden.
- Im Dateisystem Ext4 wurde hinzugefügt Unterstützung von Blöcken, deren Größe die Seitengröße des Speichers übersteigt (>4KB auf x86-Systemen). Die Verwendung großer Blöcke ermöglicht es kann die Leistung von gepufferten Schreiboperationen im Durchschnitt um 50 % steigern, verringert jedoch die Leistung von direktem I/O aufgrund der erhöhten Berechnungszeit für Prüfziffern. In der neuen Version wurden zudem auch wurden hinzugefügt Optimierungen implementiert, die die Bandbreite während der Online-Defragmentierung erhöht haben.
- Im Subsystem FUSE wurde die Unterstützung des gepufferten Lesens bei Verwendung großer Seiten-Skripte (large folios). Über iomap wird die Möglichkeit zur Überwachung von teilweise aktuellen Folios implementiert, um nur die Daten zu laden, die im Puffer fehlen.
- In VFS wurde die Unterstützung für widerrufbare Verzeichnissdelegation (recallable directory delegation) hinzugefügt, die eine Implementierung in ermöglicht. NFS Übergabe der Verzeichnisverwaltung vom Server an den Client, damit der NFS-Client ohne Anfragen an den NFS-Server den Status des Verzeichnisses basierend auf dem lokalen Cache selbst überwacht. Wenn ein anderer NFS-Client Änderungen an diesem Verzeichnis vornimmt, wird die Verwaltungsdelegation vom ersten Client zurückgezogen.
- Für NFS hinzugefügt unterstützt das Lesen im direkten Eingabe-/Ausgabemodus (direct I/O). Implementiert sind Einstellungen /sys/kernel/debug/nfsd/io_cache_read und /sys/kernel/debug/nfsd/io_cache_write zur Steuerung der Aktivierung von Caching und direkten Eingabe-/Ausgabeoperationen. Die Manipulation dieser Einstellungen hilft, die Overheadkosten auf der Seite des NFS-Clients bei großen Eingabe-/Ausgabeoperationen zu reduzieren.
- In NTFS Unterstützung für den ioctl-Befehl shutdown implementiert, sind standardmäßig Optionen für das Mounten acl und prealloc, Unterstützung für Zeiten bis zum 1. Januar 1970 hinzugefügt.
- Для Blockgeräte und FS aktiviert. standardmäßig separates Caching von Objekten für jeden CPU "bio" (Block-I/O), die aktiven Eingabe-/Ausgabeoperationen definieren.
- Speicher und Systemdienste
-
Im Kernel wurde hinzugefügt Subsystem Live Update Orchestrator (LUO), das eine vollständige Neuladen und Aktualisieren des Kernels ermöglicht, ohne die laufenden Arbeiten zu unterbrechen und den Zustand des Systems, der Geräte und der Prozesse zu verlieren. Das LUO-Untersystem basiert auf dem zuvor in den Kernel integrierten Mechanismus. KHO (Kexec HandOver) und ergänzt die Möglichkeit, einen neuen Kernel aus dem alten zu starten, ohne den Systemzustand zu verlieren, indem es Aufgaben wie die Sicherung des Zustands von Geräten und des Arbeitsspeichers sowie die Gewährleistung der Kontinuität von Maßnahmen im Zusammenhang mit DMA und Interruptverarbeitung löst. Der Zustand wird bis zum Umschalten auf den neuen Kernel gespeichert und nach der Aktivierung des neuen Kernels wiederhergestellt, ohne die laufenden Operationen mit den Geräten, die vom System und von Anwendungen im Benutzerspeicher durchgeführt werden, zu stören.
-
Hinzugefügt Systemaufruf listns(), um eine Liste der im System vorhandenen Namensräume auszugeben, ohne alle /proc//ns/ für alle Prozesse durchlaufen zu müssen.
Das io_uring-System für asynchrone Ein- und Ausgabe hat die Unterstützung für das Einreihen von Elementen unterschiedlicher Größe in die Einsendeschlange (SQE, Submission Queue Entry) hinzugefügt, ähnlich wie im letzten Update das Mischen der Größe der Ergebniswarteschlange (CQE, Completion Queue Event) erlaubt wurde. Zuvor mussten alle Elemente in der Warteschlange die gleiche Größe haben, was zu einer übermäßigen Speichernutzung führte, da alle Elemente die maximal mögliche Größe verwenden mussten.
In io_uring wurde auch die Unterstützung für den Zero-Copy Receive (zcrx)-Mechanismus hinzugefügt, der es ermöglicht, Daten ohne Kopieren zwischen dem Kernel und dem Benutzerspeicher zu empfangen. Darüber hinaus wurde die Unterstützung für Speicherlayoutanfragen für die Warteschlangen SQ (Submission Queue) und CQ (Completion Queue) hinzugefügt, die Informationen über die Größe des Ringpuffers bereitstellen, die bei der benutzerspezifischen Speicherzuweisung mit den Flags IORING_SETUP_NO_MMAP und IORING_MEM_REGION_TYPE_USER erforderlich sind.
Für eine schnelle Stack-Tracierung mit Werkzeugen wie perf wurde Unterstützung für das SFrame-Format hinzugefügt, das Informationen über das Unwinden des Aufrufstapels enthält. SFrame wird bereits in GCC und binutils unterstützt, verursacht keinen Leistungsabfall und enthält im Gegensatz zum DWARF-Format lediglich die minimal erforderlichen Informationen für die Stack-Tracierung.
-
Im Tool perf hinzugefügt wurde Unterstützung für eine einheitliche Beschreibung von Metriken und Ereignissen im JSON-Format sowie für das verzögerte Unwinding des Aufrufstapels im Benutzerspeicher implementiert.
Для AMD-Prozessoren wurde ein Mechanismus zur Datenersetzung im Cache implementiert, der es Eingabegeräten ermöglicht, Daten direkt in den L3-Cache der CPU zu legen, ohne sie vorher im RAM abzulegen.
Unterstützung für MPAM (Memory System Resource Partitioning and Monitoring), Erweiterung der Architektur des ARMv8-A Befehlssatzes zur Kennzeichnung jedes Speicherzugriffs mit einer Partition-ID (PARTID) und einer Monitoring-Gruppen-ID (PMG). In Verbindung mit PARTID kann der Ressourcenverbrauch, wie z. B. die Speicherkapazität oder die Cache-Größe, begrenzt werden, sodass eine Aufgaben Gruppe nicht alle Ressourcen beansprucht. Im Kontext des Monitorings kann die Kombination aus PMG und PARTID zur Überwachung des Speicherverbrauchs unter bestimmten Lastarten verwendet werden.
Im Falle eines unerwarteten Prozessabbruchs nach Erhalt eines Signals kann ein anderer Prozess, der die pidfd des beendeten Prozesses hat, jetzt die Signalnummer ermitteln, die zum Abschluss des Prozesses geführt hat.
Die Implementierung von wiederstartbaren Sequenzen (restartable sequences), die es Anwendungen ermöglichen, eine pseudo-atomare, unterbrechungsfreie Ausführung einer Gruppe von Anweisungen zu organisieren (im Falle einer Unterbrechung durch einen anderen Thread wird ein erneuter Versuch zur Ausführung der Sequenz unternommen). Die neue Implementierung bietet eine verbesserte Leistung.
-
Для BPF-Programme werden umgesetzt Die Instruktionen BPF_JMP, BPF_X und BPF_JA ermöglichen indirekte Sprünge zu bestimmten Positionen aus der Übergangstabelle. Das Konzept der dynamischen Zeiger wurde hinzugefügt,dynptr, das das Auslesen von Daten aus strukturierten Dateien ermöglicht. Hinzugefügt Die Möglichkeit, mehreren Bytes Metadaten an Netzwerkpakete anzuhängen.
Module in Python, die zur Dokumentation des Kernels verwendet werden, wurden in einem separaten Verzeichnis tools/lib/python verschoben.
-
Funktion hinzugefügt mempool_alloc_bulk() für die sichere Zuweisung von Elementen aus einem Speicherpool für mehrere Objekte auf einmal.
-
Die Übertragung von Änderungen aus dem Branch Rust-for-Linux , die mit der Nutzungder Programmiersprache Rust als zweite Sprache für die Entwicklung von Treibern und Modulen des Kernels verbunden sind, wurde fortgesetzt (die Unterstützung von Rust ist standardmäßig nicht aktiviert und zwingt nicht dazu, Rust als verpflichtende Build-Abhängigkeit für den Kernel einzuschließen). In der neuen Version ist die Bibliothek „ syn Bibliothek „syn» mit dem Rust-Code-Parser, der das Schreiben komplexer Makros vereinfacht. Die Funktionen der Bibliotheken kernel, pin-init und rbtree wurden erweitert. Die Bibliothek num mit dem Typ Integer für die Manipulation von Ganzzahlen wurde hinzugefügt. Der Makro module! unterstützt nun Ganzzahlparameter. Es ist möglich, Parameter beim Laden von Kernel-Modulen, die in Rust geschrieben sind, anzugeben. Abstraktionen für Subsysteme wurden implementiert. I2C и PWM (Pulsweitenmodulation).
-
Hinzugefügt Der Makro at_least (zum Beispiel, param[at_least 7]) informiert über die minimal zulässige Größe des Arrays, das an die Funktion übergeben wird. Wenn ein Array mit weniger Elementen an die Funktion übergeben wird, gibt der Compiler eine Warnung aus.
-
Im Rahmen von ist Teil des Tools Das Skript klp-build zur Generierung von Kernel-Modulen, die Änderungen am laufenden Kernel (Live-Patch) vornehmen, basierend auf einer Patch-Datei. In das Tool objtool wurden die notwendigen Änderungen für die Erstellung von Live-Patches aufgenommen.
-
In User-mode Linux (Ausführung des Kernels als Benutzerprozess) erhielt eine eingeschränkte Unterstützung für Multiprocessing, aber Threads innerhalb eines Prozesses können derzeit noch nicht gleichzeitig ausgeführt werden. Es hat begonnen. Portierung von User-mode Linux auf die Bibliothek nolibc.
-
Hinzugefügt Unterstützung für die Architektur LoongArch32 (LA32R, LA32S) zusätzlich zu LoongArch64.
-
Hinzugefügt die Möglichkeit, QoS-Limits für die Intensität des Aufwachens des Prozessors im Energiesparmodus festzulegen s2idle (Suspend-To-Idle), das die Ausführung von Prozessen im Benutzerspace einfriert, aber einige Handler im Kernel aktiv lässt.
-
Hinzugefügt Unterstützung für die Verwaltung von Seiten-Tabelle für Speichercontroller IOMMU (Input-Output Memory Management Unit), die virtuelle Adressen, die von der Hardware gesehen werden, in physische Adressen übersetzen und die Möglichkeit bieten, DMA-Operationen nach virtuellen Adressen zu filtern sowie Ein- und Ausgabeoperationen zu begrenzen und zu isolieren.
In den Ereignissen der Systemaufruf-Trace ist die Möglichkeit implementiert, Pufferspeicher aus dem Benutzerspace zu lesen und deren Inhalte (zum Beispiel Dateinamen) in das Trace-Ergebnis einzuschließen.
-
**Wächterseiten im Speicher(( (guard page), die einen Ausnahmefehler auslösen und den Prozess (SIGSEGV) notaus beenden, werden nun mit einem speziellen Markierung im Datei /proc/PID/smaps.
-
Hinzugefügt die Möglichkeit zur Verwaltung von großen Speicherseiten (transparent huge page) im privaten Speicher von zonierten Geräten.
-
Im Gerät zram, verwendet für die komprimierte Speicherung des Swap-Bereichs im Speicher, wurde Unterstützung für das Batch-Verfahren mehrerer „bio“-Strukturen (Block I/O) im Writeback-Betrieb.
Die Schriftart „Terminus 10×18“, die die Lesbarkeit von Informationen auf Konsolenbildschirmen von Laptops mit einer durchschnittlichen Auflösung (1440×900) verbessert.
-
Signifikant optimiert die Arbeit Audit-Subsysteme — es wird eine Verringerung der Overhead-Kosten um das Zweifache festgestellt.
-
- Virtualisierung und Sicherheit
- Unterstützung für die von Intel-Prozessoren bereitgestellte Funktionalität zur Trennung lineare Adressraumtrennung (LASS), die es ermöglicht, die Bereiche des Adressraums von Benutzer- und Kernelmodus hardwareseitig zu trennen, um die Sicherheit zu erhöhen. Der Adressraum wird nach dem höchstwertigen Bit der Adresse aufgeteilt – die obere Hälfte des Adressraums mit gesetztem höchstwertigem Bit wird für den Kernel verwendet, während die untere für den Benutzerraum genutzt wird. Zu einem frühen Zeitpunkt der Ausführung von Anweisungen (vor der spekulativen Ausführung) erfolgt eine Überprüfung der Erlaubnis für den Zugriff aus dem Benutzerraum auf Adressen mit gesetztem höchstwertigem Bit und umgekehrt. Eine solche Trennung ermöglicht es, Kernelspeicherlecks in den Benutzerraum über Seitenkanäle selbst bei spekulativer Ausführung von Anweisungen zu blockieren, was es ermöglicht, LASS zum Schutz vor Meltdown- und Spectre-Angriffen zu verwenden, ohne hohe Überkopfkosten zu verursachen.
- Die Möglichkeit zur Aktivierung wurde hinzugefügt Erweiterungen Sicherheitsverbesserungen für PCI Express – PCIe Link-Verschlüsselung und PCIe Geräteauthentifizierung, die die Authentizität bestätigen und den Kommunikationskanal zwischen dem PCIe-Gerät und der durch Intel TDX (Trusted Domain Extensions) und AMD SEV-SNP (Secure Nested Paging) geschützten virtuellen Maschine verschlüsseln. Die implementierten Technologien verhindern das Abfangen, Analysieren und Man-in-the-Middle-Angriffe auf DMA-Traffic, selbst wenn Zugang zum Hosts-System oder anderen Geräten besteht.
- In die integrierte Kryptografiebibliothek hinzugefügt Unterstützung für SHA-3 (SHA3-224, SHA3-256, SHA3-384, SHA3-512), SHAKE128, SHAKE256 und BLAKE2b.
- Für LSM-Module (Linux Security Modules) und insbesondere für SELinux, wurde die Möglichkeit, die Erstellung von Deskriptoren für memfd nachzuverfolgen, um Sicherheitsrichtlinien auf die damit verbundenen Objekte anzuwenden.
- Im LSM-Modul IPE (Integritätsrichtliniendurchsetzung), die die allgemeine Integritätspolitik für das gesamte System definiert, wurde die Unterstützung des Flags AT_EXECVE_CHECK in der Funktion execveat(), welches die Integritätsüberprüfung des Skripts vor seiner Ausführung durch den Interpreter einbezieht.
- Es wurden die Primitiven scoped_user_read_access(), scoped_user_write_access und scoped_user_rw_access() für eingeschränkten Zugriff auf Daten im Benutzerspeicher mit Schutz vor spekulativen Angriffen hinzugefügt.
- Hinzugefügt Unterstützung des Mechanismus Vertrauliches VMBus, das im Hypervisor HyperV verwendet wird, um eine gegen Eingriffe geschützte Interaktion zwischen dem Gastbetriebssystem, das im vertraulichen Modus (mit Speicherverschlüsselung und Registerisolierung basierend auf AMD SNP und Intel TDX-Technologien) ausgeführt wird, und dem Paravisor, der für den Zugriff auf Geräte zuständig ist, die vertrauliche Daten verarbeiten.
- Hinzugefügt Möglichkeit zur Übertragung von Informationen über einen unerwartet beendeten Prozess (zur Generierung eines Core-Dumps) über den Mechanismus pidfd. Die PIDFD-ID ist mit einem bestimmten Prozess verknüpft und ändert sich nicht, während die PID nach der Beendigung des aktuellen Prozesses, der mit dieser PID verknüpft ist, einem anderen Prozess zugewiesen werden kann. Die Verwendung von pidfd ermöglicht das Sperren des Austausches Angriffen durch die Ersetzung eines unerwartet beendeten SUID-Prozesses durch einen anderen Prozess, um einen Rennzustand zu erreichen, der nach dem Beginn der Bearbeitung des Kernel-Notfalls, jedoch vor der Überprüfung der Prozessparameter durch den Benutzerraum auftritt.
- Netzwerksubsystem
- In das NetzwerkSubsystem wurden vorgenommen. Optimierung zur Steigerung der Datenübertragungseffizienz (TX). Entfernung der Spin-Sperre aus der Funktion __dev_queue_xmit() und Verwendung einer nicht blockierenden llist-Struktur. hat ermöglicht die Leistung unter hoher Last um das Vierfache zu steigern und die Paketversandintensität bei reduzierter CPU-Last zu verdoppeln.
- Es wurde die Möglichkeit zum Deaktivieren Für bestimmte Netzwerksockets gelten die systemweiten Beschränkungen für die Speichernutzung (in diesem Fall werden die allgemeinen Speichergrenzen, die für einzelne Container gesetzt werden, verwendet). Zur Verwaltung der Deaktivierung von Grenzen wurde sysctl net.core.bypass_prot_mem und das Flag SK_BPF_BYPASS_PROT_MEM in der Funktion bpf_setsockopt vorgeschlagen.
- Hinzugefügt Unterstützung der Erweiterung RFC 5837, die den ICMP-Nachrichten Time Exceeded hinzufügt, die bei Ablauf der Lebenszeit (TTL) eines Pakets zurückgegeben werden, Informationen über die eingehenden Netzwerkinterfaces zur Bereitstellung detaillierterer Informationen bei der Routenverfolgung mit dem Tool traceroute.
- Hinzugefügt Unterstützung für kontinuierliches aktives Polling (Busy Polling) in einem separaten Kernel-Thread zum Abrufen von Deskriptoren aus den RX/TX-Warteschlangen für Anwendungen, die minimale Latenzen erfordern.
- Unterstützung für das Protokoll CAN XL (Controller Area Network eXtended Length), bei dem die Datenfeldgröße auf 2048 Bytes erhöht wurde, um die Integration mit TCP/IP-Netzwerken zu ermöglichen. Zudem wurde die Möglichkeit zur Tunnelung von Ethernet-Frames implementiert und Unterstützung hinzugefügt. Pulsweitenmodulation, was Datenübertragungen mit Geschwindigkeiten von 20 Mbit/s und mehr ermöglichte.
- Hinzugefügt Unterstützung der Struktur sockaddr_unsized, einer Variante der sockaddr-Struktur, die ein Array mit flexiblen Elementen anstatt eines Arrays fester Größe (sa_data[] anstelle von sa_data[14], das im Wesentlichen für Verweise auf größere Strukturen verwendet wurde).
- Die Nutzung der Funktionalitäten von getsockname und getpeername über das io_uring-Subsystem wurde hinzugefügt.
- Hinzugefügt wurden sysctl net.ipv4.tcp_rcvbuf_low_rtt и net.ipv4.tcp_comp_sack_rtt_percent zur Optimierung von TCP.
- Hinzugefügt Unterstützung für Links mit einer Bandbreite von 1600 Gbps (1,6T).
- Ausrüstung
- In das DRM (Direct Rendering Manager)-Subsystem wurde eine API integriert, um die Hardwarefähigkeiten zur Farbwandlung zu nutzen. Dadurch können komplexe Farbtransformationen ohne Shader-Verarbeitung oder CPU-Code-Ausführung umgesetzt werden. Für die Ausgabe von Inhalten auf HDR-Monitoren können nun anspruchsvolle Farbkonvertierungen vom Display-Controller in der Phase vor und nach der Schichtüberlagerung (Blending) durchgeführt werden, anstelle des Software-Compositings für den finalen Anzeigepuffer. Neben der Reduzierung von Overhead und Energieverbrauch bei der HDR-Ausgabe kann diese Funktionalität auch zur korrekten Farbübertragung in Video- oder Bildbearbeitungsprogrammen eingesetzt werden.
- Hinzugefügt Der Ethosu-Treiber für die NPU Arm Ethos U65 und U85 wurde entwickelt, um die Hardwarebeschleunigung der Ausführung von KI-Modellen zu ermöglichen.
- Im i915-Treiber für GPUs der Lunar Lake-Serie und neuer wurde die Unterstützung für hardwaregestütztes Bildschärfen (Sharpening) hinzugefügt.
- Fortsetzung der Arbeiten am DRM-Treiber (Direct Rendering Manager) für die GPU auf Basis der Intel Xe-Architektur, die in den Intel Arc-Grafikkarten und integrierter Grafik seit den Tiger Lake-Prozessoren verwendet wird. Erste Unterstützung für die Xe3P-Architektur, die in der Crescent Island-GPU und der Nova Lake-familie integrierter Grafikprozessoren verwendet wird, wurde hinzugefügt.
- Der AMDGPU-Treiber bietet nun vollständige Unterstützung für die AMD-Grafikkarten der GCN 1.0-Serie 'Southern Island' und der 1.1-Serie 'Sea Islands', für die zuvor der Radeon-Treiber verwendet wurde. Der AMDGPU-Treiber hat die Funktionalität des Radeon-Treibers erreicht und ist standardmäßig für die angegebenen GPUs aktiviert. Die GCN 1.x-Karten wurden zwischen 2012 und 2019 gefertigt und umfassen Modelle wie Radeon HD 77xx/78xx/79xx/87xx/88xx/89xx, Radeon R9 280, FirePro W4000-W9000, Radeon Sky 700/900, Radeon R9 265/270/370, Radeon R9 290/390, HD 7790/8870 und andere Grafikkarten der Radeon Rx 200/Rx 300-Familie. Neben der Erhöhung der Leistung im Durchschnitt um 24% ermöglicht der Wechsel zu AMDGPU die Unterstützung des Grafik-APIs Vulkan 1.3 für diese GPUs. Darüber hinaus wurde die Unterstützung für analoge Anschlüsse und Video Coding Engine 1.0 hinzugefügt, und der DC-Stack (Display Core) wird standardmäßig für GPUs auf Basis der Bonaire-Mikroarchitektur (Radeon HD 7790) verwendet.
- Im Nouveau-Treiber wurde unterstützt die NVJPG-Hardwarebeschleunigung, die im SoC Tegra210 vorhanden ist.
- Im Panthor-Treiber hinzugefügt unterstützt die GPU Mali-G1 und erste Unterstützung für den MediaTek MT8196-Chip.
- Hinzugefügt Unterstützung für die Audiokomponenten der Intel Nova Lake S-Chips, HP-Laptops mit HDA CS35L41 sowie Audio-Schnittstellen CIX IPBLOQ HD und Onkyo SE-300PCIE.
- Die Integration von Komponenten des Nova-Treibers für NVIDIA-GPUs, die mit GSP-Firmware ausgestattet sind, wird fortgesetzt. Diese Firmware wird seit der GeForce RTX 2000 Serie auf Basis der Turing-Architektur verwendet. Der Treiber wurde in Rust geschrieben. In der neuen Version wurde mit der Arbeit an RPC begonnen und beendet zu sein. die Implementierung des GSP (GPU System Processor) Co-Prozessors erfolgt.
- Hinzugefügt Unterstützung für ARM-Plattformen, SoCs und Geräte: Bananapi r4 pro, LinkEase EasePi R1, Qualcomm MSM8937 (Snapdragon 430), Renesas R-Car X5H, FriendlyElec NanoPi R76S, TI AM62L, Black Sesame Technologies C1200, Aspeed AST2600, Genio 1200 EVK, grinn geniosbc-510/700, Tanix TX9 Pro, Radxa Dragon Q6A, Tinker Board 3/3S, Aquila AM69, phyBOARD-Segin-i.MX91, i.MX 95 Verdin Evaluation Kit, Toradex SMARC iMX95, VIDIA Jetson Nano 2GB, Renesas rz/g3s, Indiedroid Nova, 24 Varianten von Enclustra Mercury-Platinen.
- Unterstützung für Smartphones und Tablets mit SoC Mediatek MT6582 (Alcatel yarisxl), Nvidia Tegra124 (Xiaomi Mi Pad) und Qualcomm MSM8939 (ASUS ZenFone 2) hinzugefügt. Unterstützung für Laptops mit SoC Qualcomm sdm850, wie dem Huawei MateBook E 2019, hinzugefügt.
- Unterstützung für SoC und Platinen auf Basis der RISC-V-Architektur hinzugefügt: OrangePi R2S, OrangePi RV, Anlogic dr1v90, Tenstorrent Blackhole.
Gleichzeitig hat die lateinamerikanische Free Software Foundation die Variante ist gut gelungen. vollständig freies Kernels 6.19 — Linux-libre 6.19-gnu, bereinigt von Firmware- und Treiberkomponenten, die nicht freie Elemente oder Codebereiche enthalten, deren Verwendung vom Hersteller eingeschränkt wird. In der Version 6.19 wurde der Code zum Laden binärer Firmwares aus dem SDCA-Audiosubsystem entfernt. Der Code zur Bereinigung von Blobs in den Treibern Intel XE, Nova-Core, Qualcomm Iris, Venus und Q6V5, TI PRUeth, Intel iwlwifi, Marvell mwifiex, FourSemi fs210x, Realtek rt1320 und den Audiocodecs TI tas2783 wurde aktualisiert. Die Bereinigung der Blob-Namen in den dts-Dateien (Device Tree) für ARM-Chips wurde durchgeführt. Die Bereinigung des Treibers STM C8SECTPFE DVB, der aus dem Kernel entfernt wurde, wurde eingestellt.
Quelle: linux.org.ru
