Linux 7.1

Nach zwei Monaten Entwicklungszeit hat Linus Torvalds eingeführt Kernel-Release Linux 7.1Zu den wichtigsten Änderungen zählen: der neue ntfsplus-Treiber, die erste Phase der Einstellung der Unterstützung für die i486-CPU, die Entfernung alter Ethernet-Adapter, die Entfernung der ISDN- und AX.25-Protokolle, die standardmäßige Aktivierung des Intel FRED-Mechanismus, die Unterstützung für BPF-Handler in io_uring, die Optimierung des Swap-Subsystems, die Unterstützung für Subscheduler in sched_ext, Zero-Copy-I/O im ublk-Treiber, die Shutdown-ioctl-Operation in Btrfs, die dynamische Umschaltung des Leistungsmodus im amd-pstate-Treiber und die xattr-Unterstützung für Unix-Sockets.

Die neue Version enthält 17275 Fixes von 2589 Entwicklern, die Patchgröße beträgt 57 MB (die Änderungen betrafen 13528 Dateien, 751785 Codezeilen wurden hinzugefügt, 405916 Zeilen wurden gelöscht). Die letzte Version enthielt 15624 Fixes von 2477 Entwicklern, die Patchgröße betrug 56 MB. Etwa 41 % aller in 7.1 eingeführten Änderungen beziehen sich auf Gerätetreiber, etwa 12 % der Änderungen beziehen sich auf die Aktualisierung von Code, der für Hardwarearchitekturen spezifisch ist, 14 % beziehen sich auf den Netzwerkstapel, 5 % beziehen sich auf Dateisysteme und 3 % beziehen sich auf beziehen sich auf interne Kernel-Subsysteme.

Wichtigste neue Funktionen in Kernel 7.1 (Kernelnewbies.org, lwn.net, opennet):

Festplattensubsystem, E/A und Dateisysteme
  • In die Zusammensetzung aufgenommen neue Implementierung Das NTFS-Dateisystem – ntfsplus – basiert auf dem Code des klassischen NTFS-Treibers, der aus dem Kernel entfernt wurde. Der alte Treiber wurde überarbeitet, um Schreibfunktionen erweitert und an moderne Funktionen wie die Verwendung von … angepasst. Folios mit Seiten der Erinnerung (Folios) anstelle der buffer_head-Struktur. Der neue Treiber implementiert verzögerte Blockzuweisung, was eine hohe Schreibleistung und reduzierte Fragmentierung ermöglicht. Die Bibliothek wird für gepufferte Lese-/Schreibvorgänge, direkte E/A, Extent-Mapping und seitenbasierte Lese-/Schreibvorgänge verwendet. iomapIn iozone-Tests war der ntfsplus-Treiber beim Schreiben im Single-Thread-Modus 3–5 % schneller als ntfs3 und bei Verwendung von vier Threads 35–110 % schneller. Die Lesegeschwindigkeit von ntfsplus und ntfs3 ist annähernd gleich. Der ntfs3-Treiber ist weiterhin im Kernel enthalten. trat ein Korrekturen und kleinere Verbesserungen.
  • Unterstützung für die Generierung und Überprüfung von Integritätsprüfdaten hinzugefügt. T10 (deepwiki.com) auf Dateisystemebene anstatt auf Blockgeräteebene, was eine verbesserte Leistung bei Leseoperationen ermöglicht.
  • Im Blockgerätetreiber ublk, wodurch spezifische Logik auf die Benutzerprozessseite verlagert werden kann. hinzugefügt Unterstützung für E/A über gemeinsam genutzten Speicher ohne Datenkopie zwischen Puffern (Zero-Copy-Modus).
  • Für selbstverschlüsselnde Blockgeräte SED-OPAL hinzugefügt ioctl für Modussteuerung Einzelnutzer und der Befehl STACK_RESET wurde implementiert.
  • Btrfs hat die stabile Unterstützung für die Shutdown-ioctl-Operation angekündigt, die es dem Dateisystem ermöglicht, in einen Zustand zu wechseln, in dem versucht wird, bereits laufende Operationen abzuschließen, aber alle neuen Operationen blockiert werden.
  • exfat implementiert die Möglichkeit, leere Bereiche durch Aufruf von fallocate() zu reservieren.
  • Das CIFS-Dateisystem unterstützt nun das Erstellen temporärer Dateien mit dem O_TMPFILE-Flag.
  • Im Systemaufruf fsmount() Die Option FSMOUNT_NAMESPACE wurde hinzugefügt, wodurch ein neuer Mountpunkt-Namensraum für das eingebundene Dateisystem erstellt wird. Den Systemaufrufen clone3() und unshare() wurden Flags hinzugefügt, um einen neuen Mountpunkt-Namensraum zurückzugeben, der lediglich einen eingebundenen, leeren, auf nullfs basierenden Dateisystem-Stub und den fs-dax-Treiber mit einer Dateisystemschnittstelle zu DAX-Geräten (Direct Access) enthält.
  • Zum NFS-Server hinzugefügt Der Schutz vor Brute-Force-Angriffen auf Dateideskriptoren wird durch die Zertifizierung der Deskriptoren mit einer kryptografischen Signatur implementiert. Dieser Schutz wird über die Mount-Option `sign_fh` aktiviert.
  • Добавлен Der fs-dax-Zeichentreiber bietet eine Schnittstelle zur Interaktion mit Geräten. DAX (kernel.org) (Direkter Zugriff), der das Umgehen des Seitencaches ermöglicht. Diese Schnittstelle ist für die Integration in den Dateisystemkernel erforderlich. famfs, befindet sich im RAM.
  • Im Ceph-Dateisystem implementiert Sammlung von Input-/Output-Metriken, die mit Unterabschnitten verknüpft sind.
