Nach zwei Monaten Entwicklung stellte Linus Torvalds die Version 7.3 des Linux-Kernels vor. Zu den auffälligsten Änderungen gehören: ein Isolationsmechanismus für das Dateisystem auf Basis des Pseudodateisystems failfs und des Systemaufrufs fchroot(), Unterstützung für die Erstellung von verschachtelten Zeitplanern SCHED_EXT, BPF-Handler zum Starten von ausführbaren Dateien, alternative Datenströme in NTFS3, Leistungsoptimierungen für FUSE, Btrfs und Ext4, Unterstützung von Apple Time Machine in ksmbd, Entfernung des Dateisystems EFS und FreeVxFS, ein Modus für den direkten Zugriff auf Blockgeräte, Verbesserungen bei der Verarbeitung von Videorasterspeicherengpässen, Verfolgung von Speicherzugriffen in der Gastsystemumgebung über userfaultfd, Komprimierung von AppArmor-Regeln, Einschränkung des Zugriffs auf AF_ALG sowie Unterstützung für Apple M3 Pro-, Max- und Ultra-Chips.
In die neue Version wurden 20260 Korrekturen von 3171 Entwicklern aufgenommen, von denen 807 erstmals ihre Änderungen in den Kernel eingereicht haben. Die Patchgröße beträgt 63 MB (Änderungen betrafen 14923 Dateien, 943849 Codezeilen wurden hinzugefügt,
297515 Zeilen wurden entfernt). In der vorherigen Version wurden 17833 Korrekturen von 2766 Entwicklern vorgenommen, die Patchgröße betrug 68 MB. Etwa 44 % aller in 7.3 eingereichten Änderungen beziehen sich auf Gerätetreiber, etwa 12 % haben mit der Aktualisierung von architekturspezifischem Code zu tun, 12 % betreffen den Netzwerkstack, 5 % die Dateisysteme und 3 % interne Kernsubsysteme.
Die wichtigsten Neuerungen im Kernel 7.3 (1, 2, 3):
- Festplattensubsystem, Ein-/Ausgabe und Dateisysteme
- Die Leistung des Btrfs-Dateisystems wurde optimiert. Für Nicht-SSD-Speichermedien wurde eine überflüssige Verzögerung entfernt, was zu einer fünfmal höheren Durchsatzrate für Lasten mit aktiver Nutzung der Funktion fsync führte, wie z.B. beim Schreiben von Protokollen. In fsync wurde die Erkennung von Lücken in Dateien mit vielen Extents und ohne Lücken deaktiviert, was die Ausführung einiger spezifischer Tests um das Fünffache beschleunigte.
Bei der Verfolgung nicht-cachbarer Buffers von Extents wurde die Struktur xarray durch eine lokale LRU-Liste ersetzt, was zu einer Leistungssteigerung dieser Operationen um das Dreifache führte. Leistungseinbrüche im Modus für direkten Ein-/Ausgabe wurden beseitigt, die durch Rückschritte in früheren Kernel-Versionen verursacht wurden. Die Sperren beim vorzeitigen Lesen von Extents wurden verringert, was die Overheadkosten beim Zugriff verschiedener Aufgaben auf überlappende Bereiche reduzierte.
- In Btrfs wurde die Unterstützung der ersten Version des Caches mit Informationen über den freien Speicher entfernt. Dateisysteme, die auf alten Systemen erstellt wurden, müssen mit dem Tool btrfstune in die zweite Version des Caches umgewandelt werden, da sie sonst langsamer laufen. Die Option „usebackuproot“ zum Mounten wurde ebenfalls entfernt; stattdessen sollte „rescue=usebackuproot“ verwendet werden.
- Im Ext4-Dateisystem wurde die Leistung paralleler Schreibvorgänge bei direktem Input/Output (Direct I/O) verbessert und das Reservieren leerer Bereiche über den Aufruf von fallocate() beschleunigt. Ein Rückschritt, der die Leistung bei gepuffertem Schreiben verringerte, wurde behoben.
- Im Ext4-Dateisystem wurde der Mount-Modus „data=journal“ als veraltet eingestuft. Die Unterstützung dieser Mount-Option soll 2028 eingestellt werden. Die Option „data=journal“ ermöglicht einen vollständigen Journal-Modus, bei dem sowohl Metadaten als auch Daten in das Journal geschrieben werden, was hohe Stabilität im Falle von Ausfällen gewährleistet, aber die Wartung des Codes erschwert und zu einem signifikanten Leistungsverlust im Vergleich zu den Modi „data=ordered“ und „data=writeback“ führt.
- Das EFS-Dateisystem wurde entfernt, das in frühen Versionen von IRIX verwendet wurde, etwa vor 30 Jahren. Es wird seit über 20 Jahren nicht mehr unterstützt. Für diejenigen, die Zugriff auf Partitionen mit EFS benötigen, stehen Dienstprogramme zur Verfügung, die im Benutzerspeicher arbeiten.
- Das FreeVxFS-Dateisystem, das das Format des VERITAS VxFS-Dateisystems implementierte und in SCO UnixWare in den 1990er Jahren verwendet wurde, wurde entfernt; es wird seit langem nicht mehr praktisch genutzt.
- Im Mechanismus zur Erstellung von Dateisystemen im Benutzerspeicher FUSE wurde die Leistung verbessert und der Speicherverbrauch bei Verwendung des asynchronen I/O-Systems io_uring reduziert. Diese Beschleunigung wurde durch die Möglichkeit erreicht, Puffer-Pools vom Benutzerspeicher in den Kernel zu übertragen und überflüssige Pufferspeicherung (zero-copy) zu beseitigen, wenn der FUSE-Server auf die Speicherseiten des Klientenprozesses oder den Seiten-Cache zugreift.
- Für Blockgeräte wurde das Flag RWF_DONTCACHE implementiert, das dem Modus für direktes Input/Output ähnelt.
(Direct I/O), das in den Funktionen preadv2() und pwritev2() oder in Lese- und Schreibanfragen über io_uring verwendet werden kann, um auf ein Blockgerät umgehend und ohne Cache zuzugreifen. Zum Beispiel kann das Flag in Datenbankverwaltungssystemen für die Low-Level-Arbeit mit Blockgeräten verwendet werden. - Im Overlay-Dateisystem overlayfs wurde die Unterstützung für das Mapping von Benutzeridentifikatoren hinzugefügt, um Dateien eines bestimmten Benutzers auf einem fremden gemounteten Bereich mit einem anderen Benutzer im aktuellen System abzugleichen.
- Die Unterstützung für das Mounten mehrerer Dateisysteme von einem Blockgerät wurde verbessert.
- Im ntfs3-Treiber wurde eine grundlegende Unterstützung für alternative Datenströme implementiert, die im Dateinamen durch einen Doppelpunkt getrennt werden. Um einen neuen alternativen Stream zu erstellen, kann der Befehl „touch file:stream“ verwendet werden, zum Lesen „cat file:stream“, zum Löschen „rm file:stream“ und um verfügbare Streams anzuzeigen „cat file:query_streams“.
- In der neuen Implementierung von NTFS (ntfsplus) im Nur-Lese-Modus wurde die Unterstützung für die transparente Dateikompression unter Verwendung von Overlay-Filtern WOF (Windows Overlay Filter) hinzugefügt.
- Der NFS-Server hat die Unterstützung für die Operation CB_NOTIFY hinzugefügt, die es dem Client ermöglicht, Metadaten von Verzeichnissen auf seiner Seite zu cachen und Benachrichtigungen über Änderungen vom Server zu erhalten.
- Im F2FS-Dateisystem wurde die Unterstützung für das dynamische (ohne Aushängen des Dateisystems) Entfernen von Partitionen aus einem gemeinsamen Pool mit automatischer Datenverschiebung auf andere Partitionen und Rückführung (beispielsweise kann ein Speichergerät vorübergehend für andere Zwecke entnommen werden) hinzugefügt.
- In XFS wurde die Unterstützung für das Flag FALLOC_FL_WRITE_ZEROES im Systemaufruf fallocate() hinzugefügt, das es ermöglicht, einen angegebenen Bereich in einer Datei mit Nullen zu füllen, indem der von einigen SSDs unterstützte Befehl WRITE_ZERO verwendet wird, der das Nullsetzen ohne E/A-Operationen durchführt.
- Die Leistung des Btrfs-Dateisystems wurde optimiert. Für Nicht-SSD-Speichermedien wurde eine überflüssige Verzögerung entfernt, was zu einer fünfmal höheren Durchsatzrate für Lasten mit aktiver Nutzung der Funktion fsync führte, wie z.B. beim Schreiben von Protokollen. In fsync wurde die Erkennung von Lücken in Dateien mit vielen Extents und ohne Lücken deaktiviert, was die Ausführung einiger spezifischer Tests um das Fünffache beschleunigte.
- Speicher und Systemdienste
- Die Verarbeitung von Videostspeicherengpässen wurde verbessert. Im Falle eines erschöpften freien Videostspeichers versucht der Kernel nun, aus dem Video-RAM in den Systemspeicher (GTT) die Speicherpuffer von Anwendungen zu verdrängen, die keine garantierte Speicherkontingente (dmem cgroup) haben, anstatt sofort die Zuweisung von Videostspeicher zu verweigern. Dieser Ansatz gewährleistet die Zuweisung von Ressourcen an eine Anwendung, der das System ein bestimmtes Volumen an Videostspeicher reserviert hat, selbst wenn dieser Speicher bereits anderen Anwendungen zugewiesen ist. Zuvor, wenn einer Anwendung ohne Kontingente Videostspeicher zugewiesen war, konnte eine Anwendung mit garantierten Kontingenten diesen im Falle eines Videostspeicherengpasses nicht erhalten, und stattdessen wurde über das TTM-Subsystem (Translation Table Maps) langsamerer Systemspeicher zugewiesen, der aus dem GPU (GTT) adressiert wird.
Die Unterstützung von dmem cgroup wurde für die Treiber nouveau, xe und amdgpu implementiert. - Im SCHED_EXT-Mechanismus, der die Verwendung von BPF zur Erstellung von CPU-Planern ermöglicht, wurde die Arbeit an der Möglichkeit zur Erstellung von verschachtelten Planern (sub-scheduler) abgeschlossen, mit deren Hilfe für jede cgroup ein eigener Task-Planer genutzt werden kann.
- Es wurden Verbesserungen am Task-Planer vorgenommen, die mit der Verarbeitung von cgroups und der Lösung von Problemen bei der Gewichtung verbunden sind, die zu zusätzlichen Überkopf- und Verzögerungskosten führten. Es wurden mehrere Methoden zur Gewichtung von cgroups vorgeschlagen - 'up', 'max', 'concur' und 'tasks', die über den Parameter cgroup_mode eingestellt werden. Es wurde eine einheitliche Ausführungswarteschlange (runqueue) für die Planung von Aufgaben innerhalb der cgroup aktiviert. Die Verzögerungen bei der Planung von Aufgaben, die kurze Zeitquantitäten an CPU-Zeit zugewiesen bekommen, wurden verringert, dank der
Möglichkeit, bei Bedarf die Ausführung von Aufgaben, die vor Verdrängung geschützt sind, abzubrechen, zu aktualisieren oder zu minimieren. - Im binfmt_misc-Mechanismus (/proc/sys/fs/binfmt_misc) wurde implementiert
Die Möglichkeit, BPF-Handler zu verbinden, um die Unterstützung neuer ausführbarer Dateiformate hinzuzufügen. Die Änderung ermöglicht es, programmgesteuert zum Zeitpunkt jedes Starts den Typ der ausführbaren Datei zu analysieren und den entsprechenden Interpreter oder dynamischen Loader ohne Hacks wie die Verwendung des Tools patchelf und Skripthülsen auszuwählen. Beispielsweise können in einem BPF-Programm ausführbare Dateien für andere Architekturen oder Plattformen definiert und die entsprechenden Emulatoren oder Wine gestartet werden, sowie die Organisation des Starts von ausführbaren Dateien in Paketen, die in verschiedenen Verzeichnissen in Systemen mit dem Paketmanager Nix installiert sind, vereinfacht werden. - Der Transfer der Änderungen aus dem Rust-for-Linux-Branch wurde fortgesetzt, die die Verwendung der Programmiersprache Rust als zweite Sprache für die Entwicklung von Treibern und Kernmodulen betreffen (die Rust-Unterstützung ist standardmäßig nicht aktiv und führt nicht zur Einbeziehung von Rust in die obligatorischen Build-Abhängigkeiten des Kerns). Es besteht nun die Möglichkeit, Rust für die PowerPC-Architektur zu verwenden. Implementiert wurden: ein Modul für ganzzahlige Umwandlungen ohne Verlust, ein Modus für obfuskiertes Protokollieren von Pointerwerten zur Verhinderung von Lecks von Informationen über den Adressraum, eine Wrapper-Funktion über synchronize_rcu(), Speicherbarrieren, ein Interrupt-Modul zum Aktivieren/Deaktivieren von Unterbrechungen, Typen für Ein- /Ausgabe, Wrapper über fwctl, der SRCU-Mechanismus (sleepable read-copy-update), Wrapper über gem shmem.
Spinlock-Sperren SpinLockIrq, die Unterbrechungen in kritischen Abschnitten verhindern. - Ein sysctl-Parameter syscall_user_dispatch wurde hinzugefügt, um die Aktivierung des Dispatch-Modus für Systemaufrufe im Benutzerspeicher zu steuern, was einem Prozess ermöglicht, die Systemaufrufe eines anderen Prozesses abzufangen (wird in Wine verwendet, um Windows-Systemaufrufe zu emulieren).
- In BPF wurde die Funktion bpf_sock_read_xattr() hinzugefügt, durch die BPF-Programme die vom Benutzer festgelegten erweiterten Attribute lesen können.
(user.*) aus den Inode-Sockets. In BPF-Anwendungen besteht die Möglichkeit, globale Variablen zu definieren, die an die CPU gebunden sind. Im Verifier von BPF-Programmen wurden zusätzliche Informationen über entdeckte Fehler bereitgestellt, die die Ursachen von Problemen leichter identifizierbar machen. - In den Trace-Mechanismen kprobes, uprobes und fprobes wurde die Unterstützung für Typumwandlungen implementiert, indem BTF-Daten (BPF Type Format) mit Informationen zur Typprüfung im Pseudocode BPF verwendet werden, sowie die Extraktion von Variableninformationen verbessert.
- Im DAMON (Data Access MONitor)-Subsystem, das den Zugriff von Prozessen auf Daten im Arbeitsspeicher überwacht (z. B. um herauszufinden, auf welche Bereiche des Speichers ein Prozess zugegriffen hat und welche Bereiche ungenutzt geblieben sind), wurde die Möglichkeit hinzugefügt, Änderungen der Datenattribute (anonymer Speicher, in den Speicher gemappte Dateien, Nur-Lese-Zugriff, keine Zugriffe auf den Speicher usw.) zu überwachen.
- Im KHO-Mechanismus (Kexec HandOver), der zum Starten eines neuen Kernels aus einem alten verwendet wird, ohne den Systemzustand zu verlieren, wird die Berücksichtigung der Allokation von großen Seiten (huge pages) während des Bootvorgangs sichergestellt. Solche Seiten werden nun markiert und nach dem Start des neuen Kernels gespeichert.
- Der Low-Level-Code des Swap-Systems wurde auf eine neue Low-Level-Datenstruktur swap_ops umgestellt, die die Wartung des Codes vereinfacht und die benötigten Abstraktionen zur Erweiterung der Funktionalität in der Zukunft implementiert.
- Neue ioctl-Befehle ALLOCINFO_IOC_CONTENT_ID, ALLOCINFO_IOC_GET_AT und ALLOCINFO_IOC_GET_NEXT wurden hinzugefügt, die eine selektive Übertragung von Profilierungsdaten zur Speicherallokation in den Benutzerraum ermöglichen. Im Vergleich zur zuvor verfügbaren Schnittstelle /proc/allocinfo ermöglichen die vorgeschlagenen ioctl-Aufrufe eine bis zu 20-fache Steigerung der Profilierungsanfrage-Leistung durch Filterung überflüssiger Daten.
- Die Verarbeitung von Videostspeicherengpässen wurde verbessert. Im Falle eines erschöpften freien Videostspeichers versucht der Kernel nun, aus dem Video-RAM in den Systemspeicher (GTT) die Speicherpuffer von Anwendungen zu verdrängen, die keine garantierte Speicherkontingente (dmem cgroup) haben, anstatt sofort die Zuweisung von Videostspeicher zu verweigern. Dieser Ansatz gewährleistet die Zuweisung von Ressourcen an eine Anwendung, der das System ein bestimmtes Volumen an Videostspeicher reserviert hat, selbst wenn dieser Speicher bereits anderen Anwendungen zugewiesen ist. Zuvor, wenn einer Anwendung ohne Kontingente Videostspeicher zugewiesen war, konnte eine Anwendung mit garantierten Kontingenten diesen im Falle eines Videostspeicherengpasses nicht erhalten, und stattdessen wurde über das TTM-Subsystem (Translation Table Maps) langsamerer Systemspeicher zugewiesen, der aus dem GPU (GTT) adressiert wird.
- Virtualisierung und Sicherheit
- Ein neuer Isolationsmechanismus wurde vorgeschlagen, der den Zugriff auf den Inhalt von Dateisystemen blockiert, mit Ausnahme der Ressourcen, die ausdrücklich über Dateideskriptoren in die Sandbox-Umgebung übergeben wurden. Der Mechanismus wird durch ein Pseudo-Dateisystem failfs und den Systemaufruf fchroot realisiert.
Das Pseudo-Dateisystem failfs ähnelt dem Dateisystem nullfs, implementiert jedoch im Gegensatz zu diesem das Prinzip "nichts wird unterstützt" anstelle von "nichts wird gespeichert". Diese Eigenschaft erlaubt es nicht, etwas über failfs zu mounten, Dateisysteme zu klonen oder den Zustand über statmount(), listmount(), /proc//mountinfo und /proc/filesystems zu verfolgen. Wenn sich das Wurzel- oder Arbeitsverzeichnis eines Prozesses in failfs befindet, werden alle Versuche zur Navigation durch das Dateisystem mit absoluten Dateipfaden, symbolischen Links und relativen Pfaden, die vom aktuellen Arbeitsverzeichnis abhängen, blockiert. Dem Prozess bleibt nur die Möglichkeit, auf ein bestimmtes Verzeichnis über Dateideskriptoren zuzugreifen, die vor der Isolation geöffnet wurden.
Ein Systemaufruf fchroot wurde hinzugefügt, um in den neuen Isolierungsmodus zu wechseln. Dieser ähnelt dem Systemaufruf chroot, arbeitet jedoch auf der Ebene der Dateideskriptoren. Im Systemaufruf fchdir wurde das Flag FD_FAILFS_ROOT hinzugefügt, um das Arbeitsverzeichnis des Prozesses im Dateisystem failfs zu verschieben.
Ein ähnliches Flag ist im Systemaufruf fchroot verfügbar. - Die Möglichkeit wurde hinzugefügt, Zugriffe auf den Speicher des Gastbetriebssystems über den Mechanismus userfaultfd zu verfolgen. Dieser erlaubt es, Handlers für Zugriffe auf nicht zugewiesene oder geschützte Speicherseiten im Benutzermodus zu erstellen. In der Praxis ermöglicht die vorgeschlagene Funktion dem Hypervisor, Speicherseiten zu identifizieren, auf die in der virtuellen Maschine nicht zugegriffen wurde, um sie in einen langsameren Speicher oder ein externes Speichergerät auszulagern. Um Verstöße gegen das Lese- und Schreibverbot im überwachten Speicherbereich zu verfolgen, wurde das Flag UFFDIO_REGISTER_MODE_RWP hinzugefügt, das als leistungsstärkere Alternative zur Verwendung von mprotect(PROT_NONE) zusammen mit einem Signal-Handler, der bei einem Zugriff auf geschützten Speicher generiert wird, verwendet werden kann (bei userfaultfd wird eine Ausnahme ausgelöst, die im Benutzermodus behandelt wird). Die Änderung wurde mit Hilfe von AI („Assisted-by: Claude:claude-opus-4-6“) vorbereitet.
- Die Trennung zwischen Kernel-Threads (kthread) und dem Init-Prozess (PID 1) wurde verstärkt. Zuvor wurde in Kernel-Threads und in PID 1 ein gemeinsamer Zustand des Dateisystems verwendet.
was die Umstellung des FS-Status für alle Kernel-Threads über den Aufruf pivot_root() ermöglichte. In der neuen Version wird im PID 1 eine vollständig separate Struktur fs_struct verwendet, und die Kernel-Threads sind in einem separaten Mount-Punkt mit nullfs isoliert. - In die integrierte Kryptographiebibliothek (libcrypto) wurde Unterstützung für die AES-Verschlüsselungsmodi — ECB, CBC, CBC-CTS, CTR, XCTR, XTS, GCM und CCM — hinzugefügt.
- Im System der mandatorischen Zugriffskontrolle AppArmor wurde die Möglichkeit zur Verwendung von komprimierten Regelsets implementiert und ein Prüfmodus hinzugefügt.
- Ein sysctl-Parameter af_alg_restrict wurde hinzugefügt, der den Zugriff auf die kryptografische API AF_ALG aus dem Benutzermodus steuert. AF_ALG ermöglicht den Einsatz von Hardware-Beschleunigern für kryptografische Berechnungen in der Crypto API des Kernels, wird jedoch in recht spezifischen Situationen verwendet und bietet nicht immer einen Leistungszuwachs im Vergleich zur Implementierung der Beschleunigung im Benutzermodus. Dabei wurden in den mit AF_ALG verbundenen Handlern eine Reihe von Sicherheitsanfälligkeiten wie Copy Fail festgestellt, die es ermöglichen, Daten im Seiten-Cache zu verändern. Um die Angriffsfläche zu verringern, ist der Zugriff auf AF_ALG standardmäßig teilweise eingeschränkt. Es wird geprüft, ob AF_ALG in einer der kommenden Versionen entfernt werden kann.
- Die Überprüfung von BPF-Programmen, die mit einer digitalen Signatur signiert sind, wurde verschärft. Eine Integritätsprüfung der Metadaten des BPF-Programms wurde vor dessen Laden hinzugefügt.
- Im Systemaufruf landlock_restrict_self(), der zur Aktivierung von Landlock-Sperren verwendet wird, wurde ein Flag hinzugefügt.
LANDLOCK_RESTRICT_SELF_NO_NEW_PRIVS, das dem aktuellen Prozess das Erlangen neuer Privilegien untersagt. Der Mechanismus Landlock ermöglicht es privilegierten Programmen, nicht benötigte Privilegien abzulegen und dadurch ihren weiteren Zugriff auf das System freiwillig einzuschränken, um die Sicherheit zu erhöhen, beispielsweise zum Schutz im Falle von Ausnutzungsversuchen von Sicherheitsanfälligkeiten in einem Programm. - Im VirtIO-GPU-Treiber, der den Betrieb der virtuellen GPU ermöglicht, wurde Unterstützung für den Schlafmodus S4 (Hibernate) hinzugefügt.
- Ein neuer Isolationsmechanismus wurde vorgeschlagen, der den Zugriff auf den Inhalt von Dateisystemen blockiert, mit Ausnahme der Ressourcen, die ausdrücklich über Dateideskriptoren in die Sandbox-Umgebung übergeben wurden. Der Mechanismus wird durch ein Pseudo-Dateisystem failfs und den Systemaufruf fchroot realisiert.
- Netzwerksubsystem
- Im ksmbd, dem in den Kernel integrierten Server für das SMB-Protokoll, wurde die Unterstützung für Apple Time Machine-Erweiterungen hinzugefügt, die von macOS über diese Anwendung erstellte Backups speichern. Ein Mechanismus zur Isolierung von SMB-Befehlsfolgen in Verbindung mit MessageId wurde implementiert, um Angriffe durch das Senden ungültiger oder duplizierter Anfragen zu blockieren. Die Unterstützung für das Senden von Wiederholungsanfragen über das SMB3-Protokoll wurde ohne Unterbrechung des Sitzungsstatus hinzugefügt, wenn die vorherige Anfrage verloren ging. In SMB3 wurde die Möglichkeit der Verschlüsselung auf Ebene einzelner gemeinsamer Speicherorte (shares) implementiert. Zudem wurde die Unterstützung für die Verschlüsselung des SMB Direct Kommunikationskanals eingeführt, der die RDMA-Technologie (Remote Direct Memory Access) nutzt.
- Die Verwendung von TCP-Paketen mit der Erweiterung BIG TCP wurde implementiert, die die maximale Größe eines TCP-Pakets auf 4 GB in UDP-Tunneln basierend auf den Protokollen VXLAN und GENEVE erhöht.
- Die Unterstützung für die Weiterleitung des MCTP-Protokolls (Management Component Transport Protocol) über USB (MCTP-over-USB 1.1) wurde hinzugefügt.
- Es wurde die Möglichkeit zur Deaktivierung (Unregistrierung) von Netzwerkkarten (netkit, veth, vxcan, bareudp, geneve, ipvlan, macvlan usw.) für ausgewählte Namensräume bereitgestellt.
- Für Bluetooth 6.2+ wurde die Unterstützung des SCI-Mechanismus (Shorter Connection Interval) implementiert, um die Latenz bei der Datenübertragung im Bluetooth LE (Low Energy) Modus zu verringern.
- Im API nl80211 wurde ein einheitlicher Mechanismus (NL80211_CMD_PROBE_PEER) zur Überprüfung von verbundenen Peers hinzugefügt, der sowohl in drahtlosen Zugangspunkten als auch auf der Clientseite funktioniert.
- Ausrüstung
- Im Kernel 7.5 wurden alte ARM-Plattformen, die kaum genutzt werden und die Wartung aktueller Subsysteme behindern, als veraltet erklärt und sollen entfernt werden. Ungefähr 55.000 Codezeilen, die mit der Unterstützung von Plattformen wie sa1100, omap24xx, i.MX31, samv7, lpc18xx, riscpc, axxia, footbridge, alten pxa-Platinen, orion, dove und mv78xx0, Chips ohne Speicherverwaltungseinheit (MMU) und Mikrocontrollern stm32f4/f7/h7 verbunden sind, sollen gelöscht werden.
- Die anfängliche Unterstützung für die Apple M3 Pro, Max und Ultra Chips wurde hinzugefügt. Die Verwaltung des Energieverbrauchsstatus für das Apple SoC wurde implementiert.
- Im DRM-Subsystem (Direct Rendering Manager) wurde die Eigenschaft „color format“ hinzugefügt, die es dem Benutzer ermöglicht, das Farbformat für das Ausgabegerät umzuschalten. Diese Eigenschaft wurde für die GPU-Treiber i915 (HDMI, DP), amdgpu (HDMI, DP) und rockchip (HDMI) implementiert. Zum Testen kann ein Befehl wie „modetest -s 115:1920×1080-60@NV12 -w 115:‘color format’:4“ verwendet werden, wobei 115 die Identifikationsnummer des Steckverbinders und ‘4’ die Nummer des YUV420-Formats ist.
- Im amdgpu-Treiber wurde die Unterstützung für DRM-Modifikatoren für AMD GPUs der Serien GFX6-8 (Southern Islands, Sea Islands und Volcanic Islands) hinzugefügt. Erste Unterstützung für DCN 6.0.0 (Display Core Next) wurde implementiert. Der ältere Code wurde bereinigt.
Die Unterstützung für CACP (Content Adaptive Contrast and Power) wurde aktiviert, wodurch der Energieverbrauch von OLED-Panels gesenkt werden kann. Für Display Engines auf der DCN4-Architektur wurde die Unterstützung für den IPS-Mechanismus (Idle Power State) eingeführt, um den Energieverbrauch im Leerlauf zu reduzieren. Unterstützung für AMD Barco-Grafikkarten wurde hinzugefügt. - Im i915-Treiber wurde der Code zur Erkennung der Fähigkeiten und zur Wiederherstellung des Status von DisplayPort-Anschlüssen überarbeitet. Für die GPU Novalake (NVL) wurde die Unterstützung für CMTG (Common Mode Timing Generator) und DC3DO (Display C3 with Clock Off) hinzugefügt.
- Die Arbeiten am drm-Treiber (Direct Rendering Manager) Xe für GPUs auf Basis der Intel Xe-Architektur, die in Intel Arc-Grafikkarten und integrierter Grafik ab den Tiger Lake-Prozessoren verwendet wird, wurden fortgesetzt. Neue Identifikatoren für unterstützte Geräte wurden hinzugefügt. Im configfs wurde das Attribut ‘enable_multi_queue’ implementiert, um die gleichzeitige Nutzung mehrerer Befehlswarteschlangen zu deaktivieren. Die Unterstützung für den Sleep-Modus wurde verbessert.
- Die Integration der Komponenten des Nova-Treibers für NVIDIA-GPUs mit GSP-Firmware, die seit der NVIDIA GeForce RTX 2000-Serie auf einer Turing-Mikroarchitektur verwendet werden, wurde fortgesetzt. Der Treiber ist in Rust geschrieben. In der neuen Version wurde der Wechsel zu neuen TLV-Firmware-Images anstelle der alten Varianten, die im Nouveau-Treiber verwendet wurden, vollzogen. Unterstützung wurde hinzugefügt.
Für den GSP (GPU System Processor) wurde die Möglichkeit zur Ausführung der Firmware mit aktivem vGPU hinzugefügt. Eine API zur Abfrage der Größe des Video-RAMs wurde hinzugefügt. - Im Tyr-Treiber, der in Rust geschrieben ist und die Arbeit mit ARM Mali GPUs ermöglicht, wurde die Möglichkeit zur Verwendung von Mali CSF-Firmware-Images, zur Aktivierung des virtuellen GPU-Speichers und zum Starten des MCU hinzugefügt.
- Im msm-Treiber wurde die Unterstützung für die GPUs Adreno Shikra (A704) und Eliza (722) hinzugefügt.
- Unterstützung für Audiogeräte und ASoC hinzugefügt: Pioneer DJ DJM-S11,
AW88399 (Lenovo Legion Pro), AW88399 (Lenovo Legion), Lisuan, ALC235, RME HDSPe AIO, RT766/RT767 SDCA, Maili, Hawi, CS35L62 (SoundWire), RT766/RT767 VA1. - Die Unterstützung für den Steam Controller (Modell 2026); Mäuse von Logitech G502 X Plus und G502 X Lightspeed; Tastaturen von Endorfy Thock TKL, Zenbook A16; Headsets Nova 5X, Nova 7 und Arctis 7; das Rennlenkrad Turtle Beach VelocityOne Race; Controller MSI Claw wurde verbessert.
- Die Unterstützung für Audiowiedergabe auf ASUS VivoBook M515DA/X515DAP-Geräten wurde verbessert.
LG gram 16 (16Z90TR), Minisforum AI X1 Pro, HP Pavilion 15-eh2xxx, HP Laptop 15-dy0xxx und HP Spectre x360 16-aa0xxx, HP EliteBook 6 G1, HP OmniBook X Flip 14, Lenovo Yoga Pro 7, Huawei Matebook,
ThinkPad X1 Carbon 6. Generation, HP ProBook 440 G5, Acer Aspire A515-57. - Unterstützung für Smartphones, Tablets und Laptops hinzugefügt: Motorola Edge 30, Motorola Moto G2, Xiaomi 12 Lite 5G, Microsoft Surface Pro, Honor MagicBook art 1412in, Sony Xperia M2, Vicharak Axon, Axon Mini und Vaaman2, Asus Zenbook A16, Lenovo Thinkedge se70.
- Unterstützung für ARM-Plattformen und SoCs Samsung Exynos 1580 (eingesetzt in Flagship-Smartphones ab 2024), Orange Pi 5 pro, Sophgo SG2000 (Hybrid Arm/RISC-V), BeagleBadge, Qualcomm „Shikra“ und „Altera“ (Cortex-A78C), Agilex72 (Cortex-A720), Alientek ATK-DLRV1126, Variscite SoC DART-MX8M-PLUS, DART-MX8M-MINI, VAR-SOM-MX8QM und Platinen Sonata/Symphony basierend darauf, 9Tripod X3568 v4, Youyeetoo YY3588, milk-v duo, ArmSoM CM5, Freescale Verdin iMX8M Mini, Anbernic rg vita-pro, Embedfire lubancat 4, Vicharak Vaaman, LincStation E1, HINLINK H28K.
Zeitgleich hat die lateinamerikanische Free Software Foundation gebildet
Die Version des vollständig freien Kernels 7.3 — Linux-libre 7.3-gnu, gereinigt von Firmware-Elementen und Treibern, die nicht freie Komponenten oder Codeabschnitte enthalten, deren Nutzung vom Hersteller eingeschränkt ist. In der Version 7.3 wurde eine Säuberung von Blobs neuer Treiber für GPU Mali Tyr, Morse Micro mm81x Wi-Fi, NXP Wi-Fi und Netzwerkkarten auf Realtek-Chips durchgeführt. Der Reinigungs-Code in den Treibern nova-core, amdgpu, adreno, tegra, iris, rtw89 und mt76 Wi-Fi, Qualcomm Q6V5 PAS, qla2xxx scsi und Audiocodecs aw88399 wurde aktualisiert. Die Namen der Blobs in den dts-Dateien (devicetree) für Qualcomm ARM-Chips wurden bereinigt.
Quelle: opennet.ru
