Release des Linux-Kernels 6.9

Nach zwei Monaten Entwicklung prĂ€sentierte Linus Torvalds die Veröffentlichung des Linux-Kernels 6.9. Zu den auffĂ€lligsten Änderungen gehören: das Modul dm-vdo fĂŒr die Deduplikation und Komprimierung von BlockgerĂ€ten, der Direktzugriffsmodus fĂŒr Dateien in FUSE, die UnterstĂŒtzung fĂŒr die Erstellung von pidfd fĂŒr einzelne Threads, die BPF-Token-Mechanik, die UnterstĂŒtzung von Rust auf ARM64-Systemen, die Einstufung des Ext2-Dateisystems als veraltet, die Entfernung des alten NTFS-Treibers und die UnterstĂŒtzung der Intel FRED-Mechanik.

In die neue Version wurden 15680 Fehlerbehebungen von 2106 Entwicklern aufgenommen, die PatchgrĂ¶ĂŸe betrĂ€gt 54 MB (Änderungen betrafen 11825 Dateien, 687954 Codezeilen wurden hinzugefĂŒgt, 225344 Zeilen gelöscht). In der vorherigen Ausgabe wurden 15641 Fehlerbehebungen von 2018 Entwicklern gemeldet, die PatchgrĂ¶ĂŸe betrug 44 MB. Etwa 42 % aller in 6.9 vorgenommenen Änderungen betreffen GerĂ€tetreiber, etwa 17 % beziehen sich auf die Aktualisierung hardwarearchitekturspezifischen Codes, 13 % stehen im Zusammenhang mit dem Netzwerkstack, 7 % mit Dateisystemen und 4 % mit internen Kernel-Subsystemen.

