Linux-Kernel 7.0 veröffentlicht

Nach zwei Monaten Entwicklung präsentierte Linus Torvalds die Veröffentlichung des Linux-Kernels 7.0. Zu den bemerkenswertesten Änderungen gehören: Richtlinien für den Einsatz von KI-Assistenten, die Integration von Rust in die Hauptfunktionen des Kernels, Verbesserungen der Swapping-Leistung, standardmäßig aktivierter PREEMPT_LAZY-Modus, Unterstützung von Filtern für io_uring-Operationen, ein neues Dateisystem namens Nullfs, die Infrastruktur fserror, XFS-Monitoring-Tools, Unterstützung für Remapping in Btrfs, standardmäßige Aktivierung der NFS-Version 4.1, Integration eines post-quanten Kryptoalgorithmus ML-DSA und Aktivierung von AccECN in der Netzwerksubsystem, sowie anfängliche Unterstützung für WiFi 8.

Die Nummer 7.0 wurde vergeben, da in der Version 6.x genügend Releases gesammelt wurden, um die erste Ziffer der Versionsnummer zu ändern (zu der Zeit wurde die 6.0 direkt nach der 5.19 veröffentlicht). Die Änderung der Nummerierung erfolgt aus ästhetischen Gründen und ist ein formeller Schritt, der das Unbehagen aufgrund der Ansammlung der vielen Releases in dieser Serie beseitigt.

In die neue Version wurden 15624 Korrekturen von 2477 Entwicklern übernommen, die Patchgröße beträgt 56 MB (Änderungen betreffen 18053 Dateien, hinzugefügt wurden 704060 Codezeilen, 278132 Zeilen wurden gelöscht). In der vorherigen Veröffentlichung gab es 15657 Korrekturen von 2237 Entwicklern, die Patchgröße betrug 52 MB. Etwa 51 % aller in 7.0 vorgenommenen Änderungen betreffen Gerätetreiber, etwa 11 % der Änderungen stehen im Zusammenhang mit der Aktualisierung architekturspezifischer Codes, 14 % betreffen das Netzwerk-Stack, 5 % die Dateisysteme und 3 % interne Subsysteme des Kernels.

