Linux Kernel
Nach zwei Monaten Entwicklung Linus Torvalds kündigte die Veröffentlichung der neuen Version des Linux 6.1-Kernels an, in denen zu den bemerkenswertesten Änderungen gehören: Unterstützung für die Entwicklung von Treibern und Modulen in der Sprache Rust, Modernisierung des Mechanismus zur Bestimmung der verwendeten Speicherseiten, ein spezieller Speichermanager für BPF-Programme, das Diagnosesystem für Probleme des KMSAN-Speichers, der Schutzmechanismus KCFI (Kernel Control -Flow Integrity), die Einführung des Maple-Strukturbaums.
Die neue Version erhielt 15115 Korrekturen von 2139 Entwicklern, beträgt die Patch-Größe 51 MB, was ungefähr zweimal weniger ist als die Größe der 2- und 6.0-Kernel-Patches.
Die wichtigsten neuen Funktionen von Linux 6.1
In dieser neuen Version des Kernels, die vorgestellt wird, können wir das finden Möglichkeit hinzugefügt, Rust als Zweitsprache zu verwenden um Treiber und Kernel-Module zu entwickeln. Der Hauptgrund für die Unterstützung von Rust besteht darin, das Schreiben hochwertiger, sicherer Gerätetreiber zu erleichtern, indem die Wahrscheinlichkeit von Speicherfehlern verringert wird.
Die Rust-Unterstützung ist standardmäßig deaktiviert und führt nicht dazu, dass Rust als erforderliche Kernel-Build-Abhängigkeit enthalten ist. Bisher hat der Kernel eine abgespeckte, minimale Patch-Version angenommen, die von 40 auf 13 Codezeilen reduziert wurde und nur das Nötigste bietet, genug, um ein einfaches in Rust geschriebenes Kernel-Modul zu bauen.
In Zukunftist geplant, die bestehende Funktionalität sukzessive zu erweitern, Portierung anderer Änderungen aus dem Rust-für-Linux-Zweig. Parallel dazu werden Projekte entwickelt, um die vorgeschlagene Infrastruktur zur Entwicklung von NVMe-Festplattencontrollern, des 9p-Netzwerkprotokolls und der Apple M1-GPU auf Rust zu nutzen.
Eine weitere bemerkenswerte Änderung ist in AArch64, RISC-V und LoongArch mit EFI, wo die Fähigkeit implementiert ist, komprimierte Kernel-Images direkt zu ladens, außerdem fügten sie hinzu Treiber zum Laden, Ausführen und Herunterladen von Kernel-Images, direkt von EFI zboot aufgerufen.
Treiber zum Installieren und Entfernen von Protokollen aus der EFI-Protokolldatenbank wurden ebenfalls hinzugefügt. Bisher wurde das Entpacken von einem separaten Bootloader erledigt, jetzt kann es von einem Treiber im Kernel selbst erledigt werden: Das Kernel-Image wird als EFI-Anwendung gebaut.
Teil der Patches wurde mit der Implementierung eines Speicherverwaltungsmodells übernommen von verschiedenen Ebenen, die ermöglicht getrennte Speicherbänke mit unterschiedlichen Leistungsmerkmalen. Beispielsweise können häufig verwendete Seiten im schnellsten Speicher gespeichert werden, während weniger häufig verwendete Seiten in einem relativ langsamen Speicher gespeichert werden können. Der 6.1-Kernel verwendet einen Mechanismus, um festzustellen, ob sich stark genutzte Seiten im langsamen Speicher befinden, um sie in den schnellen Speicher zu verschieben, und implementiert das allgemeine Konzept der Speicherschichten und ihrer relativen Leistung.
Darüber hinaus können wir das auch finden fügte dem BPF-Subsystem die Fähigkeit hinzu, "destruktive" BPF-Programme zu erstellen speziell entwickelt, um einen Absturz über den Aufruf crash_kexec() auszulösen. Solche BPF-Programme können zu Debugging-Zwecken benötigt werden, um zu einem bestimmten Zeitpunkt die Erstellung eines Speicherauszugs auszulösen. Der Zugriff auf destruktive Operationen beim Laden eines BPF-Programms erfordert, dass das BPF_F_DESTRUCTIVE-Flag angegeben, sysctl kernel.condensed_bpf_enabled gesetzt und CAP_SYS_BOOT-Rechte gesetzt sind.
sind gemacht wordeno Signifikante Leistungsoptimierungen auf dem Btrfs-DateisystemUnter anderem wurde die Leistung von fiemap- und lseek-Operationen um Größenordnungen gesteigert (das Prüfen auf gemeinsam genutzte Erweiterungen wurde um das 2-3-fache beschleunigt und das Ändern der Position in Dateien wurde um das 1.3- bis 4-fache beschleunigt) . Ebenfalls, beschleunigtes Inode-Journaling für Verzeichnisse (25 % Leistungssteigerung und 21 % Latenzreduzierung in dbench), gepufferte I/O wurde verbessert und der Speicherverbrauch wurde reduziert.
Ext4 fügt Leistungsoptimierungen hinzu im Zusammenhang mit Journaling und Nur-Lese-Operationen, entfernte Unterstützung für veraltete noacl- und nouser_xattr-Attribute, auch in EROFS (Enhanced Read-Only File System), entwickelt für die Verwendung auf Nur-Lese-Partitionen, implementiert die Möglichkeit, doppelte Daten in einer anderen Datei zu speichern Systeme.
Der andere Änderungen, die auffallen:
- Unterstützung für Audio-Subsysteme hinzugefügt, die in Prozessoren von Apple Silicon, Intel SkyLake und Intel KabyLake implementiert sind.
- Der Audiocontroller HDA CS35L41 unterstützt den Schlafmodus.
- Unterstützung für AHCI-SATA-Controller hinzugefügt, die im Baikal-T1-SoC verwendet werden.
- Unterstützung für Bluetooth-Chips MediaTek MT7921, Intel Magnetor (CNVi, integrierte Konnektivität), Realtek RTL8852C, RTW8852AE und RTL8761BUV (Edimax BT-8500) hinzugefügt.
- Treiber für PinePhone Keyboard, InterTouch Touchpads (ThinkPad P1 G3), X-Box Adaptive Controller, PhoenixRC Flight Controller, VRC-2 Car Controller, DualSense Edge Controller, IBM Operation Panels, XBOX One Elite, XP-PEN Deco Pro S Tablets und Intuos Pro klein (PTH-460).
- Treiber für kryptografische Beschleuniger Aspeed HACE (Hash and Crypto Engine) hinzugefügt.
- Unterstützung für integrierte Intel Meteor Lake Thunderbolt/USB4-Controller hinzugefügt.
- Unterstützung für Sony Xperia 1 IV, Samsung Galaxy E5, E7 und Grand Max, Pine64 Pinephone Pro Smartphones hinzugefügt.
- ARM SoC kompatibel mit AMD DaytonaX, Mediatek MT8186, Rockchips RK3399 und RK3566, TI AM62A, NXP i.MX8DXL, Renesas R-Car H3Ne-1.7G, Qualcomm IPQ8064-v2.0, IPQ8062, IPQ8062 /BL i.MX8MM OSM-S , MT8195 (Acer Tomato), Radxa ROCK 4C+, NanoPi R4S Enterprise Edition, JetHome JetHub D1p. Informationen zu SoC Samsung, Mediatek, Renesas, Tegra, Qualcomm, Broadcom und NXP.
Wenn Sie mehr darüber erfahren möchten, können Sie die Details einsehen im folgenden Link.