Veröffentlichung des Linux-Kernels 6.2

Nach zwei Monaten Entwicklung hat Linus Torvalds die Veröffentlichung des Linux-Kernels 6.2 vorgestellt. Zu den bemerkenswertesten Änderungen gehören: die Akzeptanz von Code unter der Copyleft-Next-Lizenz, verbesserte Implementierung von RAID5/6 in Btrfs, die Fortsetzung der Integration der Rust-Sprache, reduzierte Overheads beim Schutz gegen Retbleed-Angriffe, die Möglichkeit zur Regulierung des Speicherverbrauchs bei Backwrites, ein Schutzmechanismus für TCP namens PLB (Protective Load Balancing), ein hybrider Schutzmechanismus für die Ausführung von Befehlen (FineIBT), die Möglichkeit zur Definition eigener Objekte und Datenstrukturen in BPF, die Aufnahme des Werkzeugs rv (Runtime Verification) und verringerten Energieverbrauch bei der Implementierung von RCU-Sperren.

In die neue Version wurden 16.843 Korrekturen von 2.178 Entwicklern aufgenommen, die Patchgröße beträgt 62 MB (Änderungen betreffen 14.108 Dateien, 730.195 Codezeilen wurden hinzugefügt, 409.485 Codezeilen entfernt). Etwa 42 % aller in 6.2 vorgenommenen Änderungen stehen im Zusammenhang mit Gerätetreibern, etwa 16 % der Änderungen betreffen architekturspezifischen Code, 12 % betreffen den Netzwerk-Stack, 4 % die Dateisysteme und 3 % die internen Teilsysteme des Kernels.

