Linux 7.1

Nach zwei Monaten der Entwicklung präsentierte Linus Torvalds vor die Kernel-Version Linux 7.1. Zu den bemerkenswertesten Änderungen gehören: ein neuer ntfsplus-Treiber, die erste Phase der Einstellung der Unterstützung für CPU i486, die Entfernung alter Ethernet-Adapter, die Entfernung der Protokolle ISDN und AX.25, die standardmäßige Aktivierung des Intel FRED-Mechanismus, die Unterstützung von BPF-Handlern in io_uring, die Optimierung des Swap-Subsystems, die Unterstützung von Subplanern in sched_ext, der Zero-Copy-I/O-Betrieb im ublk-Treiber, die ioctl-Operation shutdown in Btrfs, das dynamische Umschalten des Leistungsmodus im amd-pstate-Treiber und die Unterstützung von xattr für Unix-Sockets.

In die neue Version wurden 17275 Korrekturen von 2589 Entwicklern aufgenommen, die Patchgröße beträgt 57 MB (die Änderungen betrafen 13528 Dateien, es wurden 751785 Codezeilen hinzugefügt und 405916 Zeilen entfernt). In der vorherigen Version gab es 15624 Korrekturen von 2477 Entwicklern, die Patchgröße betrug 56 MB. Etwa 41 % aller in 7.1 vorgestellten Änderungen betreffen Gerätetreiber, etwa 12 % der Änderungen beziehen sich auf die Aktualisierung von architekturspezifischem Code, 14 % betreffen das Netzwerk-Stack, 5 % die Dateisysteme und 3 % interne Kernel-Subsysteme.

Die wichtigsten Neuerungen im Kernel 7.1 (kernelnewbies.org, lwn.net, opennet):