Speicher- und Systemdienste
  • Akzeptiert Die erste Änderungsreihe zur Entfernung der Unterstützung für i486-Prozessoren. Die Optionen zum Kompilieren des Kernels mit Unterstützung für 486DX-, 486SX- und AMD ELAN-Prozessoren (CONFIG_M486, CONFIG_M486SX und CONFIG_MELAN) wurden aus Kconfig entfernt, und die Kompilierungsoptionen für i486-Systeme (-march=i486) wurden aus dem Makefile entfernt. Der eigentliche Code zur Unterstützung von i486-Prozessoren ist weiterhin im Kernel vorhanden, jedoch sind für die Kompilierung für solche Systeme nun Patches an den Makefiles erforderlich. Die Gründe für die Entfernung der Unterstützung für i486-Prozessoren liegen im Wunsch, den Kernel von komplexem Code zu befreien, der bestimmte Hardwareoperationen wie CX8 (Vergleich und Austausch von 8 Bytes) und TSC (den im Task-Scheduler verwendeten CPU-Zykluszähler) emuliert.
  • Im amd-pstate-Treiber, der für das Energiemanagement auf Systemen mit AMD-Prozessoren verwendet wird, umgesetzt Die Leistungseinstellungen und das Energiemanagement werden dynamisch angepasst, je nachdem, ob das Gerät an eine Stromquelle angeschlossen ist oder mit Akku betrieben wird. Im Netzbetrieb wird der Leistungsmodus aktiviert, im Akkubetrieb der Modus „Balance_Performance“.
  • Der Mechanismus ist standardmäßig aktiviert. Intel FRED (Flexible Return and Event Delivery) verbessert die Effizienz und Zuverlässigkeit der Ereignisübermittlung auf niedriger Ebene. Leistungssteigerungen und Latenzreduzierungen werden durch die Rückgabe von Ereignissen mittels des IRET-Prozessorbefehls anstelle der Übergabe über die Interrupt-Deskriptortabelle (IDT) erreicht. Die erhöhte Zuverlässigkeit wird durch die Trennung der Ereignisempfangsverarbeitung im Kernel- und Benutzerkontext, den Schutz vor verschachtelter NMI-Ausführung und die Speicherung aller ausnahmebezogenen CPU-Register in einem erweiterten Stack-Frame erzielt.
  • Im Leistungssubsystem hinzugefügt Unterstützung für Speicherleistungsüberwachungseinheiten (PMUs), die im NVIDIA Tegra410 SoC verwendet werden.
  • Die Futex-Operationen auf ARM-Systemen wurden durch die Nutzung der Arm 9.6 LSUI-Befehle beschleunigt, die es dem Kernel ermöglichen, auf den Benutzerspeicher zuzugreifen, ohne vorher den sicheren Modus zu deaktivieren. PAN (arm.com) (Privilegierter Zugriff niemals).
  • Die Unterstützung für die Instruction Set Architecture Extension wurde auf ARM-basierten Systemen verbessert. MPAM (Speichersystemressourcenpartitionierung und -überwachung) und fügte die Möglichkeit hinzu, es im Benutzermodus zur Ressourcenverwaltung über den Mechanismus zu verwenden. RestrMPAM versieht jeden Speicherzugriff mit einer Partitions-ID (PARTID) und einer Überwachungsgruppen-ID (PMG). Mithilfe der PARTID lässt sich der Ressourcenverbrauch, beispielsweise die Speicherbandbreite oder die Cache-Größe, begrenzen, um zu verhindern, dass eine einzelne Gruppe von Aufgaben alle Ressourcen belegt. Im Rahmen der Überwachung kann die Kombination aus PMG und PARTID verwendet werden, um den Speicherverbrauch unter bestimmten Arbeitslasten zu verfolgen.
  • Hinzugefügt von Die Möglichkeit, den Echtzeitmodus (PREEMPT_RT) auf 32-Bit-ARM-Prozessoren zu nutzen, wurde hinzugefügt. Bisher wurde PREEMPT_RT nur für die Architekturen x86 und x86-64, ARM64, RISC-V und LoongArch unterstützt.
  • Im Systemaufruf clone3() Neue Flags hinzugefügt: CLONE_NNP — vergessen Erlangung neuer Berechtigungen im erstellten Prozess; CLONE_AUTOREAP — automatische Beendigung des Prozesses, anstatt ihn in einen Zombie-Prozess umzuwandeln, bis der Elternprozess die wait()-Funktion ausführt; CLONE_PIDFD_AUTOKILL — Beendigung des Kindprozesses, wenn das zugehörige pidfd-Handle geschlossen wird (z. B. wenn der Elternprozess beendet wird).
  • Für jedes Kernelmodul wurde dem Verzeichnis /sys/module eine Datei namens import_ns hinzugefügt, die eine Liste der importierten Symbol-Namensräume enthält (Symbol-Namensraum).
  • Das asynchrone E/A-System io_uring unterstützt nun die Verwendung des BPF-Subsystems zur Erstellung von Handlern. Beispielsweise kann die Haupt-Dispatch-Schleife durch ein BPF-Programm ersetzt werden.
  • Im BPF-Subsystem modernisiert Die Analyse der Stacknutzung beschleunigte die Verifizierung vieler BPF-Programme durch den Verifizierer erheblich.
  • Um die Leistung zu optimieren umgeschrieben hrtimer-Subsystem (hochauflösender Timer). Der Aufgabenplaner kann nun hochauflösende Timer ohne Leistungseinbußen anstelle weniger genauer Timer verwenden.
  • Fortsetzung Änderungen aus dem Rust-for-Branch portierenLinux, bezogen auf die Verwendung der Programmiersprache Rust als zweite Sprache für die Entwicklung von Treibern und Kernelmodulen (Rust-Unterstützung ist nicht standardmäßig aktiviert und führt nicht dazu, dass Rust in die Liste der obligatorischen Build-Abhängigkeiten für den Kernel aufgenommen wird). Bis Version 1.85 (ausgeliefert in Debian 13) Erhöhte Anforderungen an die Rust-Version für die Erstellung von Kernelkomponenten. Experimentelle Kconfig-Option CONFIG_RUST_INLINE_HELPERS hinzugefügt, um C-Interpolationen während der Kompilierung in Rust-Code einzubetten (diese Optimierung verbesserte die Leistung des Nullblocktreibers um 2 %). Makro 'const_assert!' hinzugefügt. Erweiterte Funktionalitäten der Module sizes, clk, ptr, sync und error.
  • In den Mechanismus SCHED_EXT, wodurch die Verwendung von BPF zur Erstellung von CPU-Schedulern ermöglicht wird hinzugefügt Die anfängliche Möglichkeit, Unterplaner zu erstellen, ermöglicht es jeder Cgroup, ihren eigenen Aufgabenplaner zu haben.
  • Die Optimierung des Swap-Subsystems wurde fortgesetzt. Die alte swap_map-Struktur wurde entfernt und durch die folgende ersetzt:Tauschtabelle„Die Änderung verbesserte die Leistung und reduzierte den Speicherverbrauch im Paging-Subsystem.“
  • Zum Teilsystem Damon (Data Access Monitor), mit dem Sie den Zugriff eines Prozesses auf Daten im RAM verfolgen können (Sie können beispielsweise herausfinden, auf welche Speicherbereiche der Prozess zugegriffen hat und welche Speicherbereiche nicht belegt wurden). hinzugefügt Unterstützung für verschiedene automatische Algorithmen stimmen Quoten.
  • Im Tracing-Subsystem umgesetzt Das Konzept externer Ringpuffer ermöglicht das Abrufen von Trace-Daten aus virtuellen Maschinen. Diese Funktion wird in KVM verwendet. nVHE um Tracing-Daten vom Gastsystem auf die Hostseite zu übertragen.
  • Zum Teilsystem RV (kernel.org) (Laufzeitverifizierung), die dazu dient, den korrekten Betrieb hochzuverlässiger Systeme zu überprüfen, wurden Überwachungskomponenten hinzugefügt.Stall„um Aufgaben zu verfolgen, die vorübergehend pausiert oder blockiert sind, und“Frist» um das Verhalten des Aufgabenplaners zu analysieren.