Die wichtigsten Neuerungen im Kern 6.2:

  • Speicher und Systemdienste
    • Die Einbeziehung von Code und Änderungen, die unter der Lizenz Copyleft-Next 0.3.1 bereitgestellt werden, ist im Kern erlaubt. Die Copyleft-Next-Lizenz wurde von einem der Autoren der GPLv3 erstellt und ist vollständig kompatibel mit der GPLv2, was von Juristen der Unternehmen SUSE und Red Hat bestätigt wurde. Im Vergleich zur GPLv2 ist die Copyleft-Next-Lizenz deutlich kompakter und leichter verständlich (die Einleitung sowie veraltete Kompromisse wurden entfernt), legt Fristen und Verfahren zur Behebung von Verstößen fest und hebt automatisch die Copyleft-Anforderungen für veraltete Werke auf, die älter als 15 Jahre sind.

      Copyleft-Next enthält auch eine Klausel zur Gewährung von Rechten an patentierten Technologien, was diese Lizenz im Gegensatz zur GPLv2 mit der Apache 2.0-Lizenz kompatibel macht. Um die vollständige Kompatibilität mit der GPLv2 zu gewährleisten, wird im Text von Copyleft-Next ausdrücklich darauf hingewiesen, dass abgeleitete Werke nicht nur unter der ursprünglichen Lizenz Copyleft-Next, sondern auch unter der GPL-Lizenz angeboten werden können.

    • Im Lieferumfang ist das Tool „rv“ enthalten, das eine Schnittstelle für die Interaktion aus dem Benutzerspeicher mit den Handlern des RV-Subsystems (Runtime Verification) bereitstellt, das zur Überprüfung der Funktionsfähigkeit in hochzuverlässigen Systemen dient, die Ausfallzeiten ausschließen. Die Überprüfung erfolgt zur Laufzeit durch das Anheften von Handlers an Tracepoints, die den tatsächlichen Ablauf mit einem vorher festgelegten deterministischen Referenzmodell abstimmen, das das erwartete Verhalten des Systems definiert.
    • Das zRAM-Gerät ermöglicht das Speichern einer Swap-Partition im komprimierten Zustand im Arbeitsspeicher (ein Blockgerät im Speicher wird erstellt, auf das mit Kompression geswappt wird). Dabei ist es möglich, Seiten mit einem alternativen Algorithmus neu zu verpacken, um einen höheren Komprimierungsgrad zu erreichen. Die Hauptidee besteht darin, eine Auswahl zwischen verschiedenen Algorithmen (lzo, lzo-rle, lz4, lz4hc, zstd) anzubieten, die unterschiedliche Kompromisse zwischen der Geschwindigkeit der Kompression/Dekompression und dem Komprimierungsgrad oder optimalen Lösungen in speziellen Situationen (z. B. für die Kompression großer Arbeitsspeicherseiten) bieten.
    • Die API „iommufd“ wurde hinzugefügt, um die Eingabe/Ausgabe-Speicherverwaltungssysteme IOMMU (Input/Output Memory Management Unit) aus dem Benutzerraum zu steuern. Die neue API ermöglicht die Verwaltung von Eingabe/Ausgabe-Speichertabellen mithilfe von Dateideskriptoren.
    • In BPF wurde die Möglichkeit zur Erstellung von Typen, Definition eigener Objekte, Aufbau einer eigenen Objekt-Hierarchie und flexible Erstellung eigener Datenstrukturen wie verkettete Listen bereitgestellt. Für BPF-Programme, die in den Schlafmodus wechseln (BPF_F_SLEEPABLE), wurde die Unterstützung für die bpf_rcu_read_{,un}lock()-Sperren hinzugefügt. Die Unterstützung zur Speicherung von Objekten des Typs task_struct wurde implementiert. Ein map-Typ BPF_MAP_TYPE_CGRP_STORAGE wurde hinzugefügt, der einen lokalen Speicher für cgroups bereitstellt.
    • Für den RCU-Blockierungsmechanismus (Read-Copy-Update) wurde ein optionaler Mechanismus für „laissez-faire“ Callback-Aufrufe implementiert, bei dem mehrere Callback-Aufrufe zeitgesteuert im Batch verarbeitet werden. Die vorgeschlagene Optimierung ermöglicht eine Reduzierung des Energieverbrauchs auf Android- und ChromeOS-Geräten um 5-10 %, indem RCU-Anfragen während Leerläufen oder niedriger Systemlast verzögert werden.
    • Die Option sysctl split_lock_mitigate wurde hinzugefügt, um die Reaktion des Systems bei der Erkennung von Split-Lock-Situationen zu steuern, die auftreten können, wenn auf nicht ausgerichtete Daten im Speicher zugegriffen wird und dabei atomare Befehle zwei Cache-Linien des CPU überschreiten. Solche Blockierungen führen zu einem erheblichen Leistungsabfall. Wenn der Wert von split_lock_mitigate auf 0 gesetzt wird, wird lediglich eine Warnung über das Vorhandensein des Problems ausgegeben. Bei einem Wert von 1 wird neben der Warnung auch die Ausführung des Prozesses, der die Blockierung verursacht hat, verlangsamt, um die Leistung des restlichen Systems zu erhalten.
    • Für die PowerPC-Architektur wurde eine neue Implementierung von qspinlock-Blockierungen vorgeschlagen, die eine höhere Leistung zeigt und einige blockierungsbedingte Probleme in Ausnahmefällen löst.
    • Der Code für die Verarbeitung von MSI (Message-Signaled Interrupts) wurde überarbeitet, um bestehende architektonische Probleme zu beheben und die Unterstützung für die Zuordnung einzelner Handler zu verschiedenen Geräten hinzuzufügen.
    • Für Systeme, die auf der Befehlssatzarchitektur LoongArch basieren, die in den Prozessoren Loongson 3 5000 verwendet wird und ein neues RISC ISA implementiert, das MIPS und RISC-V ähnlich ist, wurde Unterstützung für ftrace, Stackschutz sowie Schlaf- und Wartemodi implementiert.
    • Es wurde die Möglichkeit geschaffen, Bereichen des gemeinsam genutzten anonymen Speichers Namen zuzuweisen (früher konnten Namen nur dem privaten anonymen Speicher zugewiesen werden, der einem bestimmten Prozess zugeordnet ist).
    • Ein neuer Kernel-Befehlszeilenparameter "trace_trigger" wurde hinzugefügt, der dazu dient, einen Tracing-Trigger zu aktivieren, der zur Bindung bedingter Befehle verwendet wird, die bei Aktivierung eines Prüfpunktes ausgelöst werden (zum Beispiel: trace_trigger="sched_switch.stacktrace if prev_state == 2").
    • Die Anforderungen an die Version des binutils-Pakets wurden erhöht. Für den Kernelbau ist nun mindestens binutils 2.25 erforderlich.
    • Bei der Ausführung von exec() wurde die Möglichkeit hinzugefügt, einen Prozess in einen Zeitnamespace zu bringen, in dem die Zeit von der Systemzeit abweicht.
    • Der Transfer von zusätzlicher Funktionalität aus dem Rust-for-Linux-Zweig hat begonnen, die sich mit der Verwendung von Rust als zweiter Sprache für die Entwicklung von Treibern und Kernelmodulen befasst. Die Unterstützung von Rust ist standardmäßig inaktiv und führt nicht dazu, dass Rust in die verpflichtenden Build-Abhängigkeiten des Kernels aufgenommen wird. Die im letzten Release vorgeschlagene Basisfunktionalität wurde um Möglichkeiten zur Unterstützung von Low-Level-Code erweitert, wie den Typ Vec und die Makros pr_debug!(), pr_cont!() und pr_alert!(), sowie das prozedurale Makro „#[vtable]“, das die Arbeit mit Zeigtabellen für Funktionen vereinfacht. Die Hinzufügung von High-Level-Rust-Bindings über die Kernel-Subsysteme, die es ermöglichen werden, vollständige Treiber in Rust zu erstellen, wird in den kommenden Versionen erwartet.
    • Der im Kernel verwendete Typ „char“ ist jetzt standardmäßig für alle Architekturen als unsigned deklariert.
    • Der Mechanismus zur Speicherzuweisung slab - SLOB (slab allocator), der für Systeme mit begrenztem Speicher konzipiert wurde, wurde als veraltet erklärt. Statt SLOB wird in der Regel die Verwendung von SLUB oder SLAB empfohlen. Für Systeme mit begrenztem Speicher wird die Verwendung von SLUB im SLUB_TINY-Modus empfohlen.
  • Festplattensubsystem, Ein-/Ausgabe und Dateisysteme
    • In Btrfs wurden Verbesserungen implementiert, die darauf abzielen, das Problem des "Write Hole" in der RAID-5/6-Implementierung zu beheben. Dieses Problem tritt auf, wenn ein Versuch zur Wiederherstellung des RAID fehlschlägt, während gleichzeitig ein Schreibvorgang läuft. In solchen Fällen kann es nicht festgestellt werden, welcher Block korrekt auf welchem RAID-Gerät gespeichert wurde, was zu einer Zerschädigung der Blöcke führen kann, die den nicht vollständig geschriebenen Blöcken entsprechen. Darüber hinaus wird für SSDs standardmäßig die asynchrone Ausführung der „Discard“-Operation aktiviert, um eine höhere Leistung aufgrund einer effektiveren Gruppierung der „Discard“-Operationen in der Warteschlange und deren Verarbeitung durch den Hintergrundbearbeiter zu erzielen. Außerdem wurden die Leistung der Send- und Lseek-Operationen sowie von Ioctl FIEMAP verbessert.
    • Die Möglichkeiten zur Verwaltung des verzögerten Schreibens (Writeback, Hintergrundspeicherung geänderter Daten) für Blockgeräte wurden erweitert. In bestimmten Situationen, wie der Verwendung von Netzwerkblockgeräten oder USB-Speichern, kann das verzögerte Schreiben zu einem hohen Verbrauch von Arbeitsspeicher führen. Um das Verhalten des verzögerten Schreibens zu steuern und die Größe des Seiten-Cache in sysfs (/sys/class/bdi/) innerhalb bestimmter Grenzen zu halten, wurden neue Parameter wie strict_limit, min_bytes, max_bytes, min_ratio_fine und max_ratio_fine eingeführt.
    • Im Dateisystem F2FS wurde die ioctl-Operation für atomare Ersetzung implementiert, die es ermöglicht, Daten im Rahmen einer atomaren Operation in eine Datei zu schreiben. F2FS hat auch einen Block-Cache für Extents hinzugefügt, der hilft, aktiv genutzte Daten oder Daten zu identifizieren, auf die schon lange nicht mehr zugegriffen wurde.
    • Im FS ext4 gibt es lediglich eine Fehlerbehebung.
    • Im Dateisystem ntfs3 wurden mehrere neue Montageoptionen eingeführt: „nocase“ zur Regelung der Groß- und Kleinschreibung in Dateinamen und Verzeichnissen; „windows_name“ zur Verhinderung der Erstellung von Dateinamen, die nicht zulässige Zeichen für Windows enthalten; „hide_dot_files“ zur Verwaltung der Auszeichnung versteckter Dateien für Dateien, die mit einem Punkt beginnen.
    • Im Dateisystem Squashfs wurde die Montageoption „threads=“ implementiert, mit der die Anzahl der Threads zur Parallelisierung von Entpackvorgängen festgelegt werden kann. In Squashfs wurde auch die Möglichkeit zur Zuordnung von Benutzer-IDs von gemounteten Dateisystemen eingeführt, die verwendet wird, um Dateien eines bestimmten Benutzers auf einem gemounteten Fremdpartition mit einem anderen Benutzer im aktuellen System abzugleichen.
    • Die Implementierung der POSIX-Zugriffssteuerungslisten (POSIX ACL) wurde überarbeitet. In der neuen Implementierung wurden architektonische Probleme behoben, die Wartung der Codebasis wurde vereinfacht und sicherere Datentypen verwendet.
    • Im fscrypt-Subsystem, das für die transparente Verschlüsselung von Dateien und Verzeichnissen verwendet wird, wurde die Unterstützung des Verschlüsselungsalgorithmus SM4 (chinesischer Standard GB/T 32907-2016) hinzugefügt.
    • Es wurde die Möglichkeit geschaffen, den Kernel ohne Unterstützung für NFSv2 zu kompilieren (die Unterstützung für NFSv2 soll in Zukunft vollständig eingestellt werden).
    • Die Organisation der Berechtigungsprüfung für NVMe-Geräte wurde geändert. Es ist jetzt möglich, auf ein NVMe-Gerät zu lesen und zu schreiben, wenn der Schreibprozess Zugriff auf die spezielle Gerätedatei hat (zuvor musste der Prozess die Berechtigung CAP_SYS_ADMIN besitzen).
    • Der Treiber für CD/DVD wurde entfernt, der seit 2016 als veraltet gilt.
  • Virtualisierung und Sicherheit
    • Eine neue Methode zum Schutz vor der Retbleed-Sicherheitsanfälligkeit in Intel- und AMD-CPUs wurde implementiert. Sie verwendet das Verfolgen der Aufruftiefe und verlangsamt die Leistung nicht so sehr wie der frühere Schutz vor Retbleed. Um den neuen Modus zu aktivieren, wurde die Kernel-Befehlszeilenoption «retbleed=stuff» vorgeschlagen.
    • Ein hybrides Schutzmechanismus für die Ausführung von Kommandoflüssen namens FineIBT wurde hinzugefügt. Dieser kombiniert die Verwendung von Intel IBT (Indirect Branch Tracking) Hardwareanweisungen mit der Software-Schutzlösung kCFI (kernel Control Flow Integrity). Dadurch wird eine Störung der normalen Ausführungsreihenfolge (control flow) durch Exploits verhindert, die die im Speicher gespeicherten Funktionszeiger verändern. FineIBT gestattet die Ausführung über einen indirekten Sprung nur, wenn auf die ENDBR-Instruktion verwiesen wird, die sich am Anfang der Funktion befindet. Zudem wird, ähnlich wie beim kCFI-Mechanismus, anschließend eine Überprüfung von Hashwerten durchgeführt, um die Unveränderlichkeit der Zeiger zu garantieren.
    • Es wurden Beschränkungen implementiert, um Angriffe zu blockieren, die das Auftreten von "oops"-Zuständen manipulieren. Nach diesen Zuständen werden problematische Aufgaben beendet und der Zustand wird ohne Unterbrechung des Systembetriebs wiederhergestellt. Bei einer sehr hohen Anzahl von "oops"-Aufrufen kann der Referenzzählerspeicher (refcount) überlaufen, was es Angreifern ermöglicht, Probleme aufgrund von NULL-Zeiger-Dereferenzierungen auszunutzen. Um sich vor solchen Angriffen zu schützen, wurde eine Begrenzung der maximalen Anzahl von "oops"-Ereignissen im Kernel eingeführt. Bei Überschreitung dieser Grenze wird der Kernel in den "panic"-Zustand wechseln und einen Neustart einleiten, wodurch die erforderliche Anzahl von Iterationen für ein Überlaufen des refcount verhindert wird. Der Standardwert für dieses Limit ist auf 10.000 "oops" festgelegt, kann jedoch über den Parameter oops_limit angepasst werden.
    • Es wurde die Konfigurationsoption LEGACY_TIOCSTI und der sysctl legacy_tiocsti hinzugefügt, um die Möglichkeit zu deaktivieren, Daten über ioctl TIOCSTI in das Terminal einzufügen. Diese Funktionalität könnte genutzt werden, um beliebige Zeichen in den Eingabepuffer des Terminals einzuschleusen und die Benutzereingabe zu simulieren.
    • Ein neuer Typ interner Strukturen encoded_page wurde vorgeschlagen, bei dem die unteren Bits des Zeigers verwendet werden, um zusätzliche Informationen zu speichern, die zum Schutz vor versehentlichem Dereferenzieren des Zeigers dienen (wenn tatsächlich dereferenziert werden muss, sollten diese zusätzlichen Bits zuerst gelöscht werden).
    • Auf der ARM64-Plattform wurde während des Bootvorgangs die Möglichkeit geschaffen, die softwareseitige Implementierung des Shadow-Stack-Mechanismus ein- und auszuschalten, welcher zum Schutz vor der Überschreibung der Rücksprungadresse aus einer Funktion im Falle eines Bufferoverflows im Stack verwendet wird (das Konzept des Schutzes besteht darin, die Rücksprungadresse nach der Übergabe der Kontrolle an die Funktion in einem separaten "Shadow"-Stack zu speichern und diese Adresse vor dem Verlassen der Funktion wieder abzurufen). Die Unterstützung sowohl der hardware- als auch der softwareseitigen Implementierung des Shadow Stacks in einem einzigen Kernel-Build ermöglicht die Verwendung eines Kernels auf verschiedenen ARM-Systemen, unabhängig von der Unterstützung der Befehle zur Authentifizierung von Zeigern. Die Aktivierung der softwareseitigen Implementierung erfolgt durch Ersetzung der erforderlichen Befehle im Code während des Bootvorgangs.
    • Unterstützung für die Verwendung des asynchronen Exit-Benachrichtigungsmechanismus auf Intel-Prozessoren hinzugefügt, der es ermöglicht, Single-Step-Angriffe auf in SGX-Enklaven ausgeführten Code zu erkennen.
    • Ein Satz von Operationen vorgeschlagen, der es dem Hypervisor ermöglicht, Anfragen aus Intel TDX (Trusted Domain Extensions) Gastssystemen zu unterstützen.
    • Die Kernel-Bauoptionen RANDOM_TRUST_BOOTLOADER und RANDOM_TRUST_CPU wurden entfernt; stattdessen sollten die entsprechenden Befehlszeilenoptionen random.trust_bootloader und random.trust_cpu verwendet werden.
    • Im Landlock-Mechanismus, der die Interaktion einer Gruppe von Prozessen mit der Außenwelt einschränkt, wurde die Unterstützung des LANDLOCK_ACCESS_FS_TRUNCATE-Flags hinzugefügt, das die Kontrolle über die Ausführung von Datei-Truncate-Operationen ermöglicht.
  • Netzwerksubsystem
    • Für IPv6 wurde die Unterstützung von PLB (Protective Load Balancing) hinzugefügt, einem Lastenausgleichsmechanismus zwischen Netzwerkverbindungen, der darauf abzielt, Überlastungspunkte an den Switches der Rechenzentren zu reduzieren. Durch die Änderung des IPv6 Flow Labels ändert PLB zufällig die Paketpfade, um die Last auf den Switch-Ports auszugleichen. Um die Umordnung von Paketen zu minimieren, wird dieser Vorgang nach Möglichkeit während der leeren Zeit (Idle) durchgeführt. Der Einsatz von PLB in Google-Rechenzentren hat den Lastenausgleich an den Switch-Ports im Durchschnitt um 60 % verbessert, den Paketverlust um 33 % verringert und die Latenz um 20 % reduziert.
    • Ein Treiber für MediaTek-Geräte mit Unterstützung für Wi-Fi 7 (802.11be) wurde hinzugefügt.
    • Die Unterstützung für 800-Gigabit-Verbindungen wurde hinzugefügt.
    • Die Möglichkeit, Netzwerkschnittstellen im laufenden Betrieb umzubenennen, wurde ohne Unterbrechung des Betriebs implementiert.
    • In den Lognachrichten über SYN-Floods wurde die IP-Adresse erwähnt, an die das Paket gesendet wurde.
    • Für UDP wurde die Möglichkeit implementiert, separate Hash-Tabellen für verschiedene Namensräume zu verwenden.
    • Für Netzwerkbrücken wurde die Unterstützung der Authentifizierungsmethode MAB (MAC Authentication Bypass) umgesetzt.
    • Für das CAN-Protokoll (CAN_RAW) wurde die Unterstützung für den Socket-Modus SO_MARK zur Anbringung von Traffic-Filtern auf Basis von fwmark implementiert.
    • In ipset wurde ein neuer Parameter "bitmask" eingeführt, der es ermöglicht, eine Maske basierend auf beliebigen Bits der IP-Adresse zu definieren (zum Beispiel: „ipset create set1 hash:ip bitmask 255.128.255.0“).
    • In nf_tables wurde die Unterstützung für die Verarbeitung von inneren Headern hinzugefügt, die in tunnelierten Paketen auftreten.
  • Ausrüstung
    • Es wurde ein "accel"-Subsystem mit der Implementierung eines Frameworks für Berechnungsbeschleuniger hinzugefügt, die sowohl als separate ASICs als auch als IP-Blocks in SoCs und GPUs bereitgestellt werden können. Diese Beschleuniger sind hauptsächlich darauf ausgelegt, maschinelles Lernen zu beschleunigen.
    • Im amdgpu-Treiber wurde die Unterstützung für IP-Komponenten GC, PSP, SMU und NBIO aktiviert. Für ARM64-Systeme wurde die Unterstützung von DCN (Display Core Next) implementiert. Die Implementierung von geschütztem Videoausgang wurde von DCN10 auf DCN21 migriert und kann nun beim Anschluss mehrerer Bildschirme verwendet werden.
    • Im i915-Treiber (Intel) wurde die Unterstützung für die diskreten Intel Arc-Grafikkarten (DG2/Alchemist) stabilisiert.
    • Der Nouveau-Treiber unterstützt jetzt die NVIDIA GA102 GPU (RTX 30), basierend auf der Ampere-Architektur. Für die nva3-Karten (GT215) wurde die Möglichkeit zur Steuerung der Hintergrundbeleuchtung hinzugefügt.
    • Unterstützung für drahtlose Adapter auf Basis der Chips Realtek 8852BE, Realtek 8821CU, 8822BU, 8822CU, 8723DU (USB) und MediaTek MT7996 sowie Bluetooth-Schnittstellen von Broadcom BCM4377/4378/4387 sowie Ethernet-Controller von Motorcomm yt8521 und NVIDIA Tegra GE wurde hinzugefügt.
    • ASoC (ALSA System on Chip) Unterstützung wurde für integrierte Audioprozessoren wie HP Stream 8, Advantech MICA-071, Dell SKU 0C11, Intel ALC5682I-VD, Xiaomi Redmi Book Pro 14 (2022), i.MX93, Armada 38x und RK3588 hinzugefügt. Auch Unterstützung für das Audio-Interface Focusrite Saffire Pro 40 wurde integriert. Ein neuer Audio-Codec, der Realtek RT1318, ist ebenfalls jetzt verfügbar.
    • Unterstützung für Smartphones und Tablets von Sony (Xperia 10 IV, 5 IV, X und X Compact), OnePlus (One, 3, 3T und Nord N100), Xiaomi (Poco F1 und Mi6), Huawei Watch, Google Pixel 3a und Samsung Galaxy Tab 4 10.1 wurde hinzugefügt.
    • Unterstützung für ARM SoC und Apple-Platten T6000 (M1 Pro), T6001 (M1 Max), T6002 (M1 Ultra), Qualcomm MSM8996 Pro (Snapdragon 821), SM6115 (Snapdragon 662), SM4250 (Snapdragon 460), SM6375 (Snapdragon 695), SDM670 (Snapdragon 670), MSM8976 (Snapdragon 652), MSM8956 (Snapdragon 650), RK3326 Odroid-Go/rg351, Zyxel NSA310S, InnoComm i.MX8MM und Odroid Go Ultra wurde ebenfalls hinzugefügt.

Gleichzeitig hat die lateinamerikanische Stiftung für freie Software eine vollständig freie Variante des Kernels 6.2 — Linux-libre 6.2-gnu entwickelt, die von Firmware-Elementen und Treibern gereinigt wurde, die nicht freie Komponenten oder Codeabschnitte enthalten, deren Nutzung vom Hersteller eingeschränkt ist. In der neuen Version wurde eine Reinigung neuer Blobs im Nouveau-Treiber durchgeführt. Die Blobs in den Treibern mt7622, mt7996 WiFi und bcm4377 Bluetooth wurde davon ausgeschlossen. Es wurde eine Reinigung der Blob-Namen in den DTS-Dateien für die Architektur Aarch64 vorgenommen. Der Code zur Reinigung von Blobs in verschiedenen Treibern und Subsystemen wurde aktualisiert. Die Reinigung des Treibers s5k4ecgx wurde eingestellt, da er aus dem Kernel entfernt wurde.

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster