Nach zwei Monaten Entwicklung stellte Linus Torvalds die Version des Linux-Kernels 5.18 vor. Zu den bemerkenswertesten Ănderungen gehören: eine umfassende Bereinigung veralteter Funktionen, die ErklĂ€rung des Reiserfs-Dateisystems als obsolet, die Implementierung von Ereignissen zur Nachverfolgung von Benutzerprozessen, die HinzufĂŒgung von UnterstĂŒtzung fĂŒr den Sicherheitsmechanismus Intel IBT, die Aktivierung eines Ăberlauf-Detection-Modus bei Verwendung der memcpy()-Funktion, die EinfĂŒhrung eines Mechanismus zur Verfolgung von Funktionsaufrufen (fprobe), die Verbesserung der Leistung des CPU-Schedulers auf AMD Zen und die Integration eines Treibers zur Verwaltung von Intel-CPU-Funktionen (SDS). Zudem wurden einige Patches zur Restrukturierung von Header-Dateien integriert und die Verwendung des C11-Standards genehmigt.
In die neue Version wurden 16.206 Korrekturen von 2.127 Entwicklern aufgenommen (in der vorherigen Version gab es 14.203 Korrekturen von 1.995 Entwicklern), die Patch-GröĂe betrĂ€gt 108 MB (die Ănderungen betrafen 14.235 Dateien, es wurden 1.340.982 Codezeilen hinzugefĂŒgt und 593.836 Zeilen gelöscht). Etwa 44 % aller Ănderungen in 5.18 beziehen sich auf GerĂ€tetreiber, etwa 16 % betreffen die Aktualisierung von architekturspezifischem Code, 11 % sind mit dem Netzwerk-Stack verbunden, 3 % mit Dateisystemen und 3 % mit internen Subsystemen des Kernels.
Hauptneuheiten im Kernel 5.18:
- Festplattensubsystem, Ein-/Ausgabe und Dateisysteme
- Im Btrfs-Dateisystem wurde UnterstĂŒtzung fĂŒr die Durchleitung komprimierter Daten bei den send- und receive-Operationen hinzugefĂŒgt. Vorher wurde bei der Verwendung von send/receive die sendende Seite gezwungen, die komprimierten Daten zu dekomprimieren, wĂ€hrend die empfangende Seite sie vor dem Schreiben erneut komprimierte. Im Kernel 5.18 haben Anwendungen im Benutzerspeicher, die send/receive-Aufrufe verwenden, die Möglichkeit, komprimierte Daten ohne Neuverpackung zu ĂŒbertragen. Diese FunktionalitĂ€t wurde durch neue ioctl-Operationen BTRFS_IOC_ENCODED_READ und BTRFS_IOC_ENCODED_WRITE ermöglicht, die ein direktes Lesen und Schreiben von Informationen in Extents erlauben.
DarĂŒber hinaus wurde die Leistung von fsync in Btrfs verbessert. Es wurde die Möglichkeit zur Deduplizierung und zur DurchfĂŒhrung von Reflink (Klonen von Dateimetadaten mit Erstellung eines Links zu bereits vorhandenen Daten ohne deren tatsĂ€chliche Kopie) fĂŒr das gesamte SpeichergerĂ€t hinzugefĂŒgt, ohne auf die EinhĂ€ngepunkte beschrĂ€nkt zu sein.
- Im Modus direkten Eingangs/Ausgangs (Direct I/O) ist der Zugriff auf verschlĂŒsselte Dateien unter Verwendung von fscrypt Inline-VerschlĂŒsselung möglich, bei der die VerschlĂŒsselungs- und EntschlĂŒsselungsoperationen von dem Speichercontroller und nicht vom Kernel durchgefĂŒhrt werden. Bei herkömmlicher VerschlĂŒsselung durch den Kernel ist der Zugriff auf verschlĂŒsselte Dateien ĂŒber Direct I/O nach wie vor nicht möglich, da der Zugriff auf die Dateien den Puffermechanismus im Kernel umgeht.
- Auf dem NFS-Server ist standardmĂ€Ăig die UnterstĂŒtzung des Protokolls NFSv3 aktiviert, das nun keine separate Aktivierung mehr erfordert und beim allgemeinen Aktivieren von NFS verfĂŒgbar ist. NFSv3 wird als die primĂ€re und stets unterstĂŒtzte Version von NFS betrachtet, wĂ€hrend die UnterstĂŒtzung von NFSv2 möglicherweise in Zukunft eingestellt wird. Die Effizienz beim Lesen des Inhalts von Verzeichnissen wurde erheblich verbessert.
- Das Dateisystem ReiserFS wurde als veraltet eingestuft und wird 2025 entfernt. Die Einstufung von ReiserFS als veraltet ermöglicht eine Verringerung des Aufwands fĂŒr die Wartung allgemeiner Ănderungen an Dateisystemen in Bezug auf die UnterstĂŒtzung neuer APIs fĂŒr das EinhĂ€ngen, iomap und Folios.
- FĂŒr das FS F2FS wurde die Möglichkeit implementiert, Benutzer-IDs von eingehĂ€ngten Dateisystemen zuzuordnen, die verwendet wird, um Dateien eines bestimmten Benutzers auf einem fremden eingehĂ€ngten Laufwerk einem anderen Benutzer im aktuellen System zuzuordnen.
- Der Code zur Berechnung von Statistiken in den Device-Mapper-Handlern wurde ĂŒberarbeitet, was die Genauigkeit der Abrechnung in solchen Handlern wie dm-crypt erheblich verbessert hat.
- FĂŒr NVMe-GerĂ€te wurde die UnterstĂŒtzung fĂŒr 64-Bit-PrĂŒfziffern zur ĂberprĂŒfung der IntegritĂ€t implementiert.
- FĂŒr das Dateisystem exfat wurde eine neue EinhĂ€ngeoption âkeep_last_dotsâ vorgeschlagen, die das Entfernen von Punkten am Ende des Dateinamens verhindert (in Windows werden Punkte am Ende des Namens standardmĂ€Ăig entfernt).
- In EXT4 wurde die Leistung des Modus fast_commit verbessert und die Skalierbarkeit erhöht. Die EinhĂ€ngeoption âmb_optimize_scanâ, die die Leistung bei hoher Fragmentierung des FS verbessert, wurde fĂŒr die Arbeit mit Dateien mit Extents angepasst.
- Die UnterstĂŒtzung fĂŒr Schreibströme (write stream) im Teilsystem, das den Betrieb blockbasierter GerĂ€te gewĂ€hrleistet, wurde eingestellt. Diese Funktion wurde fĂŒr SSDs vorgeschlagen, fand jedoch keine Verbreitung, und derzeit gibt es keine GerĂ€te, die diesen Modus unterstĂŒtzen. Es ist unwahrscheinlich, dass solche GerĂ€te in Zukunft erscheinen werden.
- Im Btrfs-Dateisystem wurde UnterstĂŒtzung fĂŒr die Durchleitung komprimierter Daten bei den send- und receive-Operationen hinzugefĂŒgt. Vorher wurde bei der Verwendung von send/receive die sendende Seite gezwungen, die komprimierten Daten zu dekomprimieren, wĂ€hrend die empfangende Seite sie vor dem Schreiben erneut komprimierte. Im Kernel 5.18 haben Anwendungen im Benutzerspeicher, die send/receive-Aufrufe verwenden, die Möglichkeit, komprimierte Daten ohne Neuverpackung zu ĂŒbertragen. Diese FunktionalitĂ€t wurde durch neue ioctl-Operationen BTRFS_IOC_ENCODED_READ und BTRFS_IOC_ENCODED_WRITE ermöglicht, die ein direktes Lesen und Schreiben von Informationen in Extents erlauben.
- Speicher und Systemdienste
- Die Integration eines Patch-Sets, das die Neuaufbauzeit des Kernels erheblich verkĂŒrzt, hat begonnen. Dies geschieht durch die Umstrukturierung der Hierarchie der Header-Dateien und die Reduzierung der Anzahl der KreuzabhĂ€ngigkeiten. Die Kernelversion 5.18 enthĂ€lt Patches, die die Struktur der Header-Dateien des Prozessplaners (kernel/sched) optimieren. Im Vergleich zur vorherigen Version wurde der CPU-Zeitverbrauch beim Bauen des Codes kernel/sched um 61 % reduziert, und die tatsĂ€chliche Build-Zeit verringerte sich um 3,9 % (von 2,95 auf 2,84 Sekunden).
- Im Kerncode ist die Verwendung des Standards C11, der 2011 veröffentlicht wurde, erlaubt. Zuvor musste der zum Kernel hinzugefĂŒgte Code den ANSI C (C89) entsprechen, der 1989 festgelegt wurde. In den Build-Skripten des Kernels 5.18 wurde die Option 'âstd=gnu89' durch 'âstd=gnu11 -Wno-shift-negative-value' ersetzt. Es wurde in Betracht gezogen, den Standard C17 zu verwenden, jedoch hĂ€tte dies eine Erhöhung der minimal unterstĂŒtzten GCC-Version erforderlich gemacht, wĂ€hrend die UnterstĂŒtzung von C11 den aktuellen Anforderungen an die GCC-Version (5.1) entspricht.
- Die Leistung des Task-Schedulings auf AMD-Prozessoren mit der Mikroarchitektur Zen wurde verbessert. Diese besitzen mehrere Last-Level-Caches (LLC) fĂŒr jeden Knoten mit lokalen SpeicherkanaÌlen. In der neuen Version wurde das Ungleichgewicht zwischen den LLCs in NUMA-Knoten behoben, was unter bestimmten Lasten zu einer erheblichen Leistungssteigerung fĂŒhrte.
- Die Mittel zur Nachverfolgung von Anwendungen im Benutzermodus wurden erweitert. In der neuen Kernversion wurde die Möglichkeit hinzugefĂŒgt, dass Benutzerprozesse Nachverfolgungsereignisse (User events) erstellen und Daten in den Nachverfolgungspuffer schreiben können. Diese können dann ĂŒber gĂ€ngige Nachverfolgungswerkzeuge des Kernels, wie ftrace und perf, eingesehen werden. Benutzer-Tracking-Ereignisse sind von den Ereignissen des Kernel-Trackings isoliert. Der Status der Ereignisse kann ĂŒber die Datei /sys/kernel/debug/tracing/user_events_status eingesehen werden, wĂ€hrend die Registrierung eines Ereignisses und das Schreiben von Daten ĂŒber die Datei /sys/kernel/debug/tracing/user_events_data erfolgt.
- Ein Mechanismus zur Verfolgung (Probe) von Funktionsaufrufen wurde hinzugefĂŒgt - fprobe. Die API fprobe basiert auf ftrace, ist jedoch auf die Möglichkeit beschrĂ€nkt, Callback-Handler an Eintrittspunkte in Funktionen und zum Abschluss von Funktionen anzuhĂ€ngen. Im Gegensatz zu kprobes und kretprobes ermöglicht der neue Mechanismus die Verwendung eines Handlers fĂŒr mehrere Funktionen gleichzeitig.
- Die UnterstĂŒtzung Ă€lterer ARM-Prozessoren (ARMv4 und ARMv5), die nicht mit einer Speicherverwaltungseinheit (MMU) ausgestattet sind, wurde eingestellt. Die UnterstĂŒtzung fĂŒr ARMv7-M-Systeme ohne MMU bleibt bestehen.
- Die UnterstĂŒtzung der RISC-Ă€hnlichen Architektur NDS32, die in Prozessoren von Andes Technologies verwendet wurde, wurde eingestellt. Der Code wurde aufgrund fehlender Wartung und des mangelnden Bedarfs an NDS32-UnterstĂŒtzung im Hauptkern von Linux entfernt (die verbleibenden Nutzer verwenden spezialisierte Kernel-Builds von Hardwareherstellern).
- Die Kernel-Kompilierung mit UnterstĂŒtzung fĂŒr das Format a.out fĂŒr die Architekturen alpha und m68k, in denen dieses Format weiterhin verwendet wird, ist standardmĂ€Ăig deaktiviert. Es ist wahrscheinlich, dass die UnterstĂŒtzung des veralteten Formats a.out bald vollstĂ€ndig aus dem Kernel entfernt wird. PlĂ€ne zur Entfernung des Formats a.out werden seit 2019 diskutiert.
- FĂŒr die PA-RISC-Architektur wurde eine minimale UnterstĂŒtzung des vDSO-Mechanismus (virtual dynamic shared objects) implementiert, der eine begrenzte Anzahl von Systemaufrufen bereitstellt, die im Benutzerspeicher ohne Kontextwechsel verfĂŒgbar sind. Die UnterstĂŒtzung von vDSO ermöglicht die AusfĂŒhrung mit einem nicht ausfĂŒhrbaren Stapel.
- Die UnterstĂŒtzung des Intel HFI (Hardware Feedback Interface) wurde hinzugefĂŒgt, das es der Hardware ermöglicht, dem Kernel Informationen ĂŒber die aktuelle Leistung und Energieeffizienz jedes CPU zu ĂŒbermitteln.
- Ein Treiber fĂŒr den Mechanismus Intel SDSi (Software-Defined Silicon) wurde hinzugefĂŒgt, der die Aktivierung zusĂ€tzlicher Funktionen im Prozessor ermöglicht (z. B. spezialisierte Anweisungen und zusĂ€tzlichen Cache-Speicher). Die Idee besteht darin, Chips zu einem niedrigeren Preis mit gesperrten erweiterten Funktionen anzubieten, die dann 'gekauft' und aktiviert werden können, ohne den Chip physisch auszutauschen.
- Der Treiber amd_hsmp wurde hinzugefĂŒgt, um die Schnittstelle AMD HSMP (Host System Management Port) zu unterstĂŒtzen, die den Zugriff auf Funktionen zur Prozessorsteuerung ĂŒber einen Satz spezieller Register ermöglicht, die in den Serverprozessoren AMD EPYC ab der Generation Fam19h eingefĂŒhrt wurden. Beispielsweise kann ĂŒber HSMP auf Daten zum Energieverbrauch und zur Temperatur zugegriffen, Frequenzgrenzen gesetzt, verschiedene Leistungssteigerungsmodi aktiviert und die Speicheroperationen verwaltet werden.
- Im io_uring-Schnittstelle fĂŒr asynchronen Ein-/Ausgabe wurde die Option IORING_SETUP_SUBMIT_ALL fĂŒr die Registrierung eines Sets von Dateideskriptoren im Ring-Puffer implementiert, sowie die Operation IORING_OP_MSG_RING, die es ermöglicht, ein Signal von einem Ring-Puffer in einen anderen Ring-Puffer zu senden.
- Im Mechanismus DAMOS (Data Access Monitoring-based Operation Schemes), der das Freigeben von Speicher unter BerĂŒcksichtigung der Zugriffsfrequenz auf den Speicher ermöglicht, wurden die Möglichkeiten zur Ăberwachung von Speicheroperationen im Benutzerspeicherraum erweitert.
- Die dritte Serie von Patches zur Umsetzung des Konzepts von Seitenfolios (page folios) wurde integriert, die an verbundene Seiten (compound pages) erinnern, jedoch durch eine verbesserte Semantik und eine klarere Arbeitsorganisation unterscheiden. Der Einsatz von Folios ermöglicht eine schnellere Speicherverwaltung in einigen Kernsubsystemen. In den vorgeschlagenen Patches wurde die Umstellung auf Folios interner Speicherverwaltungsfunktionen, einschlieĂlich Varianten der Funktion get_user_pages(), vorgenommen. Die UnterstĂŒtzung fĂŒr die Erstellung groĂer Folios im Code fĂŒr vorab geladenen Daten wurde bereitgestellt.
- Im Build-System wird die UnterstĂŒtzung fĂŒr die Umgebungsvariablen USERCFLAGS und USERLDFLAGS eingefĂŒhrt, mit denen zusĂ€tzliche Flags an den Compiler und den Linker ĂŒbergeben werden können.
- Im eBPF-Subsystem wurde im Mechanismus BTF (BPF Type Format), der Informationen zur TypprĂŒfung im BPF-Pseudocode bereitstellt, die Möglichkeit implementiert, Anmerkungen zu Variablen hinzuzufĂŒgen, die auf Speicherbereiche im Benutzerspeicher verweisen. Diese Anmerkungen unterstĂŒtzen das BPF-Code-Verifizierungssystem dabei, Speicherzugriffe qualitativ besser zu identifizieren und zu ĂŒberprĂŒfen.
- Ein neuer Handler fĂŒr die Speicherzuweisung zur Speicherung geladener BPF-Programme wurde vorgeschlagen, der eine effizientere Nutzung des Speichers in Situationen ermöglicht, in denen eine groĂe Anzahl von BPF-Programmen geladen wird.
- Im Systemaufruf madvise(), der Mittel zur Optimierung des Speichermanagements eines Prozesses bereitstellt, wurde das Flag MADV_DONTNEED_LOCKED hinzugefĂŒgt, das das bereits vorhandene Flag MADV_DONTNEED ergĂ€nzt. Damit kann dem Kernel im Voraus mitgeteilt werden, dass ein Speicherblock freigegeben werden soll, d.h. dass dieser Block nicht mehr benötigt wird und vom Kernel verwendet werden kann. Im Gegensatz zu MADV_DONTNEED kann das Flag MADV_DONTNEED_LOCKED fĂŒr im RAM verankerte Seiten verwendet werden, die beim Aufruf von madvise ohne Ănderung ihres verankerten Status verdrĂ€ngt werden und im Falle eines spĂ€teren Zugriffs auf den Block und der Erzeugung eines âPage Faultsâ mit erhaltener Bindung zurĂŒckgegeben werden. ZusĂ€tzlich wurde eine Ănderung hinzugefĂŒgt, die die Verwendung des Flags MADV_DONTNEED mit groĂen Speicherseiten im HugeTLB ermöglicht.
- Virtualisierung und Sicherheit
- FĂŒr die x86-Architektur wurde die UnterstĂŒtzung des Schutzmechanismus zur Verfolgung indirekter SprĂŒnge (IBT, Indirect Branch Tracking) von Intel hinzugefĂŒgt, der die Anwendung von Techniken zur Erstellung von Exploits unter Verwendung zurĂŒckkehrend orientierter Programmierung (ROP, Return-Oriented Programming) erschwert. Dabei wird der Exploit in Form einer Kette von Aufrufen bereits im Speicher vorhandener Maschinencode-StĂŒcke gebildet, die mit einem RĂŒckgabebefehl enden (in der Regel den Enden von Funktionen). Der Kern des implementierten Schutzverfahrens besteht darin, indirekte SprĂŒnge in den Funktionskörper zu blockieren, indem zu Beginn der Funktion eine spezielle Anweisung ENDBR hinzugefĂŒgt wird. Die AusfĂŒhrung ĂŒber einen indirekten Sprung ist nur zulĂ€ssig, wenn auf diese Anweisung zugegriffen wird (ein indirekter Aufruf ĂŒber JMP und CALL muss immer auf die ENDBR-Anweisung zeigen, die sich am Anfang der Funktion befindet).
- Eine strengere ĂberprĂŒfung der Puffergrenzen in den Funktionen memcpy(), memmove() und memset() wurde aktiviert, die beim Kompilierungsprozess im CONFIG_FORTIFY_SOURCE-Modus durchgefĂŒhrt wird. Die hinzugefĂŒgte Ănderung besteht darin, das Ăberschreiten der Grenzen von Elemente von Strukturen zu ĂŒberprĂŒfen, deren GröĂe bekannt ist. Dabei wird festgestellt, dass die implementierte Möglichkeit alle mit memcpy() in Verbindung stehenden PufferĂŒberlĂ€ufe im Kernel, die in den letzten drei Jahren festgestellt wurden, blockieren könnte.
- Der zweite Teil des Codes der aktualisierten Implementierung des RDRAND Pseudo-Zufallszahlengenerators wurde hinzugefĂŒgt, der fĂŒr die FunktionalitĂ€t der GerĂ€te /dev/random und /dev/urandom verantwortlich ist. Die neue Implementierung zeichnet sich durch die Vereinheitlichung der Funktionsweise von /dev/random und /dev/urandom aus, sowie durch den Schutz gegen das Auftreten von Duplikaten im Zufallszahlstrom beim Start. virtuelle Maschinen und durch den Ăbergang zur Verwendung der Hash-Funktion BLAKE2s anstelle von SHA1 fĂŒr die Entropie-Mischoperationen. Diese Ănderung hat es ermöglicht, die Sicherheit des Pseudo-Zufallszahlengenerators zu erhöhen, indem der problematische SHA1-Algorithmus eliminiert und die Ăberschreibung des Initialisierungsvektors des RNG ausgeschlossen wurde. Da der BLAKE2s-Algorithmus SHA1 in der Leistung ĂŒbertrifft, hat sich dessen Einsatz auch positiv auf die Leistung ausgewirkt.
- FĂŒr die ARM64-Architektur wurde die UnterstĂŒtzung fĂŒr einen neuen Algorithmus zur Authentifizierung von Zeigern â âQARMA3â â hinzugefĂŒgt, der schneller ist als der QARMA-Algorithmus und gleichzeitig ein angemessenen Schutzniveau aufrechterhĂ€lt. Die Technologie ermöglicht die Verwendung spezialisierter ARM64-Anweisungen zur ĂberprĂŒfung von RĂŒckgabeverweisen mithilfe von digitalen Signaturen, die in den ungenutzten oberen Bits des Zeigers gespeichert sind.
- FĂŒr die ARM64-Architektur wurde die UnterstĂŒtzung fĂŒr den Aufbau mit aktivierter Schutzmechanismus in GCC 12 implementiert, der eine RĂŒckgabeadressĂŒberschreibung in Funktionen im Fall eines PufferĂŒberlaufs im Stack verhindert. Der Mechanismus besteht darin, die RĂŒckgabadresse nach der Ăbergabe der Kontrolle an die Funktion in einem separaten âSchattenâ-Stack zu speichern und diese Adresse vor dem Verlassen der Funktion abzurufen.
- Ein neues SchlĂŒsselverwaltungssystem (keyring) â âmachineâ â wurde hinzugefĂŒgt, das die Systembesitzer-SchlĂŒssel (MOK, Machine Owner Keys) enthĂ€lt, die im Shim-Bootloader unterstĂŒtzt werden. Diese SchlĂŒssel können zur Signierung von Komponenten des Kernels verwendet werden, die nach dem Start geladen werden (z.B. Kernelmodule).
- Die UnterstĂŒtzung fĂŒr asymmetrische PrivatschlĂŒssel fĂŒr TPM wurde entfernt, die in der veralteten Version von TPM angeboten wurden, bekannte Sicherheitsprobleme aufwiesen und in der Praxis nicht verbreitet sind.
- Der Schutz von Daten vom Typ size_t vor ĂberlĂ€ufen von Ganzzahlen wurde hinzugefĂŒgt. Im Code kommen die Handler size_mul(), size_add() und size_sub() zum Einsatz, die sicheres Multiplizieren, Addieren und Subtrahieren von GröĂen vom Typ size_t ermöglichen.
- Bei der Erstellung des Kernels wurden die Flags â-Warray-boundsâ und â-Wzero-length-boundsâ aktiviert, die Warnungen ausgeben, wenn der Index auĂerhalb des Array-Rahmens liegt oder Arrays mit NulllĂ€ngen verwendet werden.
- Im virtio-crypto-GerĂ€t wurde die UnterstĂŒtzung fĂŒr die VerschlĂŒsselung mit dem RSA-Algorithmus hinzugefĂŒgt.
- Netzwerksubsystem
- In der Implementierung der NetzwerkbrĂŒcken wurde die UnterstĂŒtzung fĂŒr den Portbinding-Modus (locked mode) hinzugefĂŒgt, bei dem der Benutzer den Datenverkehr nur ĂŒber einen erlaubten MAC-Adresse senden kann. Zudem wurde die Möglichkeit hinzugefĂŒgt, mehrere Strukturen zur Bewertung des STP-Protokollstatus (Spanning Tree Protocol) zu verwenden. FrĂŒhere VLAN konnten nur direkt an STP (1:1) gebunden werden, wobei jedes VLAN unabhĂ€ngig verwaltet wurde. In der neuen Version wurde der Parameter mst_enable hinzugefĂŒgt, durch den der Zustand der VLANs vom MST-Modul (Multiple Spanning Trees) ĂŒberwacht wird und die Bindung der VLANs dem M:N-Modell entsprechen kann.
- Es wurde weiterhin an der Integration von Mitteln zur Verfolgung der GrĂŒnde fĂŒr den Paketabwurf (reason-codes) im Netzwerk-Stack gearbeitet. Der Grundcode wird beim Freigeben des mit dem Paket verbundenen Speichers ĂŒbermittelt und ermöglicht die BerĂŒcksichtigung von Situationen wie dem Abwurf von Paketen aufgrund von Fehlern bei der FelderfĂŒllung im Header, das Erkennen von Spoofing durch den rp_filter, falsche PrĂŒfziffern, Speichermangel, das Auslösen von IPSec XFRM-Regeln, falsche TCP-Folge-Nummern usw.
- Es wurde die Möglichkeit geschaffen, Netzwerkpakete aus BPF-Programmen zu ĂŒbertragen, die im Benutzerraum im BPF_PROG_RUN-Modus ausgefĂŒhrt werden, bei dem BPF-Programme im Kernel ausgefĂŒhrt werden, aber die Ergebnisse in den Benutzerraum zurĂŒckgegeben werden. Die Pakete werden unter Verwendung des XDP-Subsystems (eXpress Data Path) ĂŒbertragen. Es wird ein Live-Verarbeitungsmodus fĂŒr Pakete unterstĂŒtzt, in dem der XDP-Handler Netzwerkpakete in den Netzwerk-Stack oder an andere GerĂ€te live umleiten kann. Zudem ist es möglich, softwarebasierte Traffic-Generatoren zu erstellen oder Netzwerkrahmen in den Netzwerk-Stack einzufĂŒgen.
- FĂŒr BPF-Programme, die an Netzwerk-cgroups angehĂ€ngt sind, wurden Hilfsfunktionen zur expliziten Festlegung der von Systemaufrufen zurĂŒckgegebenen Werte vorgeschlagen, die es ermöglichen, umfassendere Informationen ĂŒber die GrĂŒnde fĂŒr die Blockierung des Systemaufrufs bereitzustellen.
- Im XDP (eXpress Data Path) wurde die UnterstĂŒtzung fĂŒr fragmentierte Pakete hinzugefĂŒgt, die in mehreren Puffern abgelegt werden, was es ermöglicht, Jumbo-Frames in XDP zu verarbeiten und TSO/GRO (TCP Segmentation Offload/Generic Receive Offload) fĂŒr XDP_REDIRECT anzuwenden.
- Der Prozess zum Entfernen von Netzwerk-NamensrĂ€umen wurde erheblich beschleunigt, was bei einigen groĂen Systemen mit hohem Verkehrsaufkommen nachgefragt wurde.
- AusrĂŒstung
- Im Treiber amdgpu ist die FreeSync-Technologie fĂŒr adaptive Synchronisation standardmĂ€Ăig aktiviert, die die Aktualisierungsrate des Bildschirms anpasst und fĂŒr ein flĂŒssiges Bild ohne Bildrisse beim Spielen und Videoanschauen sorgt. Die UnterstĂŒtzung fĂŒr die GPU Aldebaran wurde als stabil erklĂ€rt.
- Im Treiber i915 wurde die UnterstĂŒtzung fĂŒr Intel Alderlake N-Chips und diskrete Grafikkarten Intel DG2-G12 (Arc Alchemist) hinzugefĂŒgt.
- Im Treiber nouveau wurde die UnterstĂŒtzung fĂŒr höhere Bitraten fĂŒr DP/eDP-Schnittstellen und fĂŒr KabelverlĂ€ngerungen lttprs (Link-Training Tunable PHY Repeaters) gewĂ€hrleistet.
- Im drm (Direct Rendering Manager) wurden in den Treibern armada, exynos, gma500, hyperv, imx, ingenic, mcde, mediatek, msm, omap, rcar-du, rockchip, sprd, sti, tegra, tilcdc, xen und vc4 die UnterstĂŒtzung fĂŒr den Parameter nomodeset hinzugefĂŒgt, der es ermöglicht, das Umschalten der Video-Modi auf Kernel-Ebene zu deaktivieren und Hardwarebeschleunigung fĂŒr Rendering zu nutzen, wobei nur die FunktionalitĂ€t des Systemframebuffers erhalten bleibt.
- Die UnterstĂŒtzung fĂŒr ARM SoCs Qualcomm Snapdragon 625/632 (verwendet in den Smartphones LG Nexus 5X und Fairphone FP3), Samsung Exynos 850, Samsung Exynos 7885 (verwendet in Samsung Galaxy A8), Airoha (Mediatek/EcoNet) EN7523, Mediatek mt6582 (Tablet Prestigio PMT5008 3G), Microchip Lan966, Renesas RZ/G2LC, RZ/V2L, Tesla FSD, TI K3/AM62 und i.MXRTxxxx wurde hinzugefĂŒgt.
- Die UnterstĂŒtzung fĂŒr ARM-GerĂ€te und Platinen von Broadcom (Raspberry Pi Zero 2 W), Qualcomm (Google Herobrine R1 Chromebook, SHIFT6mq, Samsung Galaxy Book2), Rockchip (Pine64 PineNote, Bananapi-R2-Pro, STM32 Emtrion emSBS, Samsung Galaxy Tab S, Prestigio PMT5008 3G Tablet), Allwinner (A20-Marsboard), Amlogic (Amediatek X96-AIR, CYX A95XF3-AIR, Haochuangy H96-Max, Amlogic AQ222 und OSMC Vero 4K+), Aspeed (Quanta S6Q, ASRock ROMED8HM3), Marvell MVEBU/Armada (Ctera C200 V1 und V2 NAS), Mstar (DongShanPiOne, Miyoo Mini), NXP i.MX (Protonic PRT8MM, emCON-MX8M Mini, Toradex Verdin, Gateworks GW7903) wurde hinzugefĂŒgt.
- Die UnterstĂŒtzung fĂŒr Audiosysteme und -codecs AMD PDM, Atmel PDMC, Awinic AW8738, i.MX TLV320AIC31xx, Intel CS35L41, ESSX8336, Mediatek MT8181, nVidia Tegra234, Qualcomm SC7280, Renesas RZ/V2L und Texas Instruments TAS585M wurde hinzugefĂŒgt. Eine erste Implementierung des Audiotreibers fĂŒr den DSP-Chip Intel AVS wurde hinzugefĂŒgt. Die UnterstĂŒtzung fĂŒr Treiber fĂŒr Intel ADL und Tegra234 wurde aktualisiert, und es wurden Ănderungen vorgenommen, um die AudiounterstĂŒtzung auf GerĂ€ten von Dell, HP, Lenovo, ASUS, Samsung und Clevo zu verbessern.
Gleichzeitig hat die lateinamerikanische Free Software Foundation eine vollstĂ€ndig freie Version des 5.18-Kernels â Linux-libre 5.18-gnu â entwickelt, der von Firmware-Elementen und Treibern befreit wurde, die nicht freie Komponenten oder Codeabschnitte enthalten, deren Verwendung vom Hersteller eingeschrĂ€nkt ist. In dieser neuen Version wurden die Treiber fĂŒr MIPI DBI-Panels, VPU Amphion, WiFi MediaTek MT7986 WMAC, Mediatek MT7921U (USB) und Realtek 8852a/8852c, Audioprozessoren Intel AVS und Texas Instruments TAS5805M gereinigt. AuĂerdem wurden die DTS-Dateien fĂŒr verschiedene SoCs von Qualcomm mit Prozessoren auf Basis der AArch64-Architektur bereinigt. Der Code zur Bereinigung von Blobs in den Treibern und Subsystemen AMD GPU, MediaTek MT7915, Silicon Labs WF200+ WiFi, Mellanox Spectrum Ethernet, Realtek rtw8852c, Qualcomm Q6V5, Wolfson ADSP und MediaTek HCI UART wurde aktualisiert.
Quelle: opennet.ru