Festplattensubsystem, Ein-/Ausgabe und Dateisysteme
Speicher und Systemdienste
  • Angenommen Die erste Reihe von Änderungen zur Einstellung der Unterstützung für i486-Prozessoren. Die Optionen für den Bau des Kernels mit Unterstützung der Prozessoren 486DX, 486SX und AMD ELAN (CONFIG_M486, CONFIG_M486SX und CONFIG_MELAN) wurden aus Kconfig entfernt, und die Compiler-Optionen für i486-Systeme (-march=i486) wurden aus dem Makefile ausgeschlossen. Der Code zur tatsächlichen Unterstützung des Betriebs auf i486-Prozessoren bleibt vorerst im Kernel, aber der Bau für solche Systeme erfordert nun die Anwendung von Patches auf die Build-Dateien. Die Gründe für die Entfernung der Unterstützung für i486-Prozessoren liegen im Wunsch, den Kernel von kompliziertem Code zu befreien, der einige Hardware-Operationen emuliert, wie CX8 (Vergleichen und Austauschen von 8 Byte) und TSC (Zählerzyklen für die CPU, der im Task-Scheduler verwendet wird).
  • Im Treiber amd-pstate, der zur Verwaltung des Energieverbrauchs auf Systemen mit AMD-Prozessoren verwendet wird, wurde implementiert dynamisches Umschalten der Leistungseinstellungen und Änderung des Verhaltens der Energieverwaltung, abhängig davon, ob das System an das Stromnetz oder den Akku angeschlossen ist. Bei stationärer Verbindung wird nun der Leistungsmodus aktiviert, während bei Akkubetrieb der Modus balance_performance aktiv ist.
  • Standardmäßig wurde der Mechanismus Intel FRED (Flexible Return and Event Delivery) aktiviert, der die Effizienz und Zuverlässigkeit der Informationsübermittlung über niedrigstufige Ereignisse erhöht. Die Leistungssteigerung und die Verringerung der Verzögerungen werden durch die Rückgabe von Ereignissen mit der Prozessoranweisung IRET anstelle der Übertragung von Ereignissen über die IDT (Interrupt Descriptor Table) erreicht. Die Zuverlässigkeit wird durch die separate Verarbeitung des Eingangs von Ereignissen im Kontext des Kernels und im Benutzerkontext, durch Schutz vor geschachtelter NMI-Ausführung und durch die Speicherung aller mit Ausnahmen verbundenen CPU-Register im erweiterten Stack-Frame erhöht.
  • Im perf-Subsystem hinzugefügt unterstützen Speichermonitoring-Einheiten (PMU - Performance Monitoring Unit), die in SoC NVIDIA Tegra410 verwendet werden.
  • Die Ausführung von Futex-Operationen auf ARM-Systemen wurde beschleunigt, indem die Arm 9.6 LSUI-Anweisungen verwendet wurden, die dem Kernel erlauben, auf Speicher im Benutzerbereich zuzugreifen, ohne zuvor den Schutzmodus zu deaktivieren. PAN (arm.com) (Privileged Access Never).
  • Auf Systemen mit ARM-Prozessoren wurde die Unterstützung für die Erweiterung des Befehlssatzarchitektur verbessert. MPAM (Speicherressourcenpartitionierung und Überwachung) und die Möglichkeit ihrer Nutzung im Benutzerspace zur Verwaltung von Ressourcen über den Mechanismus resctrl. MPAM ermöglicht die Kennzeichnung jedes Speichers Zugriffs mit einer Abschnitts-ID (PARTID, Partition ID) und einer Überwachungsgruppen-ID (PMG, Monitoring Group ID). In Verbindung mit der PARTID können Ressourcen wie der Speicherbandbreite oder die Cachegröße begrenzt werden, um zu verhindern, dass eine Gruppe von Aufgaben alle Ressourcen beansprucht. Im Kontext des Monitorings kann die Kombination von PMG und PARTID zur Verfolgung des Speicherressourcenverbrauchs bei bestimmten Arten von Lasten verwendet werden.
  • Hinzugefügt Unterstützung des Echtzeitmodus (PREEMPT_RT) auf 32-Bit ARM-Prozessoren. Frühere Unterstützung für PREEMPT_RT wurde für die Architekturen x86 und x86-64, ARM64, RISC-V und LoongArch bereitgestellt.
  • Im Systemaufruf clone3() Neue Flags hinzugefügt: CLONE_NNP — Verbot von neuen Berechtigungen im erstellten Prozess; CLONE_AUTOREAP — automatische Beendigung des Prozesses anstelle seiner Umwandlung in einen Zombie-Prozess bis die Funktion wait() des übergeordneten Prozesses ausgeführt wird; CLONE_PIDFD_AUTOKILL — Beendigung des Kindprozesses, wenn der zugehörige pidfd-Descriptor geschlossen wird (zum Beispiel beim Schließen des übergeordneten Prozesses).
  • Für jedes Kernelmodul wurde im Verzeichnis /sys/module eine Datei import_ns hinzugefügt, die eine Liste importierter Symbolnamespace enthält (symbol namespace).
  • Im asynchronen Eingabe-/Ausgabesystem io_uring wurde die Unterstützung der BPF-Subsystem zur Erstellung von Handlern hinzugefügt. Beispielsweise kann die Haupt-Demontage-Schleife durch ein BPF-Programm ersetzt werden.
  • Im BPF-Subsystem wurde modernisiert die Analyse der Stacknutzung, was die Überprüfung durch den Verifier vieler BPF-Programme erheblich beschleunigt hat.
  • Zur Leistungsoptimierung wurde umgeschrieben das hrtimer-Subsystem (High Resolution Timer). Der Task-Scheduler kann jetzt hochauflösende Timer ohne Leistungseinbußen anstelle von weniger genauen Timern verwenden.
  • Fortgesetzt Übertragung von Änderungen aus dem Rust-for-Linux-Zweig, die die Verwendung von Rust als zweite Sprache für die Entwicklung von Treibern und Kernmodulen betreffen (die Unterstützung für Rust ist standardmäßig nicht aktiviert und führt nicht dazu, dass Rust zu den erforderlichen Build-Abhängigkeiten für den Kernel zählt). Bis zur Version 1.85 (verfügbar in Debian 13) wurden die Anforderungen an die Rust-Version, die zum Bauen der Kernel-Komponenten erforderlich ist, erhöht. Eine experimentelle Kconfig-Option CONFIG_RUST_INLINE_HELPERS wurde hinzugefügt, um C-Wrapper in Rust-Code während der Kompilierung einzufügen (die Optimierung beschleunigte die Arbeit des Null-Blocktreibers um 2%). Ein Makro 'const_assert!' wurde hinzugefügt. Die Funktionalitäten von sizes, clk, ptr, sync, error wurden erweitert.
  • Im Mechanismus SCHED_EXT, der es ermöglicht, BPF zur Erstellung von CPU-Schedulern zu verwenden, hinzugefügt die anfängliche Möglichkeit zur Erstellung von verschachtelten Schedulern (sub-scheduler), durch die für jede cgroup ein eigener Task-Scheduler aktiviert werden kann.
  • Die Optimierung des Swap-Subsystems wurde fortgesetzt. Die alte Struktur swap_map wurde entfernt und durch den Mechanismus 'Swap Table' ersetzt. Diese Änderung hat die Leistung erhöht und den Speicherverbrauch im Swap-Subsystem reduziert.
  • Im Subsystem DAMON (Data Access MONitor), das die Datenzugriffe eines Prozesses im Arbeitsspeicher überwacht (zum Beispiel kann erkannt werden, auf welche Speicherbereiche der Prozess zugegriffen hat und welche Speicherbereiche ungenutzt geblieben sind), hinzugefügt unterstützung verschiedener automatischer Tuning von Quoten.
  • Im Trace-Subsystem wurde wurde das Konzept externer Ringpuffer eingeführt, das es ermöglicht, Trace-Daten aus virtuellen Maschinen zu erhalten. Diese Funktion wurde in den Hypervisoren KVM und nVHE für die Übertragung von Trace-Daten vom Gastbetriebssystem auf die Host-Seite aktiviert.
  • Im Subsystem RV (kernel.org) (Runtime Verification), die zur Überprüfung der Korrektheit von hochzuverlässigen Systemen dient, wurden Monitoring-Komponenten 'stall' zur Überwachung von Tasks hinzugefügt, deren Ausführung vorübergehend ausgesetzt oder blockiert ist, sowie 'deadline' zur Analyse des Verhaltens des Task-Schedulers.