Virtualisierung und Sicherheit
  • Standardmäßig ist das Flag PROC_MEM_FORCE_PTRACE gesetzt, wodurch Zugriffsrechte auf den Prozessspeicher über eine Datei umgangen werden können. /proc/PID/mem nur für Prozesse, die den Systemaufruf ptrace() zum Debuggen verwenden.
  • Добавлен neue Hooks für LSM-Module (Linux Das Sicherheitsmodul (LSM) vereinfacht die Implementierung von Richtlinien für stapelbasierte Dateisysteme wie overlayfs. hinzugefügt Hook zur Steuerung des Zugriffs auf Unix-Sockets, beteiligt im Landlock LSM-Modul, um Unix-Sockets Zugriffsrichtlinien zuzuweisen.
  • In der integrierten Kryptobibliothek lib/crypto, die einfachere und schnellere Funktionen als die herkömmliche Krypto-API bietet, hinzugefügt Die Unterstützung für die Algorithmen AES-CMAC, AES-XCBC-MAC, AES-CBC-MAC, GHASH und SM3 wurde hinzugefügt. Dokumentation von lib/crypto.
  • Der Modus wurde implementiert pKVM (Geschütztes KVM) für strikte Isolation anonyme Erinnerung Verwendung von Virtualisierungserweiterungen für die AArch64-Architektur. In diesem Modus werden Gastspeicherseiten aus der virtuellen Adresstabelle des Hostsystems ausgeschlossen.
  • Die Unterstützung für den KVM-Hypervisor wurde hinzugefügt. fünfte Version ARM Virtual Generic Interrupt Controller v5 (VGICv5).
Netzwerk-Subsystem
  • Für Unix-Sockets, die mit der Funktion socket() erstellt wurden, umgesetzt Unterstützung für erweiterte Dateiattribute (xattr) durch Benutzer.*. Anwendungen umfassen das Setzen von Markierungen über erweiterte Attribute auf Unix-Sockets, die für Varlink-IPC verwendet werden. Dadurch können diese mithilfe von BPF-Programmen zur Untersuchung und zum Debuggen von IPC-Operationen von der allgemeinen IPC-Umgebung unterschieden werden. In systemd-journald sollen erweiterte Attribute verwendet werden, um das Protokollformat für den /dev/log-Socket zu definieren.
  • Gelöscht Unterstützung für das UDP-Lite-Protokoll (RFC 3828Das Protokoll ermöglichte die Zustellung von Paketen mit fehlerhafter Prüfsumme, in der Erwartung, dass beispielsweise teilweise beschädigte Audio- und Videodaten auf Codec-Ebene wiederhergestellt werden können. Es wurde entfernt, da es niemand mehr verwendet.
  • ENTFERNT Die Möglichkeit, einen IPv6-Stack als Kernelmodul zu erstellen, wurde in der Praxis nicht genutzt (IPv6 ist entweder in den Kernel integriert oder vollständig deaktiviert), erschwerte aber die Wartung, da beim Erstellen von IPv6 als Kernelmodul (CONFIG_IPV6=m) viele Subsysteme gezwungen sind, unnötige Handler hinzuzufügen, falls das IPv6-Modul entladen wird.
Ausrüstung
  • Im AMDGPU-Treiber inbegriffen Neue Display-Engine (DC) für AMD HD 7000 Serie APUs (Sea Islands, GCN 1.1).
  • Im Nouveau-Stil hinzugefügt Erste Unterstützung für NVIDIA GA100 GPUs basierend auf der Ampere-Mikroarchitektur.
  • Die Arbeiten am Xe-DRM-Treiber (Direct Rendering Manager) für GPUs auf Basis der Intel-Xe-Architektur, die in Intel-Arc-Grafikkarten und integrierten Grafiklösungen ab den Tiger-Lake-Prozessoren zum Einsatz kommt, wurden fortgesetzt. Die Unterstützung für das Grafiksubsystem der Intel-Nova-Lake-P-Prozessoren wurde hinzugefügt. Löschbare Pufferobjekte wurden implementiert.
  • Wir haben die Integration von Nova-Treiberkomponenten für NVIDIA-GPUs mit GSP-Firmware, die seit der NVIDIA GeForce RTX 2000-Serie auf Basis der Turing-Mikroarchitektur verwendet wird, fortgesetzt. Der Treiber ist in Rust geschrieben. Die Unterstützung für GPUs auf Basis der Turing-Mikroarchitektur wurde initial hinzugefügt.
  • Добавлен DRM-Treiber corebootdrm für die Grafikausgabe über den Framebuffer der CoreBoot-basierten Firmware.
  • Hinzugefügt von Unterstützung für die folgenden ASoCs: AMD RPL DMIC, Cirrus Logic CS42L43, CS47L47, NVIDIA CPCAP und WM8962. Verbesserte Unterstützung für USB-Audiogeräte: Huawei Headset, Focusrite Novation, MV-Silicon, Studio 1824, Arturia AF16Rig, Hotone Audio, Feaulle Rainbow, PreSonus AudioBox, Moondrop Ju Jiu und Scarlett 18i20.
  • Добавлен Yogafan-Treiber zur Überwachung der Lüfterdrehzahl auf Lenovo Yoga-, Legion- und IdeaPad-Laptops.
  • Hinzugefügt von Unterstützung für ARM-Boards, 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.
  • Gelöscht Unterstützung für die im Baikal-T1 SoC verwendeten AHCI-SATA- und PCIe-Controller sowie Treiber für Timer, Speicher, Physmap, Bus, HWMON, DWC und BT1-ROM wurden entfernt. Grund für die Entfernung ist die fehlende Unterstützung und die unvollständige Integration der Baikal-Plattformkomponenten in den Kern, da die Produktion in Russland im November 2025 eingestellt wurde.
  • ENTFERNT 12 Treiber für Ethernet-Geräte mit ISA- und PCMCIA-Schnittstellen, die vor 2002 veröffentlicht wurden und für die keine Anwender in Produktionssystemen gefunden wurden. Das Subsystem ISDN, Protokollimplementierungen AX.25, CAIF und Bluetooth CMTP (Common ISDN Application Programming Interface Message Transport Protocol), yellowfin (Yellowfin Gigabit-NIC), hamachi (Hamachi GNIC-II), hamradio (Amateur Radio) Treiber, inport und logibm (busmouse). Grund für die Entfernung war der Mangel an aktiven Maintainern angesichts der steigenden Anzahl von Fehlern, die von Syzbot und KI-Tools identifiziert wurden. Niemand kümmert sich um deren Behebung, und die gesamte Last der Fehlerbehebung liegt bei den Maintainern der Kernel-Netzwerksubsysteme. Insgesamt wurden über 140 Codezeilen entfernt.

Source: linux.org.ru

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