Die wichtigsten Neuerungen im Kern 6.9:

  • Festplattensubsystem, Ein-/Ausgabe und Dateisysteme
    • Im Device Mapper (DM) wurde ein neuer Handler dm-vdo (virtual data optimizer) hinzugefĂŒgt, der es ermöglicht, basierend auf bestehenden BlockgerĂ€ten ein virtuelles BlockgerĂ€t zu implementieren, das Funktionen wie die Deduplikation wiederkehrender Daten, die Datenkompression, das Auslassen leerer Blöcke und die Erhöhung der BlockgerĂ€tegrĂ¶ĂŸe nach Bedarf (thin provisioning) bietet. Diese Funktionen werden auf BlockgerĂ€teebene implementiert und sind unabhĂ€ngig vom verwendeten Dateisystem (zum Beispiel kann mit dm-vdo eine automatische ZusammenfĂŒhrung von duplizierten Daten und die Speicherung von Informationen in komprimierter Form fĂŒr beliebige Dateisysteme realisiert werden). Die Anwendung von dm-vdo fĂŒr physische Speichermedien mit einer GrĂ¶ĂŸe von bis zu 256 TB und die Erstellung logischer Volumen mit einer GrĂ¶ĂŸe von bis zu 4 PB wird unterstĂŒtzt. FĂŒr die Verwaltung von VDO-Partitionen wird empfohlen, lvm zu verwenden. Die VDO-Technologie wurde von Permabit entwickelt und nach der Übernahme durch Red Hat im Jahr 2017 geöffnet.
    • Im FUSE-Subsystem, das zur Implementierung von Dateisystemen im Benutzerspace verwendet wird, wurde eine erste Implementierung des „Passthrough“-Modus hinzugefĂŒgt, die es ermöglicht, Daten von Dateien direkt auf Kernel-Ebene abzurufen, ohne den im Benutzerspace arbeitenden Prozess zu durchlaufen, was in bestimmten Situationen die Leistung erheblich steigern kann. Beispielsweise können FUSE-Implementierungen von Dateisystemen, die im Nur-Lese-Modus arbeiten und den Zugriff auf Dateien einschrĂ€nken, den Inhalt von Dateien aus dem ursprĂŒnglichen Dateisystem bereitstellen, ohne sie an den FUSE-Prozess weiterzugeben.
    • Der Treiber mit der Implementierung des Ext2-Dateisystems wurde in die Kategorie der veralteten (deprecated) Treiber aufgenommen. Als Grund wird die UnterstĂŒtzung von nur 32-Bit-Zeitstempeln in inode erwĂ€hnt, die am 19. Januar 2038 ĂŒberlaufen werden. Statt des ext2-Treibers wird empfohlen, den ext4-Treiber zu verwenden, der mit dem Ext2-Dateisystem kompatibel ist und auf ext2-Partitionen Zeitstempel verwenden kann, die nicht von dem 2038-Problem betroffen sind, sofern das Dateisystem mit inodes erstellt wurde, die grĂ¶ĂŸer als 255 Byte sind (im ext2-Treiber wurden 32-Bit-Zeitstempel unabhĂ€ngig von der GrĂ¶ĂŸe der inode verwendet).
    • Der alte NTFS-Dateisystemtreiber wurde entfernt, ersetzt durch den neuen NTFS3-Treiber, der seit der Version 5.15 erhĂ€ltlich ist. Die Bereitstellung von zwei NTFS-Implementierungen im Kernel wird als nicht sinnvoll erachtet, da der alte Treiber seit vielen Jahren nicht aktualisiert wurde, in einem desolaten Zustand ist und nur im Nur-Lese-Modus arbeiten kann.
    • In die Dateisysteme zonefs und hugetlbfs wurde die UnterstĂŒtzung fĂŒr das Mapping von Benutzer-IDs montierter Dateisysteme hinzugefĂŒgt, die verwendet wird, um Dateien eines bestimmten Benutzers auf einer montierten fremden Partition mit einem anderen Benutzer im aktuellen System abzugleichen.
    • In NFSv4 erhalten Administratoren die Möglichkeit, die ZustĂ€nde von Dateizugriffen und -sperren zu bereinigen.
    • FĂŒr das Ext4-Dateisystem werden nur Fehlerbehebungen und Updates der kunit-Tests verzeichnet.
    • In Btrfs wird die Fortsetzung der FunktionsĂŒbertragung auf die Verwendung von Seitenfolien (page folios) fortgesetzt.
    • Im XFS-Dateisystem wurde die Arbeit an der Implementierung der Nutzung des Dienstprogramms fsck zur ÜberprĂŒfung und Behebung festgestellter Probleme im Online-Modus ohne AushĂ€ngen des Dateisystems fortgesetzt.
    • Im Systemaufruf pwritev2() wurde das Flag RWF_NOAPPEND hinzugefĂŒgt, das es ermöglicht, einen Offset fĂŒr die Schreiboperation anzugeben, selbst wenn die Datei im Nur-Append-Modus geöffnet wurde.
    • Neue ioctl-Befehle hinzugefĂŒgt: FS_IOC_GETUUID — gibt die UUID der angegebenen Dateisystem zurĂŒck, und FS_IOC_GETFSSYSFSPATH — bestimmt den Speicherort im /sys/fs des angegebenen eingehĂ€ngten FS.
    • Die Dateisysteme efs, qnx4 und coda wurden auf die Verwendung der neuen API zum EinhĂ€ngen von Partitionen umgestellt.
    • Die Implementierung von Dateioperationen, die im Fall-insensitiven Modus durchgefĂŒhrt werden, wurde verbessert. Die Leistung wurde durch anfĂ€ngliches Vergleichen unter BerĂŒcksichtigung der Groß-/Kleinschreibung und das ZurĂŒckfallen auf die Suche ohne BerĂŒcksichtigung der Groß-/Kleinschreibung erhöht. Probleme beim EinhĂ€ngen von overlayfs ĂŒber Verzeichnissen, fĂŒr die der fall-insensitive Modus aktiviert wurde, wurden behoben.
  • Speicher und Systemdienste
    • Die UnterstĂŒtzung des Intel FRED (Flexible Return and Event Delivery) Mechanismus wurde implementiert, der entwickelt wurde, um die Effizienz und ZuverlĂ€ssigkeit der InformationsĂŒbertragung ĂŒber niedrige Ereignisse im Vergleich zu dem derzeit verwendeten IDT (Interrupt Descriptor Table) Mechanismus zu verbessern. Die Leistungssteigerung und die Reduzierung der Latenz werden durch die RĂŒckkehr von Ereignissen mittels der Prozessoranweisung IRET anstelle der Übertragung von Ereignissen ĂŒber die IDT-Tabelle erreicht. Die ZuverlĂ€ssigkeit wird durch die getrennte Verarbeitung des Eintreffens von Ereignissen im Kontext des Kernels und im Benutzermodus, den Schutz vor geschachtelter NMI-AusfĂŒhrung und die Speicherung aller mit der Ausnahme verbundenen CPU-Register in einem erweiterten Stack-Frame gewĂ€hrleistet.
    • Die Möglichkeit zur Optimierung des Zugriffs auf Daten einzelner CPU-Kerne wurde durch die Verwendung benannter AdressrĂ€ume (Named Address Spaces) im Kernel-Code implementiert, die in GCC als GNU C-Erweiterung realisiert sind.
    • Der pidfd_open()-Funktion wurde das Flag PIDFD_THREAD hinzugefĂŒgt, das es ermöglicht, pidfd fĂŒr einzelne Threads zu erstellen, anstatt pidfd nur im Kontext des Gruppenleiters von Threads zu verwenden. Es wurde auch eine Implementierung eines Pseudo-Dateisystems vorgeschlagen, um ĂŒber das virtuelle Dateisystem auf pidfd zuzugreifen. Im Gegensatz zur Identifizierung von Prozessen mit pid ist die pidfd-ID an einen bestimmten Prozess gebunden und Ă€ndert sich nicht, wĂ€hrend der PID nach Abschluss des aktuellen Prozesses an einen anderen Prozess gebunden werden kann.
    • Im BPF-Subsystem wurde der BPF-Token-Mechanismus hinzugefĂŒgt, der Programmen selektiv Zugriffsrechte auf privilegierte BPF-Operationen gewĂ€hrt. Beispielsweise kann einem nicht privilegierten Programm der Zugang zu einzelnen BPF-Subsystemen gewĂ€hrt werden, ohne vollstĂ€ndige CAP_BPF-Rechte zu erteilen.
    • Im BPF-Subsystem wurde ein neuer Typ des gemeinsamen Speichers bpf_arena hinzugefĂŒgt, der den Bereich definiert, der von BPF-Programmen und Prozessen im Benutzerspeicher gemeinsam genutzt werden kann. Es wurde der Befehl may_goto hinzugefĂŒgt, der die Organisation von Schleifen ermöglicht, die durch den Verifier unterbrochen werden können. Zudem wurde die Möglichkeit hinzugefĂŒgt, aus BPF-Programmen beliebige TCP SYN-Cookies zu generieren und BPF-Handler zur BekĂ€mpfung von SYN-Flutting zu erstellen.
    • Die Übertragung von Änderungen aus dem Rust-for-Linux-Zweig, die die Nutzung 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 obligatorischen Build-AbhĂ€ngigkeiten des Kernels gehört). Die UnterstĂŒtzung fĂŒr die Nutzung der Programmiersprache Rust auf 64-Bit-ARM-Prozessoren wurde hinzugefĂŒgt. Ein Umstieg auf die Version 1.76 von Rust wurde vollzogen. Das Makro 'container_of!' wurde hinzugefĂŒgt. Anstelle der instabilen FunktionalitĂ€t 'ptr_metadata' wurde die stabile Methode 'byte_sub' verwendet. Ein Modul 'time' mit der Funktion zur Umwandlung von Zeit 'msecs_to_jiffies()' wurde hinzugefĂŒgt.
    • Im io_uring-Subsystem wurde die Möglichkeit hinzugefĂŒgt, Dateien zu kĂŒrzen (ftruncate_file).
    • Ein neuer Typ von Arbeitswarteschlangen WQ_BH (workqueue Bottom Halves) wurde hinzugefĂŒgt, um asynchrone CodeausfĂŒhrungen im Kontext von Software-Interrupts zu ermöglichen und die veralteten Tasklets zu ersetzen.
    • Das Timer-Subsystem wurde umfassend ĂŒberarbeitet, wobei die Logik zur Auswahl des aktiven CPU-Kerns zur AusfĂŒhrung des ausgelösten Timers verbessert wurde, um inaktive Kerne im Energiesparmodus nicht zu wecken.
    • Es wurde die Möglichkeit implementiert, das Energieverbrauchsmodell des Kerns (EM, Energy Model) wĂ€hrend des Betriebs zu aktualisieren, was beispielsweise zur BerĂŒcksichtigung des Einflusses der Betriebstemperatur auf die Energieeffizienz der CPU verwendet werden kann. Die Leistung der Funktion em_cpu_energy() wurde erheblich gesteigert, die jetzt in Tests auf einem stationĂ€ren System 1,43 Mal schneller und im Test auf dem RockPi 4B 1,69 Mal schneller ausgefĂŒhrt wird.
    • Die UnterstĂŒtzung fĂŒr den Betrieb von Systemen auf Basis der Architektur ARM64 im LPA2-Modus mit einem 52-Bit-virtuellen Adressraum wurde hinzugefĂŒgt.
    • FĂŒr ARM64-Systeme wurde die UnterstĂŒtzung fĂŒr kontinuierliche PTE-EintrĂ€ge (Page Table Entry) implementiert, die die Leistung durch eine effizientere Nutzung des TLB (Translation Lookaside Buffer) erhöhen können.
    • Patches zur Verbesserung der Leistung des Speichermanagementsystems wurden implementiert, um die Entstehung konkurrierender Sperren in vmalloc() zu reduzieren.
    • FĂŒr die LoongArch-Architektur wurde ein Mechanismus fĂŒr das Hot-Patching des Kernels (Live Patching) implementiert, der es ermöglicht, Korrekturen am Kernel ohne Neustart anzuwenden.
    • FĂŒr RISC-V-Systeme wurde die UnterstĂŒtzung des Systemaufrufs membarrier() implementiert, der Speicherbarrieren fĂŒr in der Systemumgebung laufende Threads festlegt.
    • Die Anforderungen an die Version von LLVM/Clang, die fĂŒr den Kernelbau verwendet werden kann, wurden erhöht. FĂŒr den Bau ist jetzt mindestens die Version LLVM 13.0.1 erforderlich (zuvor war der Bau mit LLVM 11+ unterstĂŒtzt).
    • Der Mechanismus „User Trace Events“, der es ermöglicht, Trace-Events aus Benutzerprozessen zu erstellen, um die AktivitĂ€t im Benutzerspeicher zu verfolgen, unterstĂŒtzt jetzt den Export von Ereignisinformationen in verschiedenen Formaten (USER_EVENT_REG_MULTI_FORMAT).
    • Dem Funktionsaufruf-Trace-Mechanismus wurde die Möglichkeit hinzugefĂŒgt, den Zustand der ĂŒbergebenen Argumente bei der RĂŒckverfolgung des Funktionsausgangs zu ĂŒberwachen. Die RĂŒckgabewerte können jetzt den bei der Funktionsaufruf verwendeten Argumenten zugeordnet werden.
    • Das Perf-Tool unterstĂŒtzt jetzt den Aggregierungsmodus „cluster“ („perf stat -a —per-cluster“), um Statistiken von gemeinsam genutzten Ressourcen zusammenzufassen. Die Möglichkeit zur Verwendung der libcapstone-Bibliothek fĂŒr die Disassemblierung von Prozessoranweisungen („perf script -F disasm“) wurde implementiert. DarĂŒber hinaus wurden Optimierungen des Speicherverbrauchs bei der AusfĂŒhrung der Befehle perf report und perf annotate durchgefĂŒhrt.
  • Virtualisierung und Sicherheit
    • Ein Schutz gegen die VulnerabilitĂ€t RFDS (Register File Data Sampling) in Intel Atom-Prozessoren wurde hinzugefĂŒgt, die es ermöglicht, Restinformationen aus den Registerdateien (RF, Register File) des Prozessors zu extrahieren, die zur gemeinsamen Speicherung des Inhalts der Register in allen Aufgaben auf demselben CPU-Kern verwendet werden. FĂŒr die Minderung der Schwachstelle sind eine Microcode-Aktualisierung und die Verwendung der instruktion VERW erforderlich, um die Inhalte der mikroarchitektonischen Puffer beim ZurĂŒckkehren vom Kernel in den Benutzerspeicher zu löschen. Um den Schutz beim Booten des Kernels zu aktivieren, kann das Flag „reg_file_data_sampling=on“ gesetzt werden. Informationen ĂŒber die AnfĂ€lligkeit fĂŒr die Schwachstelle und die VerfĂŒgbarkeit des erforderlichen Microcodes zum Schutz können in der Datei „/sys/devices/system/cpu/vulnerabilities/reg_file_data_sampling“ eingesehen werden.
    • Die grundlegende UnterstĂŒtzung fĂŒr den Schutz von Gastbetriebssystemen durch die AMD SEV-SNP (Secure Nested Paging)-Erweiterung wurde hinzugefĂŒgt, die einen sicheren Umgang mit verschachtelten Seitentabellen ermöglicht und vor den Angriffen 'undeSErVed' und 'SEVerity' auf AMD EPYC-Prozessoren schĂŒtzt und so den Schutzmechanismus AMD SEV (Secure Encrypted Virtualization) umgeht. In KVM den erforderlichen Änderungen zur Nutzung von SNP sollen in der Version 6.10 hinzugefĂŒgt werden.
    • Die Module, die Technologien wie IMA (Integrity Measurement Architecture) und EVM (Extended Verification Module) implementieren, wurden auf das LSM (Linux Security Modules)-Framework umgestellt, was es ermöglichte, den Code erheblich zu vereinfachen, redundante FunktionalitĂ€ten zu bĂŒndeln und die ĂŒber LSM verfĂŒgbaren Standardfunktionen zu nutzen, ohne die FunktionalitĂ€t zu verlieren. Das IMA-Modul dient zur IntegritĂ€tsprĂŒfung von Betriebssystemkomponenten mittels digitaler Signaturen und Hashes. Das EVM-Modul schĂŒtzt erweiterte Dateiattribute (xattrs) vor Angriffen, die darauf abzielen, deren IntegritĂ€t zu verletzen (EVM verhindert Offline-Angriffe, bei denen ein Angreifer Metadaten Ă€ndern kann, z. B. beim Booten von einem eigenen Speichermedium).
    • Die Systemaufrufe lsm_list_modules(), lsm_get_self_attr() und lsm_set_self_attr() wurden ĂŒberarbeitet, um die KompatibilitĂ€t mit 32-Bit-Umgebungen zu verbessern. Diese Aufrufe dienen dazu, eine Liste der geladenen LSM-Module (Linux Security Modules) auszugeben und die Attribute des LSM-Moduls abzurufen/zu setzen. Die Änderungen verletzen die AbwĂ€rtskompatibilitĂ€t, jedoch schĂ€tzte Linus Torvalds, dass diese Änderungen zulĂ€ssig sind, da die neuen Systemaufrufe in der letzten Kernel-Version hinzugefĂŒgt wurden und bisher nicht in Anwendungen verwendet werden.
    • Es wurde ein Versuch unternommen, den Mechanismus UBSAN (Undefined Behavior Sanitizer) wieder zu verwenden. Das Problem besteht darin, dass Compiler ganz unterschiedlich mit ÜberlĂ€ufen ganzer Zahlen fĂŒr signierte und unsigned Typen umgehen. Signierte ÜberlĂ€ufe und ÜberlĂ€ufe von Zeigern fallen in die Kategorie des undefinierten Verhaltens, wĂ€hrend unsigned ÜberlĂ€ufe modulo 2n abgeschnitten werden, wobei nur die niederwertigsten Bits des Ergebnisses erhalten bleiben („wrap-around“) und nicht unter undefiniertes Verhalten fallen. Um Situationen mit undefiniertem Verhalten auszuschließen, wird der Kernel mit der Option „-fno-strict-overflow“ kompiliert, was zu einer Verwendung von „wrap-around“ fĂŒr alle ÜberlĂ€ufe ganzer Zahlen fĂŒhrt. GCC und Clang können bei der Verwendung des Flags „-fno-strict-overflow“ einige Probleme nicht richtig diagnostizieren, und die Aktivierung von UBSAN zielt darauf ab, eine Zusammenarbeit mit den Compiler-Entwicklern zur Beseitigung von Fehlalarmen und zur Identifizierung von ÜberlĂ€ufen ganzer Zahlen an Orten durchzufĂŒhren, an denen keine expliziten PrĂŒfungen vorhanden sind.

      Zur ÜberprĂŒfung möglicher ÜberlĂ€ufe im Kernel werden Konstruktionen wie „var + offset PAGE_SHIFT) < pgoff){..}“) verwendet, die an die UnterstĂŒtzung mit dem Flag „-fno-strict-overflow“ gebunden sind und nicht den gesamten Code abdecken, in dem potenziell ein Überlauf auftreten kann. Das Problem ist, dass solche PrĂŒfungen bei der Verwendung von UBSAN eine große Anzahl von Fehlalarmen verursachten, weshalb UBSAN im Jahr 2021 deaktiviert werden musste. In der aktualisierten Implementierung wurde vorgeschlagen, spezielle Anmerkungen __signed_wrap und __unsigned_wrap sowie fertige Makros mit PrĂŒfungen add_would_overflow(a, b) und add_wrap(a, b) zu verwenden, die es ermöglichen, die beabsichtigte Verwendung von ÜberlĂ€ufen durch die Entwickler von unbeabsichtigten ÜberlĂ€ufen zu trennen, die zu SicherheitsanfĂ€lligkeiten fĂŒhren können. Der Vorschlag fĂŒr eine umfassendere Umgestaltung des Kernels mit zusĂ€tzlichen Typdefinitionen wurde von Linus Torvalds abgelehnt.

  • Netzwerksubsystem
    • Im NetzwerkSubsystem wurde daran gearbeitet, das Auftreten konkurrierender Sperren („lock contention“, der Versuch, eine von einem anderen Thread gehaltene Sperre zu erhalten) zu verringern. Die Verwendung von RTNL-Sperren wurde reduziert.
    • Die Möglichkeit zur Aktivierung der UnterstĂŒtzung von Active Socket Polling (Busy Polling) im Kontext einzelner epoll-Aufrufe wurde hinzugefĂŒgt. Die GrĂ¶ĂŸe des Pools und die Budgetparameter können unabhĂ€ngig von den standardmĂ€ĂŸigen Systemeinstellungen festgelegt werden.
    • Die net_hotdata-Struktur wurde implementiert, um die Effizienz des Cachings der am hĂ€ufigsten verwendeten Netzwerk-Konfigurationsvariablen zu erhöhen.
    • In MPTCP wurde die UnterstĂŒtzung zur Festlegung der TCP_NOTSENT_LOWAT-Option fĂŒr Sockets hinzugefĂŒgt, die die GrĂ¶ĂŸe des Sendepuffers begrenzt. In der API fĂŒr MCTP-Sockets wurde die UnterstĂŒtzung von Netzwerk-IDs hinzugefĂŒgt, die die Verwendung mehrerer nicht ĂŒberlappender MCTP-Netzwerke auf einem Host ermöglichen.
    • In IPSec wurde die UnterstĂŒtzung fĂŒr das Umleiten von ICMP-Fehlermeldungen (RFC 4301) hinzugefĂŒgt.
    • Der Prozess des Scannens von Routen mit abgelaufener Lebensdauer wurde beschleunigt.
    • Die Leistung von XDP wurde verbessert, indem die Zuweisung großer Speicherblöcke strikter vermieden wird.
    • Die Möglichkeit, Metadaten an netconsole-Nachrichten anzuhĂ€ngen, wurde hinzugefĂŒgt.
    • In Netfilter wurde die Definition von Tabellen aus dem Benutzerspeicher erlaubt, die an den verwaltenden Hintergrundprozess gebunden sind und nach dem Abschluss der Benutzeranwendung nicht automatisch gelöscht werden.
    • In nftables wurde das HinzufĂŒgen von Elementen zu Set-Gruppen mit zusammengefassten Bereichen beschleunigt.
  • AusrĂŒstung
    • Im i915-Treiber wurde die UnterstĂŒtzung fĂŒr Intel LunarLake-Chips (Xe 2) weiter vorangetrieben. Neue PCI-IDs fĂŒr GerĂ€te basierend auf Intel Arrow Lake und Alder Lake N wurden hinzugefĂŒgt. FĂŒr DisplayPort wurde die UnterstĂŒtzung fĂŒr Tunneling (DP Tunneling) und Bandbreitenzuweisung (Bandwidth Allocation) hinzugefĂŒgt. FĂŒr alle Plattformen wurde der Fastboot-Modus aktiviert. Außerdem wurde die UnterstĂŒtzung fĂŒr Debugging-Ausgaben in Bezug auf einzelne GerĂ€te hinzugefĂŒgt.
    • Im AMDGPU-Treiber wurde die Vorbereitung zur Implementierung der UnterstĂŒtzung fĂŒr AMD RDNA3.5 und RDNA4 GPUs getroffen. UnterstĂŒtzung fĂŒr ATHUB 4.1, LSDMA 7.0, JPEG DPG, IH 7.0, HDP 7.0, VCN 5.0, SMU 13.0.6, NBIO 7.11, SDMA 6.1, MMHUB 3.3, DCN 3.5.1, NBIF 6.3.1, VPE 6.1.1 und das RAS ACA-Framework wurde hinzugefĂŒgt. Ein Parameter freesync_video wurde in das Kernmodul eingefĂŒgt, um die experimentelle UnterstĂŒtzung fĂŒr die Optimierung des Wechsels zwischen Video-Modi mit der adaptiven Synchronisationstechnologie FreeSync zu aktivieren.
    • Im Nouveau-Treiber wurde der Steuerungscode fĂŒr den Bildschirm auf die Verwendung der Funktion kmemdup() umgestellt.
    • Die Arbeit am DRM-Treiber (Direct Rendering Manager) Xe fĂŒr GPUs auf Basis der Intel Xe-Architektur, die in den Grafikkarten der Intel Arc-Familie und in der integrierten Grafik ab den Tiger Lake-Prozessoren verwendet wird, wurde fortgesetzt.
    • Ein DRM-Treiber fĂŒr Mediatek MT8188-VDOSYS1-Chips wurde hinzugefĂŒgt.
    • Die mit den Video-Subsystemen verbundenen Kernel-Einstellungen wurden in den Abschnitt CONFIG_VIDEO verschoben.
    • UnterstĂŒtzung fĂŒr ARM64 SoCs: Mediatek MT7981B (Filogic 820), MT7988A (Filogic 880), NXP i.MX8DXP, Renesas R8A779G2 (R-Car V4H ES2.0), R8A779H0 (R-Car V4M), TI J722S wurde hinzugefĂŒgt.
    • UnterstĂŒtzung fĂŒr ARM-Plattformen und GerĂ€te wurde hinzugefĂŒgt: Android-Handys basierend auf dem Tegra30-Chip, Chromebook-Modelle auf Basis des Mediatek MT8186, NAS, Tablets und Spielkonsolen auf Basis der Rockchips RK35xx, White Hawk-Boards basierend auf SoCs von Renesas, Boards basierend auf Qualcomm SM8550 (Snapdragon 8 Gen 2), Apalis Evaluation Board, Sielaff i.MX6 Solo Board und Samsung Galaxy Tab 4 10.1 LTE.
    • Der Code des Audio-Subsystems ALSA wurde refaktoriert. UnterstĂŒtzung fĂŒr Audio-Systeme von Microchip SAM9x7, NXP i.MX95 und Qualcomm WCD939x wurde hinzugefĂŒgt. Der SoundWire-Treiber erhielt UnterstĂŒtzung fĂŒr ASoC mit Audio-Coprozessoren von AMD ACP 6.3, und fĂŒr Intel-Systeme wurde ein DSPless-Modus implementiert. UnterstĂŒtzung fĂŒr zusĂ€tzliche Audiocodecs von Cirrus HD wurde hinzugefĂŒgt. Die Verwaltung von Audio-GerĂ€ten im Virtio-Treiber wurde verbessert.
    • UnterstĂŒtzung fĂŒr Ethernet-Controller Marvell Octeon PCI Endpoint NIC VF und Intel E825-C 100G wurde hinzugefĂŒgt.

Gleichzeitig bildete die lateinamerikanische Free Software Foundation eine vollstĂ€ndig freie Version des Kernels 6.9 — Linux-libre 6.9-gnu, die von Firmware und Treibern, die nicht freie Komponenten oder Codeabschnitte enthalten, sowie von HerstellerbeschrĂ€nkungen befreit ist. Im Release 6.9 wurde der Code zur Bereinigung von Blobs in den Treibern amdgpu, ath12k, adreno, btusb und r8169 aktualisiert. Eine Bereinigung des neuen Treibers ptp_fc3 wurde durchgefĂŒhrt. Die Benennung von Blobs in DTS-Dateien (Device Tree) fĂŒr die Architektur Aarch64 wurde bereinigt. Probleme mit der Bereinigung des Treibers i915, die zu einer Blockade wĂ€hrend der Initialisierung fĂŒhrten, wurden beseitigt. Änderungen im Zusammenhang mit der Handhabung von Blobs, die in Form von Hexdump bereitgestellt werden, wurden vorgenommen.

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