Virtualisierung und Sicherheit
  • Standardmäßig ist das Flag PROC_MEM_FORCE_PTRACE gesetzt, das den Zugriff auf den Speicher eines Prozesses über die Datei ermöglicht /proc/PID/mem nur für Prozesse, die den Systemaufruf ptrace() zur Fehlersuche verwenden.
  • Hinzugefügt ein neues Set von Hooks für LSM-Module (Linux Security Module), das die Implementierung von Richtlinien für stapelbasierte Dateisysteme wie overlayfs vereinfacht. In LSM wurden ebenfalls wurde hinzugefügt Hook zur Steuerung des Zugriffs auf Unix-Sockets, der wurde im LSM-Modul Landlock zur Zuweisung von Zugriffsrichtlinien für Unix-Sockets verwendet wird.
  • In die integrierte Kryptobibliothek lib/crypto, die einfachere und schnellere Funktionen als die traditionelle Crypto-API bereitstellt, hinzugefügt unterstützt die Algorithmen AES-CMAC, AES-XCBC-MAC, AES-CBC-MAC, GHASH und SM3. Hinzugefügt wurde Dokumentation zu lib/crypto.
  • Der Modus pKVM (Protected KVM) wurde zur strikten Isolierung anonymer Speicher unter Verwendung von Virtualisierungserweiterungen für die Architektur AArch64 hinzugefügt. In diesem Modus werden die Speicherseiten der Gastumgebung aus der virtuellen Adresstabelle des Host-Systems ausgeschlossen.
  • Im KVM-Hypervisor wurde die Unterstützung für die fünfte Version des virtuellen Interrupt-Controllers ARM (VGICv5 - ARM Virtual Generic Interrupt Controller v5) hinzugefügt.
Netzwerksubsystem
  • Für Unix-Sockets, die von der Funktion socket() erstellt werden, wurde gibt es Unterstützung für erweiterte Dateiattribute (xattr) user.*. Zu den Anwendungsbereichen gehört das Setzen von Markierungen über erweiterte Attribute an Unix-Sockets, die für IPC Varlink verwendet werden, um sie zur Inspektion und Fehlersuche in der IPC-Arbeit mittels BPF-Programmen hervorzuheben. In systemd-journald sollen die erweiterten Attribute verwendet werden, um das Log-Format in Bezug auf den Socket /dev/log zu bestimmen.
  • Entfernt wurde die Unterstützung des UDP-Lite-Protokolls (RFC 3828), das die Zustellung von Paketen mit falscher Prüfziffer erlaubt, in der Annahme, dass zum Beispiel teilweise beschädigte Audio- und Videodaten auf Codec-Ebene wiederhergestellt werden können. Das Protokoll wurde entfernt, da es keiner verwendet hat.
  • Entfernt wurde die Möglichkeit, den IPv6-Stack in Form eines Kernel-Moduls zu erstellen, das in der Praxis nicht verwendet wurde (IPv6 wird entweder ins Kernel integriert oder vollständig deaktiviert), was die Wartung erschwerte, da bei der Erstellung von IPv6 als Kernel-Modul (CONFIG_IPV6=m) viele Subsysteme gezwungen waren, unnötige Handler für den Fall des Entladens des IPv6-Moduls hinzuzufügen.