Die Hauptneuheiten im Kernel 7.0 (1, 2, 3):

  • Festplattensubsystem, Ein-/Ausgabe und Dateisysteme
    • Die Infrastruktur für fserror wurde implementiert und eine API hinzugefügt, um Informationen über Ein-/Ausgabefehler und die Beschädigung von Metadaten bei der Arbeit mit Dateien zu erhalten. Die vorgeschlagene Infrastruktur vereinheitlicht in Dateisystemen die Übertragung von Fehlerinformationen an den Benutzerraum über den fsnotify-Mechanismus.
    • In XFS wurden neue Funktionen zum Überwachen des Zustands des Dateisystems aus dem Benutzerraum hinzugefügt. Es wurde eine ioctl-Operation XFS_IOC_HEALTH_MONITOR vorgeschlagen, die einen Datei-Descriptor zurückgibt, über den Informationen über Ausfälle, die mit der Beschädigung von Metadaten oder dem Auftreten von Ein-/Ausgabefehlern zusammenhängen, abgerufen werden können, sowie das Verfolgen von Zustandsänderungen des FS, wie das Abmontieren und das Beenden. Zusätzlich wurde ein von systemd verwalteter Hintergrundprozess xfs_healer vorgeschlagen, der Benachrichtigungen über den Zustand des FS aus dem Benutzerraum verarbeitet und bei Bedarf automatisch Wiederherstellungsverfahren einleitet.
    • Im Btrfs-Dateisystem wurde eine experimentelle Unterstützung für die Struktur "Remap-Baum" (remap tree) hinzugefügt, die in Zukunft als Zwischenschicht bei Ein-/Ausgabeoperationen verwendet werden kann. Der Sinn der hinzugefügten Funktion besteht darin, dass nach der Verschiebung von Daten auf dem Speicher anstelle der Aktualisierung aller mit diesen Daten verbundenen Strukturen die alten und neuen Datenadressen in einer zusätzlichen "Remap-Baum"-Struktur gespeichert werden. Bei einem Datenzugriff werden die Adressen dann umgeändert. Der neue Ansatz wird als zuverlässiger und flexibler dargestellt und vereinfacht die weitere Erweiterung der Btrfs-Funktionalität.
    • Btrfs unterstützt direktes Ein-/Ausgabe bei Situationen, in denen die Blockgröße die Seiten-Größe des Speichers im System überschreitet.
    • Im System ist ein neues Dateisystem "Nullfs" enthalten, das als Platzhalter für das Root-Dateisystem verwendet werden kann. Das Nullfs-Dateisystem ist immer leer, enthält keine Daten und unterstützt keine Änderungen. Der Zweck von Nullfs besteht darin, als anfängliches Dateisystem zu dienen, um den Systemstartprozess zu vereinfachen — auf Nullfs werden dann andere Dateisysteme gemountet und der Systemaufruf pivot_root() wird verwendet, um das Root-Dateisystem zu wechseln, anstatt den Inhalt von initramfs zu löschen und das damit verbundene Root-Dateisystem zu verwenden.
    • Die Aktualisierung der Änderungszeit von Dateien wurde im Nicht-Blockierungsmodus implementiert. Zuvor gab der Aufruf file_update_time_flags() mit dem Flag IOCB_NOWAIT den Fehler "-EAGAIN" zurück, was die Verwendung von Direktaufnahmeoperationen im Nicht-Blockierungsmodus verhinderte.
    • In den Dateisystemen wurde die Unterstützung von Benachrichtigungs-Sperren (lease) in den Bereich separat aktivierbarer Optionen übernommen. Standardmäßig wird dieser Mechanismus nun nicht aktiviert, da es Probleme mit Dateisystemen gibt, die ursprünglich nicht für seine Verwendung ausgelegt sind. Zum Beispiel unterstützen die Dateisysteme 9p und cephfs dies nicht.
    • Im EROFS-Dateisystem (Extendable Read-Only File System), das für Partitionen vorgesehen ist, die im Nur-Lesen-Modus verwendet werden, wird standardmäßig der Algorithmus LZMA zur Kompression eingesetzt. Optional stehen die Algorithmen DEFLATE und Zstandard zur Verfügung, die nicht mehr als experimentell gekennzeichnet sind. Die gemeinsame Nutzung von Einträgen im Seiten-Cache für identische Dateien in verschiedenen EROFS-Dateisystemen wurde implementiert.
    • Der laptop_mode, der den Energieverbrauch durch das Verzögern und Zusammenfassen von Schreibvorgängen auf die Festplatte minimiert hat, wurde entfernt. Dieser Modus hat an Relevanz verloren, da in modernen mobilen Geräten Festplatten durch Solid-State-Laufwerke ersetzt werden.
    • Das F2FS-Dateisystem wurde auf die Verwendung großer Seitenfolien (large folios) umgestellt.
    • Die Arbeit am ntfs3-Treiber, der von Paragon Software entwickelt wird, wurde wiederbelebt. Es wurde Unterstützung für dateibasierte I/O-Operationen hinzugefügt, options llseek SEEK_DATA/SEEK_HOLE implementiert und ein Delalloc-Modus für verzögertes Blockzuweisen eingeführt. In der Zwischenzeit wurde im Februar in der Mailingliste der Kernel-Entwickler die Aufnahme einer neuen NTFS-Implementierung – ntfsplus – genehmigt, die ntfs3 ersetzen soll.
    • Standardmäßig wird beim Bauen die Version 4.1 des NFS-Protokolls (CONFIG_NFS_V4_1) aktiviert. Die Export-Sperrung für spezialisierte Pseudo-Dateisysteme wie pidfs und nsfs über NFS wurde sichergestellt. In NFSD wurde eine experimentelle Möglichkeit zur Verwendung von POSIX ACLs implementiert, und es wurde Unterstützung für die dynamische Anpassung des Thread-Pools in Abhängigkeit von der Last hinzugefügt.
  • Speicher und Systemdienste
    • Die offiziellen Regeln für die Nutzung von KI-Assistenten und die Integration automatisch generierter Inhalte in den Kern wurden genehmigt. Bei der Übertragung von generiertem Code muss dieser durch den verwendeten KI-Assistenten über das Tag „Assisted-by“ gekennzeichnet werden. KI-Assistenten ist es untersagt, das Tag „Signed-off-by“ hinzuzufügen — der Mensch, der den Patch überträgt, gilt als dessen Autor, trägt die Verantwortung für die übertragene Änderung und garantiert deren Qualität. Entwicklern wird vorgeschrieben, eine manuelle Überprüfung des durch KI generierten Codes durchzuführen und die Übereinstimmung mit den Lizenzanforderungen zu überprüfen.
    • Die Rust-Unterstützung wurde von experimentell in die Hauptfunktionen des Kerns übertragen. Die Rust-Unterstützung ist standardmäßig nicht aktiv und führt nicht dazu, dass Rust zu den erforderlichen Build-Abhängigkeiten des Kerns zählt.
    • Die Integration in den Kern des „Swap Table“-Mechanismus wurde abgeschlossen, wodurch die Leistung des Paging erhöht wird. Die Beschleunigung wird durch die Reduzierung des Wettbewerbs um den Zugriff auf den Paging-Cache, eine effizientere Suche im Cache und eine Verringerung der Fragmentierung erzielt. Der Backend-Mechanismus auf Basis von Swap Table wird zur Caching des Paging anstelle des XArray-Backends eingesetzt und konnte im Test redis-benchmark mit BGSAVE die Anzahl der bearbeiteten Anfragen um 22 % steigern.
    • Die Unterstützung für die in Clang 22 eingeführte Erweiterung zur Thread-Sicherheitsanalyse wurde hinzugefügt, die es ermöglicht, potenzielle Race-Conditions und Fehler, die durch falsches Setzen von Sperren verursacht werden, bereits während der Kompilierung zu erkennen. Die Erweiterung bietet eine Reihe von Attributen, wie GUARDED_BY(…), REQUIRES(…), RELEASE(…) und ACQUIRE(…), die es ermöglichen, durch Sperren geschützte Funktionen zu kennzeichnen und den Geltungsbereich von Sperren (Kontext zu definieren) zu trennen. Während der Kompilierung wird die Korrektheit der Anwendung von Synchronisationsprimitive wie Mutexen basierend auf der Bewertung der Aktivität oder Inaktivität des damit verbundenen Kontexts überprüft.
    • In den Systemaufruf open_tree wurde das Flag OPEN_TREE_NAMESPACE eingeführt, um die Konfiguration von isolierten Containern zu vereinfachen und den Start von Containern auf Systemen mit einer großen Anzahl von Mounts zu beschleunigen. Analog zu OPEN_TREE_CLONE kopiert das neue Flag lediglich den angegebenen Mount-Baum (mount tree), gibt jedoch anstelle eines lokalen Dateideskriptors einen Dateideskriptor im neuen Namespace der Mounts zurück, in dem der kopierte Baum über einer Kopie des tatsächlichen Wurzel-Dateisystems gemountet wird. Das Flag OPEN_TREE_NAMESPACE ist erforderlich, um die separate Ausführung der Operationen unshare(CLONE_NEWNS) und pivot_root() zu vermeiden, die bei der Erstellung von Containern angewendet werden.
    • Im Systemaufruf rseq wurde ein Mechanismus zur Erweiterung der Zeitscheiben (time slice) hinzugefügt, der es ermöglicht, zusätzliche Prozessorzeit für die ununterbrochene Ausführung kritischer Abschnitte zu erhalten. Die Idee besteht darin, zu vermeiden, dass der Scheduler kritische Abschnitte mit aktivierter Sperre unterbricht, was zur Übertragung der Kontrolle an andere Threads führt, die Ressourcen nutzen, für die weiterhin eine Sperre besteht. Die Erweiterung der Zeitscheibe erfolgt ohne zusätzliche Kosten, jedoch auch ohne die strengen Garantien, die bei einer vollständigen Prioritätsregelung bereitgestellt werden.
    • Für die Architektur arm64, loongarch, powerpc, riscv, s390 und x86 wurde der Standardmodus für die Preemption von Tasks im Scheduler von PREEMPT_NONE auf PREEMPT_LAZY geändert. Die Anzahl der möglichen Modi wurde von vier auf zwei reduziert — PREEMPT_FULL und PREEMPT_LAZY (die Modi PREEMPT_NONE und PREEMPT_VOLUNTARY bleiben nur für Architekturen, die PREEMPT_FULL und PREEMPT_LAZY nicht unterstützen). Der Modus PREEMPT_LAZY wendet das Modell der vollständigen Preemption (PREEMPT_FULL) auf Echtzeitaufgaben (RR/FIFO/DEADLINE) an, verzögert jedoch die Preemption normaler Aufgaben (SCHED_NORMAL) bis zur Tick-Grenze. Die eingebrachte Verzögerung führt zu einer Reduzierung der Fälle, in denen Preemption von Lockinhabern erfolgt, was die Leistung näher an die Konfigurationen bringt, die ein Modell der freiwilligen Preemption verwenden. Das bedeutet, dass PREEMPT_LAZY die Möglichkeiten der vollständigen Preemption für Echtzeitaufgaben beibehält, jedoch die Leistungseinbußen für normale Aufgaben minimiert.

      Die Aktivierung von PREEMPT_LAZY führte zu einem erheblichen Rückgang, der die Leistung von PostgreSQL auf ARM64-Systemen halbierte. Um den Leistungsabfall zu beheben, wurde den PostgreSQL-Entwicklern empfohlen, die Option PR_RSEQ_SLICE_EXTENSION zu aktivieren, um die Wahrscheinlichkeit der Preemption von Lockinhabern zu verringern.

    • Die Übertragung der Änderungen aus dem Rust-for-Linux-Zweig, die die Nutzung von Rust als zweite Sprache für die Entwicklung von Treibern und Kernel-Modulen betreffen, wird fortgesetzt. Dank der zuvor integrierten Bibliothek „syn“, die das Schreiben komplexer Makros erleichtert, konnte die Größe des Rust-Codes im Kernel durch die Vereinfachung der Definitionen bestehender prozeduraler Makros reduziert werden. Die Funktionen der Bibliotheken kernel, macros und pin-init wurden erweitert.
    • Im asynchronen Eingabe-/Ausgabesystem io_uring wurde eine Option zur Verwendung von nicht-zirkularen Warteschlangen (non-circular submission queue) hinzugefügt, die in Situationen, in denen die Ausführung einer Anfrage schneller abgeschlossen wird als die Rückkehr aus dem Systemaufruf, effizienter zwischengespeichert werden können.
    • Im eBPF-Subsystem wurde im BTF (BPF Type Format), das Informationen zur Typüberprüfung im BPF-Pseudocode bereitstellt, eine binäre Suche zur Auffindung von Debugging-Informationen implementiert, was die Effizienz des Ladens von BPF-Programmen erhöht hat. eBPF unterstützt nun implizite Argumente beim Aufruf von kfunc (Kernel-Funktionen, die in BPF-Programmen verwendet werden können), die mit dem Flag KF_IMPLICIT_ARGS definiert sind.
    • Der Code zur Unterstützung des anfänglichen RAM-Disk (initrd) auf Basis von linuxrc wurde entfernt, da er seit langem als veraltet gilt. Die verbleibenden Implementierungen von initrd sollen im Jahr 2027 entfernt werden. Anstelle von initrd sollte initramfs verwendet werden (der Unterschied besteht darin, dass initrd die anfängliche Bootumgebung in einem Disk-Image platziert, während initramfs sie im Dateisystem ablegt).
    • Im Blockgerät zram, das zur komprimierten Speicherung des Swap-Bereichs im Speicher verwendet wird, wurde die Logik für die Verarbeitung von komprimierten Speicherseiten geändert, um die optionale Verschiebung von Daten in den permanenten Speicher im Fall einer vollständigen RAM-Nutzung zu unterstützen. Zuvor wurden die Speicherseiten vor der Speicherung auf physischen Datenträgern entpackt, jetzt werden sie in komprimierter Form gespeichert, was die CPU-Belastung verringert und Energie während des autonomen Betriebs spart.
    • Die Utility timerlat, die zur Messung von Verzögerungen beim Betrieb des Task-Schedulers gedacht ist, hat die Option "—bpf-action" zur Ausführung von BPF-Programmen bei Überschreitung eines festgelegten Schwellenwerts erhalten.
    • Im ftrace-Tracking-System wurde die Einstellung „bitmask-list“ hinzugefügt, um Bitmasken in lesbarer Form (als Bitliste und nicht als Hexadezimalzahl) auszugeben. In tracefs wurden Funktionen zur Überprüfung von Filtern und Triggern hinzugefügt. Der Befehl „perf sched stats“ wurde hinzugefügt, um Statistiken über die Arbeit des Task-Schedulers zu sammeln und anzuzeigen.
    • Es wurden Build-Optionen LOGO_LINUX_MONO_FILE, LOGO_LINUX_VGA16_FILE und LOGO_LINUX_CLUT224_FILE hinzugefügt, um die Datei mit dem Logo-Bild festzulegen, die beim Booten des Kernels anstelle des Standardlogos mit dem Pinguin Tux angezeigt wird.
  • Virtualisierung und Sicherheit
    • Im System der asynchronen Ein-/Ausgabe von io_uring wurde die Möglichkeit implementiert, BPF-Programme mit Filtern zu verknüpfen, die steuern, was spezifische SQE (Submission Queue Entry) Operationen tun dürfen (ähnlich wie Systemaufrufe in io_uring). Die hinzugefügte Funktion ist das Äquivalent zu Filtern von Systemaufrufen. Filter können an bestimmte Aufgaben gebunden werden und sie werden bei der Erzeugung anderer Prozesse nach dem Aufruf von fork() vererbt. Bei aktiven Filtern können hinzugefügte Filter nur zusätzliche Einschränkungen auferlegen, jedoch vorhandene nicht deaktivieren. Diese implementierte Möglichkeit wird es ermöglichen, Methoden zur Umgehung der Filterung von Systemaufrufen in Sandbox-Umgebungen zu blockieren, die auf der Ausführung von ähnlichen in io_uring bereitgestellten Operationen anstelle von Systemaufrufen basieren.
    • In SELinux wurde die Möglichkeit zur Verwaltung des Zugriffs auf BPF-Tokens hinzugefügt, die es unprivilegierten Prozessen ermöglichen, einige privilegierte Operationen mit BPF durchzuführen, wie z.B. das Laden von BPF-Programmen in den Kernel und das Erstellen von Map-Strukturen.
    • Die Unterstützung des Algorithmus zur Erstellung von digitalen Signaturen ML-DSA (CRYSTALS-Dilithium) wurde hinzugefügt, der auf Gittertheorie basiert und resistent gegen das Knacken durch Quantencomputer ist. ML-DSA kann zur Authentifizierung von Kernel-Modulen verwendet werden.
    • Die Verwendung von Signaturerstellungsschemata mit dem Algorithmus SHA-1 zur Zertifizierung von Kernel-Modulen wurde entfernt (die Unterstützung für das Laden signierter Module bleibt bestehen).
    • In den NETFILTER_PKT-Audit-Eintrag wurden die Felder ‚sport‘ und ‚dport‘ hinzugefügt, um die Nummern der Netzwerkports zu inspizieren und nicht nur. IP-Adressen.
    • Für Systeme mit der RISC-V-Architektur wurde die Unterstützung der Erweiterungen Zicfiss und Zicfilp implementiert, die Hardware-Funktionen zur Anwendung von CFI (Control Flow Integrity) bieten, um Verletzungen der normalen Reihenfolge der Ausführung von Anweisungen (Control Flow) durch Exploits, die die in Erinnerung gespeicherten Funktionszeiger ändern, zu verhindern.
    • Im Hypervisor KVM Die Möglichkeit wurde implementiert, Informationen über die Unterstützung des Prozessors für die ERAPS-Erweiterung (Enhanced Return Address Predictor Security) an die Gastsysteme zu übermitteln. Dies ermöglicht, auf einige Zustandsrücksetzoperationen des CPUs zu verzichten, wenn die Kontrolle an den Host durch das Gastsystem zurückgegeben wird. Darüber hinaus wurde die Unterstützung für die Zuweisung von Leistungsüberwachungsgeräten (PMU, Performance Monitoring Unit) an die Gastsysteme hinzugefügt, was die Genauigkeit des Profilings im Vergleich zur Verwendung emulierten PMUs erhöht.
    • Im Treiber für den Hypervisor Hyper-V wurde die Unterstützung für die debugfs-Schnittstelle zur Anzeige von Statistiken über die Funktion des Hypervisors hinzugefügt.
  • Netzwerksubsystem
    • Die AccECN-Erweiterung (Accurate Explicit Congestion Notification) ist standardmäßig aktiviert und implementiert eine verbesserte Version der ECN-Erweiterung. Diese ermöglicht es Hosts, IP-Pakete im Falle einer Überlastung zu kennzeichnen, anstatt sie abzulehnen, wodurch es möglich wird, frühe Staustufen in Kommunikationskanälen zu erkennen, ohne dass Pakete verloren gehen. Die ursprüngliche ECN-Erweiterung hat eine Einschränkung, die nur ein Überlastungssignal pro Übertragungszyklus (RTT, Round-Trip Time, Antrag senden und Antwort erhalten) zulässt. AccECN hebt diese Einschränkung auf und erlaubt es dem Empfänger, dem Sender mehr als ein Überlastungssignal im TCP-Paket-Header zu übermitteln. Überlastungssteuerungsalgorithmen können die erhaltenen Informationen nutzen, um präziser auf Überlastungen zu reagieren, ohne die Paketübertragung bei geringer Überlastung abrupt zu drosseln.
    • Im Algorithmus zur Verwaltung von Netzwerk-Warteschlangen in Cake wurde die Möglichkeit zur Verarbeitung mehrerer Warteschlangen hinzugefügt, um die Last auf mehrere CPU-Kerne zu verteilen. Der CAKE-Algorithmus wird verwendet, um die negativen Auswirkungen der Pufferung von Paketen auf Netzwerkgeräten an der Grenze zu minimieren und zielt darauf ab, die maximal mögliche Bandbreite und die minimalen Latenzzeiten selbst bei langsamen Verbindungen zu erreichen.
    • In die VSOCK-Sockets, die zur Interaktion mit virtuellen Maschinen verwendet werden, wurde die Unterstützung von Netzwerk-Namensräumen hinzugefügt.
    • Eine erste Implementierung des zukünftigen Standards WiFi 8 (802.11bn, Ultra High Reliability WiFi) wurde hinzugefügt.
    • Optimierungen wurden hinzugefügt, die die Leistung der Verarbeitung eingehender UDP-Pakete bei Belastungstests in einem 100-Gigabit-Netzwerk um 12 % steigerten.
  • Ausrüstung
    • Im AMDGPU-Treiber wurde die Unterstützung für IP-Blöcke implementiert, die in neuen AMD-GPUs verwendet werden, wie z. B. SMUIO 15.x, PSP 15.x, IH 6.1.1/7.1, MMHUB 3.4/4.2, GC 11.5.4/12.1, SDMA 6.1.4/7.1/7.11.4 und JPEG 5.3.
    • Im Nouveau-Treiber wurde die Frequenzregelung auf Tegra 186+-Systemen verbessert.
    • Im i915-Treiber wurde die erste Unterstützung für den Display-IP-Block Xe3p_LPD hinzugefügt, der in Intel-Prozessoren der Nova Lake-P-Serie verwendet wird.
    • Die Arbeit am DRM-Treiber (Direct Rendering Manager) für GPUs auf Basis der Intel Xe Architektur, die in den Intel Arc Grafikkarten und integrierter Grafik verwendet wird, wurde fortgesetzt und beginnt mit den Tiger Lake Prozessoren. Der Multi-Queue-Modus wurde hinzugefügt. Es wurden Komponenten hinzugefügt, die zur Diagnose von GPU-Hängern in Mesa erforderlich sind. Unterstützung für den MERT-Mechanismus zur Verwaltung des GPU-Speicherzugriffs wurde hinzugefügt.
    • Die Integration von Treiberkomponenten für NVIDIA GPUs, die mit GSP-Firmware ausgestattet sind, wurde fortgesetzt. Diese Firmware wird seit der NVIDIA GeForce RTX 2000 Serie auf Basis der Turing Mikroarchitektur verwendet. Der Treiber ist in Rust geschrieben. In der neuen Version wurden Vorbereitungen zur Implementierung der Unterstützung für GPUs auf Basis der Turing Mikroarchitektur getroffen, und es wurden verschiedene interne Änderungen vorgenommen.
    • Die Unterstützung für Controller und Peripheriegeräte mit einem Multi-Channel SPI (Serial Peripheral Interface) wurde hinzugefügt, der die Übertragung von Daten in mehreren parallelen Streams ermöglicht.
    • Ein Treiber für kombinierte Type-C Anschlüsse, die in Geräten mit Apple Silicon Chips verwendet werden und die Schnittstellen USB3, DP-AltMode sowie Thunderbolt/USB4 vereinen, wurde hinzugefügt.
    • Die Unterstützung für die Audiosubsysteme der Chips Tegra238, Minisforum V3 SE, iBasso DC04U, Intel Nova Lake, Nova Lake S und Focusrite Forte wurde hinzugefügt.
    • Unterstützung für ARM-Plattformen, SoCs und Geräte hinzugefügt: Arduino UnoQ, OrangePi 6 Plus, OrangePi CM5, Anbernic RG-DS, Realtek Kent, Qualcomm Kaanapali, Mediatek Ezurio, Facebook Anacapa, Microchip LAN9668, Khadas VIM1S, QNAP TS133, i.MX952, i.MX93, i.MX94, VHIP4 EvalBoard, TQ-Systems MBLS1028A, Agilex5, Radxa CM3J, Glymur,
    • Unterstützung für Smartphones und Tablets hinzugefügt: Fairphone Gen 6 (SoC Qualcomm Milos/Snapdragon 7s Gen 3), Pixel 3/3 xl, Microsoft Surface Pro 11.

Gleichzeitig hat die lateinamerikanische Free Software Foundation eine vollständig freie Kernversion 7.0 — Linux-libre 7.0-gnu veröffentlicht, die von Firmware- und Treiberelementen befreit ist, die nicht freie Komponenten oder Codeabschnitte enthalten, deren Verwendung durch den Hersteller eingeschränkt ist. In der Version 7.0 wurde eine Bereinigung von Blobs für den Treiber iwlwifi durchgeführt. Der Reinigungs-Code in den Treibern amdgpu, adreno, TI PRUeth, air_en8811h, ath12k, TI VPE, rtw8852b, rt1320, rt5575 SPI, tas2783 und Intel catpt wurde aktualisiert. Die Blob-Namen in dts-Dateien (devicetree) für ARM-Chips wurden bereinigt.

Quelle: opennet.ru

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster