Kernel
Nach zwei Monaten Entwicklung Linus Torvalds stellte die Veröffentlichung des neuen Linux-Kernels Version 5.10 vor, Version, die mit dem Status einer Zweigstelle mit langer Supportdauer eintrifft und deren Aktualisierungen mindestens zwei Jahre lang veröffentlicht werden.
Bemerkenswerte Änderungen umfassen Diese neue Version enthält Kompatibilität mit dem MemTag-Schutzmechanismus für ARM64-Systeme Montageoption "nosymfollow", signifikante Ext4-Optimierungen, XFS 2038 Fix, neuer Prozessaufruf process_madvise, verbesserte Unterstützung für AMD SEV durch Verschlüsselung von CPU-Registern, Fähigkeit, BPF-Programme anzuhalten.
Die neue Version erhielt 17470 Fixes von 2062 Entwicklern, Patchgröße: 64 MB (Änderungen betrafen 15101 Dateien, fügten 891932 Codezeilen hinzu, entfernten 619716 Zeilen). Über 42% von allen In 5.10 eingeführte Änderungen beziehen sich auf Gerätetreiber, ungefähr 16% der Änderungen beziehen sich auf das Aktualisieren von spezifischem Code für Hardwarearchitekturen, 13% beziehen sich auf den Netzwerkstapel, 3% beziehen sich auf Dateisysteme und 3% beziehen sich auf interne Kernel-Subsysteme.
Die wichtigsten neuen Funktionen von Linux 5.10
Von den wichtigsten Änderungen, die auftreten, Wir können feststellen, dass für ext4 der Schnellbestätigungsmodus hinzugefügt wurde (fast_commit), welche Reduziert Verzögerungen bei vielen Dateivorgängen erheblich aufgrund des schnelleren Löschens von Metadaten auf die Festplatte beim Ausführen eines fsync () -Aufrufs. Unter normalen Umständen synchronisiert das Ausführen von fsync () einen redundanten Satz von Metadaten. Im fast_commit-Modus werden nur die Metadaten, die zur Wiederherstellung des Dateisystems im Falle eines Absturzes erforderlich sind, an die Registrierung übertragen, wodurch Aufrufe von fsync () beschleunigt und die Leistung von Vorgängen verbessert werden, die Metadaten aktiv bearbeiten.
Während für Btrfs enthält wichtige Leistungsoptimierungen im Zusammenhang mit fsync () -Operationen. Die Reduzierung der Log-Mutex-Konflikte führte zu einer Leistungssteigerung von 4% und einer Verringerung der Latenz um 14%, wenn der Dbench-Benchmark mit 32 Clients ausgeführt wurde. Durch das Eliminieren zusätzlicher Commits für Links und Namensänderungen wurde die Bandbreite um 6% und die Latenz um 30% erhöht. Die Beschränkung von fsync auf das Warten nur beim erneuten Schreiben erhöhte die Leistung um 10-40%.
Zusätzlich Die Btrfs-Implementierung von Direct I / O (Direct Io) wurde in das Iomap-Framework verschoben.
XFS fügt Inode-Metadatenänderungen hinzu, um Probleme mit dem Datentypüberlauf zu beheben 32-Bit time_t in 2038. Dem Code zur Berechnung der Festplattenkontingentzeiten wurden ähnliche Änderungen hinzugefügt, durch die der Timerüberlauf auf das Jahr 2468 verschoben wurde. Das XFS V4-Format ist veraltet. Dem Benutzer wird empfohlen, das FS auf das V5-Format zu aktualisieren. Es bleibt jedoch mehr als genug Zeit für das Update, da die V4-Unterstützung bis 2030 bestehen bleibt. XFS hat auch die Größe der Inode-Eingabe geändert btree ermöglicht mehr Redundanzprüfungen und schnellere Bereitstellungszeiten.
Für das FUSE-Subsystem wurde die Unterstützung für DAX-Vorgänge implementiert, um direkt auf das Dateisystem zuzugreifen und den Seitencache ohne Sperrvorrichtung auf Anwendungsebene zu umgehen, mit der Doppel-Cache-Vorteile bei der Organisation des gemeinsamen Zugriffs auf Gastsysteme vermieden werden , Verzeichnisse und Dateien. Virtiofs bietet außerdem Unterstützung für das separate Mounten von Partitionen mit unterschiedlichen Mountpunkten auf dem Hostsystem.
Das Dateisystem F2FS fügt einen neuen Speicherbereinigungsmodus hinzu ATGC (Age Threshold Garbage Collection), verbesserte Unterstützung für NVMe-Geräte in Zonen und schnellere Dekomprimierung komprimierter Daten.
In F2FS und Ext4 wurde die Arbeitsweise mit Dateinamen ohne Berücksichtigung der Großbuchstaben neu gestaltet. Es wurde beschlossen, die Implementierung von Dateinamen ohne Berücksichtigung der Groß- und Kleinschreibung zu vereinheitlichen, indem der zugehörige Code in eine gemeinsame Bibliothek verschoben wird.
Eine weitere wichtige Änderung ist in der asynchrone E / A-Schnittstelle io_uring, die die Möglichkeit bietet, eingeschränkte Ringe zu erstellen Das kann sicher mit einem nicht vertrauenswürdigen Prozess geteilt werden. Mit dieser Funktion kann die Basisanwendung den Zugriff nur auf ihre Deskriptoren selektiv einschränken Der Systemaufruf pidfd_open () wurde mit dem Flag pIDFD_NONBLOCK versehen, um einen nicht sperrenden Dateideskriptor zu erstellen (analog zu O_NONBLOCK für pidfd).