Ausrüstung
  • Im AMDGPU-Treiber wurde ein neuer Display-Engine (DC) für AMD APU der Serie HD 7000 (Sea Islands, GCN 1.1) hinzugefügt. Im Nouveau-Treiber wurde
  • die anfängliche Unterstützung für die GPU NVIDIA GA100 auf der Basis der Mikroarchitektur Ampere hinzugefügt. hinzugefügt Die Arbeit am drm-Treiber (Direct Rendering Manager) Xe für GPUs auf Basis der Intel Xe-Architektur, die in Grafikkarten der Intel Arc-Familie und integrierter Grafik verwendet wird, wurde fortgesetzt, beginnend mit den Tiger Lake-Prozessoren. Unterstützung für die Grafik-Subsysteme der Intel Nova Lake-P-Prozessoren wurde hinzugefügt. Es wurden lösbare Pufferobjekte (Purgeable Buffer Objects) implementiert.
  • Die Arbeiten am drm-Treiber (Direct Rendering Manager) Xe für GPUs auf der Intel Xe-Architektur, die in Grafikkarten der Intel Arc-Familie und in integrierter Grafik ab den Tiger-Lake-Prozessoren verwendet wird, wurden fortgesetzt. Unterstützung für die Grafikschnittstelle der Intel Nova Lake-P Prozessoren wurde hinzugefügt. Es wurden bereinigbare Pufferobjekte (Purgeable Buffer Objects) umgesetzt.
  • Die Integration der Nova-Treibers für NVIDIA-GPUs mit GSP-Firmware, die seit der NVIDIA GeForce RTX 2000-Serie auf der Turing-Mikroarchitektur verwendet werden, wurde fortgesetzt. Der Treiber ist in Rust geschrieben. Erste Unterstützung für GPUs auf Basis der Turing-Mikroarchitektur wurde hinzugefügt.
  • Hinzugefügt DRM-Treiber corebootdrm zur Ausgabe von Grafiken über Framebuffer von CoreBoot-basierten Firmwares.
  • Hinzugefügt Unterstützung für AMD RPL DMIC, Cirrus Logic CS42L43, CS47L47, NVIDIA CPCAP und WM8962 Audio ASoC. Die Unterstützung von USB-Audiogeräten wurde verbessert: Huawei Headset, Focusrite Novation, MV-Silicon, Studio 1824, Arturia AF16Rig, Hotone Audio, Feaulle Rainbow, PreSonus AudioBox, Moondrop Ju Jiu, Scarlett 18i20.
  • Hinzugefügt Der yogafan-Treiber zur Überwachung der Lüftergeschwindigkeit auf Lenovo Yoga, Legion und IdeaPad Laptops.
  • Hinzugefügt Unterstützung für ARM-Plattformen, SoCs und Geräte: Qualcomm Glymur, Qualcomm Mahua, Qualcomm Eliza, Qualcomm IPQ5210, Qualcomm apq8084 und ipq806x, Axis ARTPEC-9, ARM Zena, ARM corstone-1000-a320, Microchip LAN9691, Microchip PIC64GX, Rockchip RV1103B, Renesas RZ/G3L, NXP S32N79.
  • Entfernt wurde Unterstützung für in SoCs Baikal-T1 verwendete AHCI SATA- und PCIe-Controller sowie Treiber für Timer, Speicher, physmap, Bus, hwmon, dwc und bt1-rom. Der Grund für die Entfernung ist fehlende Wartung und die unvollständige Integration in den Kern der Baikal-Plattformkomponenten, deren Produktion in Russland im November 2025 eingestellt wurde.
  • Entfernt 12 Treiber für Ethernet-Geräte mit ISA- und PCMCIA-Schnittstellen, die vor 2002 hergestellt wurden und für die keine Nutzer mehr in Betriebssystemen gefunden werden konnten. Ebenso wurde das Kernsystem ausgeschlossen. ISDN, Implementierungen von Protokollen AX.25, CAIF und Bluetooth CMTP (Common ISDN Application Programming Interface Message Transport Protocol), Treiber für yellowfin (Yellowfin Gigabit-NIC), hamachi (Hamachi GNIC-II), hamradio (Amateur Radio), inport und logibm (busmouse). Der Grund für die Entfernung war das Fehlen aktiver Wartungsarbeiten angesichts der steigenden Zahl an Fehlern, die durch syzbot und KI-Tools entdeckt wurden, die niemand zu beheben bereit ist, sodass die gesamte Last der Behebung schwerwiegender Probleme auf den Wartenden der Hauptnetzwerksysteme des Kernels lastet. Insgesamt wurden mehr als 140.000 Zeilen Code entfernt.

Quelle: linux.org.ru

Zuverlässiges Hosting für Websites mit DDoS-Schutz kaufen, VPS VDS Server 🔥 Zuverlässiges Hosting für Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster