Odyssey-Fahrplan: Was wir vom Connection-Puller noch wollen. Andrei Borodin (2019)

Nach zwei Monaten der Entwicklung prĂ€sentierte Linus Torvalds vor die Kernel-Version Linux 5.9. Unter den bemerkenswertesten Änderungen: EinschrĂ€nkung des Imports von Symbolen aus proprietĂ€ren Modulen in GPL-Module, Beschleunigung der Kontextwechseloperationen durch die Prozessoranweisung FSGSBASE, UnterstĂŒtzung der Kompression des Kernel-Images mit Zstd, Überarbeitung der Priorisierung von Threads im Kernel, UnterstĂŒtzung des PRP-Protokolls (Parallel Redundancy Protocol), bandbreitenbewusstes Scheduling im Deadline-Scheduler, vorausschauende Speicherseitenkompression, Capability-Flag CAP_CHECKPOINT_RESTOR, Systemaufruf close_range(), Leistungsteigerung von dm-crypt, Entfernung von Code fĂŒr 32-Bit Gastsysteme Xen PV, neuer Slab-Speicherverwaltung, Option „rescue“ in Btrfs, UnterstĂŒtzung von Inline-VerschlĂŒsselung in ext4 und F2FS.

In die neue Version wurden 16074 Korrekturen von 2011 Entwicklern ĂŒbernommen,
die Patch-GrĂ¶ĂŸe betrĂ€gt 62 MB (Änderungen betrafen 14548 Dateien, 782155 neue Codezeilen wurden hinzugefĂŒgt, 314792 Zeilen wurden gelöscht). UngefĂ€hr 45% aller Änderungen in 5.9
Änderungen stehen im Zusammenhang mit GerĂ€tetreibern, rund 15 % der Änderungen betreffen
beziehen sich auf die Aktualisierung von kodera spezifisch fĂŒr Hardwarearchitekturen, 13%
gehört zum Netzwerk-Stack, 3% – zu Dateisystemen und 3% zu internen
Subsystemen des Kernels.

Haupt- Neuheiten:

  • Speicher und Systemdienste
    • VerschĂ€rft Schutz vor der Verwendung von GPL-Schichten zur VerknĂŒpfung proprietĂ€rer Treiber mit Kernelkomponenten, die nur fĂŒr GPL-lizenzierte Module exportiert werden. Das Flag TAINT_PROPRIETARY_MODULE wird nun in allen Modulen vererbt, die Symbole aus Modulen mit diesem Flag importieren. Wenn ein GPL-Modul versucht, Symbole aus einem nicht-GPL-Modul zu importieren, erbt dieses GPL-Modul das Label TAINT_PROPRIETARY_MODULE und kann nicht auf Kernelkomponenten zugreifen, die nur fĂŒr GPL-lizenzierte Module verfĂŒgbar sind, selbst wenn das Modul zuvor Symbole aus der Kategorie „gplonly“ importiert hat. Eine RĂŒckwĂ€rtsblockade (Export nur von EXPORT_SYMBOL_GPL in Modulen, die EXPORT_SYMBOL_GPL importiert haben), die die Funktionsweise proprietĂ€rer Treiber beeintrĂ€chtigen könnte, wurde nicht implementiert (nur das Flag des proprietĂ€ren Moduls wird vererbt, jedoch nicht die GPL-Bindung).
    • HinzugefĂŒgt UnterstĂŒtzung des kcompactd-Mechanismus fĂŒr vorausschauende Speicherseitenkompression Im Hintergrund ermöglicht es, die Anzahl der großen Speicherseiten, die dem Kernel zur VerfĂŒgung stehen, zu erhöhen. Vorausichtlich ermöglicht die Hintergrundverpackung mit minimalen Overheadkosten eine Reduzierung der Verzögerungen bei der Zuweisung großer Speicherseiten (huge-page) um das 70-80-fache im Vergleich zu dem zuvor verwendeten Verpackungsmechanismus, der nach Bedarf aktiviert wird (on-demand). Um die Grenzen der externen Fragmentierung, die kcompactd bereitstellt, festzulegen, wurde sysctl vm.compaction_proactiveness hinzugefĂŒgt.
    • HinzugefĂŒgt UnterstĂŒtzung der Kernel-Image-Komprimierung mit dem Algorithmus Zstandard (zstd).
    • FĂŒr x86-Systeme wurde die UnterstĂŒtzung der Prozessoranweisung FSGSBASE, die es ermöglicht, den Inhalt der FS/GS-Register aus dem Benutzerspeicher zu lesen und zu Ă€ndern, implementiert. Im Kernel wird FSGSBASE verwendet, um die Kontextwechseloperationen zu beschleunigen, indem unnötige MSR-Schreiboperationen fĂŒr GSBASE vermieden werden. Im Benutzerspeicher ermöglicht es, ohne unnötige Systemaufrufe zur Änderung von FS/GS auszukommen.
    • HinzugefĂŒgt Der Parameter „allow_writes“, der das Ändern der MSR-Register des Prozessors aus dem Benutzerspeicher verbietet und den Zugriff auf den Inhalt dieser Register auf Leseoperationen beschrĂ€nkt, da das Ändern der MSR zu Problemen fĂŒhren kann. StandardmĂ€ĂŸig ist das Schreiben derzeit nicht verboten, und die Änderung der MSR wird im Protokoll festgehalten, aber in Zukunft ist geplant, den Standardzugriff in den Nur-Lese-Modus zu versetzen.
    • In die Schnittstelle fĂŒr asynchrone Eingabe/Ausgabe io_uring wurde die vollstĂ€ndige UnterstĂŒtzung asynchroner Operationen fĂŒr gepufferte LesevorgĂ€nge, die keine Einbindung von Kernel-Threads erfordern, hinzugefĂŒgt. Die UnterstĂŒtzung fĂŒr das Schreiben wird in der nĂ€chsten Version erwartet.
    • Im I/O-Planer Deadline wurde implementiert werden Planungsstrategien unter BerĂŒcksichtigung der Bandbreite implementiert, die es ermöglichen, korrekte Entscheidungen auf asymmetrischen Systemen zu treffen, wie z.B. ARM-Systeme basierend auf den Architekturen DynamIQ und big.LITTLE, die leistungsstarke und weniger leistungsfĂ€hige energieeffiziente CPU-Kerne in einem Chip kombinieren. Insbesondere ermöglicht der neue Modus, Planungsinkonsistenzen zu vermeiden, wenn ein langsamer CPU-Kern nicht ĂŒber die erforderlichen Ressourcen verfĂŒgt, um eine Aufgabe fristgerecht auszufĂŒhren.
    • Das Energieverbrauchsmodell im Kernel (Energy Model Framework) deckt jetzt beschreibt nicht nur das Verhalten des Energieverbrauchs der CPU ab, sondern auch die PeripheriegerĂ€te.
    • Der Systemaufruf close_range() wurde implementiert, der es einem Prozess ermöglicht, einen gesamten Bereich von offenen Dateideskriptioren gleichzeitig zu schließen.
    • Aus der Implementierung der Textkonsole und des Treibers fbcon wurde der Code, der die Möglichkeit der programmgesteuerten RĂŒckwĂ€rtsblĂ€ttern von Text (CONFIG_VGACON_SOFT_SCROLLBACK) ĂŒber den verfĂŒgbaren Videoramumfang des VGA-Textmodus hinaus ermöglichte, entfernt.
    • Überarbeitet ein Algorithmus zur Zuweisung von PrioritĂ€ten fĂŒr Threads innerhalb des Kernels. Die neue Variante sorgt fĂŒr eine bessere Konsistenz in allen Subsystemen des Kernels bei der Zuweisung von PrioritĂ€ten fĂŒr Echtzeitarbeiten.
    • Ein neuer sysctl sched_uclamp_util_min_rt_default wurde hinzugefĂŒgt, um die Parameter der CPU-Taktfrequenzzuweisung fĂŒr Echtzeitsysteme zu steuern (z. B. kann das Verhalten bei der AusfĂŒhrung von Echtzeitarbeiten zur Energieeinsparung beim Wechsel auf Batteriestrom oder in mobilen Systemen dynamisch angepasst werden).
    • Die Vorbereitung zur Implementierung der UnterstĂŒtzung fĂŒr die Technologie Transparent Huge Pages im Seiten-Cache wurde abgeschlossen.
    • Im Mechanismus fanotify wurden neue Flags FAN_REPORT_NAME und FAN_REPORT_DIR_FID implementiert, um Informationen ĂŒber den ĂŒbergeordneten Namen und die eindeutige FID-Identifikation bei den Ereignissen von Erstellen, Löschen oder Verschieben von Katalogelementen und nicht kataloggebundenen Objekten zu ĂŒbertragen.
    • FĂŒr cgroups wurde implementiert wurde ein neuer Slab-Speichercontroller (slab memory controller) implementiert, der bemerkenswerterweise die ZĂ€hlung von Slab vom Seitenlevel auf die Objektebene des Kernels verlagert, was die gemeinsame Nutzung von Slab-Seiten in verschiedenen cgroups ermöglicht, anstatt separate Slab-Caches fĂŒr jede cgroup zu reservieren. Der vorgeschlagene Ansatz ermöglicht eine effizientere Nutzung von Slab und verringert den fĂŒr Slab verwendeten Speicher um 30-45%, reduziert den Gesamtspeicherverbrauch des Kernels erheblich und verringert die Speicherfragmentierung.
    • Im Audiosubsystem ALSA und USB-Stack, in Übereinstimmung mit kĂŒrzlich angenommenen den Empfehlungen zur Verwendung inklusiver Terminologie im Linux-Kernel wurde eine Bereinigung von politisch nicht korrekten Begriffen durchgefĂŒhrt. Der Code wurde von den Verwendungen der Begriffe „slave“, „master“, „blacklist“ und „whitelist“ befreit.
  • Virtualisierung und Sicherheit
    • Bei der Kernel-Kompilierung mit dem Compiler Clang ein kann die Option zur automatischen Initialisierung aller Variablen im Stack mit null (CONFIG_INIT_STACK_ALL_ZERO) konfiguriert werden (bei der Kompilierung wird „-ftrivial-auto-var-init=zero“ angegeben).
    • Im Seccomp-Subsystem, bei der Verwendung des Modus zur Prozesskontrolle im Benutzermodus, hinzugefĂŒgt die Möglichkeit Ersatz in den ĂŒberwachten Prozess von Dateideskriptoren zur vollstĂ€ndigen Emulation von Systemaufrufen, die zur Erstellung von Dateideskriptoren fĂŒhren. Diese FunktionalitĂ€t ist in Systemen mit isolierten Containern und in der Realisierung von Sandboxes fĂŒr Chrome gefragt.
    • FĂŒr die Architekturen xtensa und csky wurde die UnterstĂŒtzung fĂŒr die Begrenzung von Systemaufrufen ĂŒber das seccomp-Subsystem hinzugefĂŒgt. FĂŒr xtensa wurde zusĂ€tzlich die UnterstĂŒtzung fĂŒr den Audit-Mechanismus implementiert.
    • HinzugefĂŒgt neues FĂ€higkeit-Flag CAP_CHECKPOINT_RESTORE, das erlaubt, ohne zusĂ€tzliche Privilegien auf Funktionen im Zusammenhang mit dem Einfrieren und der Wiederherstellung des Zustands von Prozessen zuzugreifen.
    • In GCC 11 wurden alle notwendigen Funktionen realisiert fĂŒr
      das Debugging-Tool KCSAN (Kernel Concurrency Sanitizer), das zur dynamischen Erkennung von Race Conditions im Kernel dient. Somit kann KCSAN jetzt mit in GCC kompilierten Kernen verwendet werden.
    • FĂŒr AMD Zen und neuere CPU-Modelle hinzugefĂŒgt wurde die UnterstĂŒtzung der P2PDMA-Technologie hinzugefĂŒgt, die es ermöglicht, DMA fĂŒr die direkte DatenĂŒbertragung zwischen dem Speicher zweier an den PCI-Bus angeschlossenen GerĂ€te zu nutzen.
    • In dm-crypt wurde ein Modus hinzugefĂŒgt, der die Latenzzeit reduziert, indem die kryptographische Datenverarbeitung ohne Verwendung von Worker-Queues durchgefĂŒhrt wird. Der angegebene Modus ist auch notwendig fĂŒr die korrekte Arbeit mit zonalisierten BlockgerĂ€ten (GerĂ€te mit Bereichen, die sequentiell mit der vollstĂ€ndigen Aktualisierung aller Blockgruppen geschrieben werden mĂŒssen). Es wurden Arbeiten zur Verbesserung der Durchsatzrate und zur Reduzierung der Latenzzeit in dm-crypt durchgefĂŒhrt.
    • Der Code zur UnterstĂŒtzung von 32-Bit-Gastsystemen, die im Paravirtualisierungsmodus unter dem Xen-Hypervisor betrieben werden, wurde entfernt. Benutzer solcher Systeme sollten auf die Verwendung von 64-Bit-Kernen in Gastsystemen umsteigen oder anstelle von Paravirtualisierung (PV) die Modi der vollstĂ€ndigen (HVM) oder kombinierten (PVH) Virtualisierung verwenden.
  • Festplattensubsystem, Ein-/Ausgabe und Dateisysteme
    • Im Btrfs-Dateisystem wurde wurde die Mount-Option „rescue“ eingefĂŒhrt, die den Zugang zu allen anderen Wiederherstellungsoptionen vereinheitlicht. Die UnterstĂŒtzung fĂŒr die Optionen „alloc_start“ und „subvolrootid“ wurde entfernt, und die Option „inode_cache“ wurde fĂŒr veraltet erklĂ€rt. Es wurden Leistungsoptimierungen durchgefĂŒhrt, insbesondere das fsync()-Operationen deutlich beschleunigt. HinzugefĂŒgt die Möglichkeit, alternative PrĂŒfzifferntypen anders als CRC32c zu verwenden.
    • HinzugefĂŒgt Die Möglichkeit der Verwendung von Inline-VerschlĂŒsselung (Inline Encryption) in den Dateisystemen ext4 und F2FS, fĂŒr die eine Montageoption "inlinecrypt" vorgesehen ist. Der Modus der Inline-VerschlĂŒsselung ermöglicht es, die in den Speichercontroller integrierten VerschlĂŒsselungsmechanismen zu nutzen, die eine transparente VerschlĂŒsselung und EntschlĂŒsselung von Ein- und Ausgaben ermöglichen.
    • In XFS sicherstellt Asynchrone RĂŒcksetzung von Inodes (flush), die die Prozesse wĂ€hrend der Speicherbereinigung nicht blockiert. Ein langjĂ€hriges Problem mit Quoten wurde behoben, bei dem Warnungen ĂŒber das Überschreiten der weichen Grenzen und der EinschrĂ€nkungen fĂŒr die Anzahl von Inodes nicht korrekt ĂŒberwacht wurden. Die Implementierung der DAX-UnterstĂŒtzung fĂŒr ext4 und xfs wurde vereinheitlicht.
    • In Ext4 wurde Vorausschauendes Laden der Bitmaps zur Blockverteilung. In Kombination mit der EinschrĂ€nkung des Scannens von nicht initialisierten Gruppen hat diese Optimierung die Zeit fĂŒr das Mounten sehr großer Partitionen verkĂŒrzt.
    • In F2FS wurde hinzugefĂŒgt ioctl F2FS_IOC_SEC_TRIM_FILE, das die Verwendung von TRIM-/discard-Befehlen zum physischen Löschen der angegebenen Daten in einer Datei ermöglicht, beispielsweise zur Entfernung von ZugriffsschlĂŒsseln ohne verbleibende Daten auf dem Speicher.
      In F2FS ebenfalls wurde hinzugefĂŒgt ein neuer Modus der MĂŒllsammlung GC_URGENT_LOW, der aggressiver arbeitet, indem er einige Kontrollen des Leerlaufs (idle) vor dem Start des MĂŒllsammlers ausschließt.
    • In bcache wurde die GrĂ¶ĂŸe von bucket_size fĂŒr Extents von 16 auf 32 Bit erhöht, um die Möglichkeit der Anwendung auf den Cache von zonierten GerĂ€ten vorzubereiten.
    • In das SCSI-Subsystem wurde die Möglichkeit der Verwendung von Inline-VerschlĂŒsselung auf Basis integrierter Hardware-VerschlĂŒsselungsfunktionen, die von UFS-Controllern bereitgestellt werden, hinzugefĂŒgt (Universal Flash Storage).
    • Ein neuer Kernel-Befehlszeilenparameter "debugfs" wurde hinzugefĂŒgt, um die VerfĂŒgbarkeit des gleichnamigen Pseudo-Dateisystems zu steuern.
    • Im NFSv4.2-Client wurden erweiterte Dateiattribute (xattr) unterstĂŒtzt.
    • In dm-dust wurde hinzugefĂŒgt eine Schnittstelle zur sofortigen Ausgabe aller identifizierten Bad Blocks auf der Festplatte ("dmsetup message dust1 0 listbadblocks").
    • FĂŒr md/raid5 wurde der Parameter /sys/block/md1/md/stripe_size zur Anpassung der STRIPE-BlockgrĂ¶ĂŸe hinzugefĂŒgt.
    • FĂŒr NVMe-SpeichergerĂ€te hinzugefĂŒgt wurde die UnterstĂŒtzung von Befehlen zum Zonieren von Speicher (ZNS, NVM Express Zoned Namespace) hinzugefĂŒgt, die es ermöglichen, den Speicherbereich in Zonen zu unterteilen, die Gruppen von Blöcken bilden, um die Datenplatzierung auf dem Speicher besser zu steuern.
  • Netzwerksubsystem
    • In Netfilter hinzugefĂŒgt Möglichkeit der Paketverweigerung vor der ÜberprĂŒfung der Weiterleitung (der Ausdruck REJECT kann jetzt nicht nur in den Ketten INPUT, FORWARD und OUTPUT, sondern auch in der PREROUTING-Phase fĂŒr icmp und tcp verwendet werden).
    • In nftables hinzugefĂŒgt Möglichkeit zur Überwachung von Ereignissen, die mit der Änderung von Konfigurationen verbunden sind.
    • In nftables im netlink-API hinzugefĂŒgt UnterstĂŒtzung anonymer Ketten, deren Namen dynamisch vom Kernel vergeben werden. Beim Löschen der zugehörigen Regel wird auch die anonyme Kette automatisch gelöscht.
    • In BPF wurde UnterstĂŒtzung fĂŒr Iteratoren hinzugefĂŒgt, um Elemente von assoziativen Arrays (map) ohne Kopieren der Daten in den Benutzerspeicher zu durchlaufen, zu filtern und zu Ă€ndern. Iteratoren können fĂŒr TCP- und UDP-Sockets verwendet werden, was es BPF-Programmen ermöglicht, Listen offener Sockets zu durchlaufen und benötigte Informationen daraus zu extrahieren.
    • Ein neuer Typ von BPF-Programmen BPF_PROG_TYPE_SK_LOOKUP wurde hinzugefĂŒgt, der ausgefĂŒhrt wird, wenn der Kernel nach einem geeigneten hörenden Socket fĂŒr eine eingehende Verbindung sucht. Mit einem solchen BPF-Programm können Handler erstellt werden, die Entscheidungen darĂŒber treffen, mit welchem Socket die Verbindung verknĂŒpft werden soll, ohne an den Systemaufruf bind() gebunden zu sein. Beispielsweise kann eine Zuordnung eines Sockets zu einem Adress- oder Portbereich eingerichtet werden. Außerdem wurde in bpf_setsockopt() die UnterstĂŒtzung fĂŒr das Flag SO_KEEPALIVE hinzugefĂŒgt und die Möglichkeit zur Einrichtung von BPF_CGROUP_INET_SOCK_RELEASE-Handlern realisiert, die beim Freigeben des Sockets aufgerufen werden.
    • UnterstĂŒtzung fĂŒr das Protokoll PRP (Parallel Redundancy Protocol), das es ermöglicht, auf Basis von Ethernet einen nahtlosen Wechsel zu einem Backup-Kanal im Falle eines Ausfalls eines Netzwerkkomponenten zu realisieren.
    • Im Stack mac80211 hinzugefĂŒgt UnterstĂŒtzung fĂŒr das vierstufige Aushandlungsverfahren WPA/WPA2-PSK im Access-Point-Modus.
    • Die Möglichkeit wurde hinzugefĂŒgt, den Scheduler qdisc (queuing discipline) standardmĂ€ĂŸig auf den Algorithmus FQ-PIE (Flow Queue PIE) einzustellen, der darauf abzielt, die negativen Auswirkungen von Zwischenpufferung von Paketen in grenzwertigen NetzgerĂ€ten (bufferbloat) in Kabelmodemnetzwerken zu verringern.
    • Neue Funktionen in MPTCP (MultiPath TCP), eine Erweiterung des TCP-Protokolls, die es ermöglicht, TCP-Verbindungen gleichzeitig ĂŒber mehrere Routen ĂŒber verschiedene Netzwerk-Schnittstellen zu realisieren, die an unterschiedliche IP-Adressen gebunden sind. UnterstĂŒtzung fĂŒr syn cookie, DATA_FIN, automatische Puffereinstellungen, Socket-Diagnose und die Verwendung der Flags REUSEADDR, REUSEPORT und V6ONLY in setsockopt wurde hinzugefĂŒgt.
    • FĂŒr virtuelle Routing-Tabellen VRF (Virtual Routing and Forwarding), die den Betrieb mehrerer Routing-DomĂ€nen auf einem System ermöglichen, wurde der Modus „strict“ implementiert. In diesem Modus kann die virtuelle Tabelle nur mit einer Routing-Tabelle assoziiert werden, die nicht in anderen virtuellen Tabellen verwendet wird.
    • Im drahtlosen Treiber ath11k hinzugefĂŒgt wurde die UnterstĂŒtzung fĂŒr die Frequenz 6GHz und Spektral-Scanning.
  • AusrĂŒstung
    • Der Code zur UnterstĂŒtzung der UniCore-Architektur, die im Mikroprozessorzentrum der Peking-UniversitĂ€t entwickelt und 2011 in den Linux-Kernel aufgenommen wurde, wurde entfernt. Diese Architektur wird seit 2014 nicht mehr unterstĂŒtzt und hat keine UnterstĂŒtzung in GCC.
    • FĂŒr die RISC-V-Architektur wurde UnterstĂŒtzung fĂŒr kcov (debugfs-Schnittstelle zur Analyse der Codeabdeckung des Kernels), kmemleak (System zur Erkennung von Speicherlecks), Stackschutz, Sprungmarken und tickless-Operationen (signalunabhĂ€ngige Zeitschaltbarkeit des Multitasking).
    • FĂŒr die PowerPC-Architektur wurde UnterstĂŒtzung fĂŒr Warteschlangen fĂŒr Spinlock implementiert, was die Leistung in Konfliktsituationen erheblich verbessert hat.
    • FĂŒr die Architekturen ARM und ARM64 wurde standardmĂ€ĂŸig der Mechanismus zur Regelung der Prozessorgeschwindigkeit aktiviert, schedutil (cpufreq governor), der zur Entscheidungsfindung ĂŒber die Änderung der Frequenz direkt Informationen vom Task-Scheduler nutzt und sofort auf cpufreq-Treiber zugreifen kann, um die Frequenz sofort anzupassen und die CPU-Leistung an die aktuelle Last anzupassen.
    • Im DRM-Treiber i915 fĂŒr Intel-Grafikkarten wurde UnterstĂŒtzung fĂŒr Chips auf Basis der Mikroarchitektur Rocket Lake hinzugefĂŒgt und eine erste UnterstĂŒtzung fĂŒr diskrete Karten Intel Xe DG1.
    • wurde implementiert. Der Treiber amdgpu unterstĂŒtzt jetzt zunĂ€chst die AMD GPU Navi 21 (Navy Flounder) und Navi 22 (Sienna Cichlid). UnterstĂŒtzung fĂŒr die Video-Encoding- und Decoding-Beschleunigung UVD/VCE fĂŒr GPUs der Southern Islands (Radeon HD 7000) wurde hinzugefĂŒgt.
      Eine Eigenschaft zur Drehung der Anzeige um 90, 180 oder 270 Grad wurde hinzugefĂŒgt.

      Es ist interessant, dass der Treiber fĂŒr AMD-GPUs ist Der grĂ¶ĂŸte Treiber im Kern — er umfasst etwa 2,71 Millionen Codezeilen, was etwa 10 % der GesamtgrĂ¶ĂŸe des Kerns (27,81 Millionen Zeilen) entspricht. Davon entfallen 1,79 Millionen Zeilen auf automatisch generierte Header-Dateien mit Daten fĂŒr GPU-Register, wĂ€hrend C-Code 366.000 Zeilen ausmacht (zum Vergleich: Der Intel i915-Treiber umfasst 209.000 Zeilen und Nouveau 149.000).

    • die anfĂ€ngliche UnterstĂŒtzung fĂŒr die GPU NVIDIA GA100 auf der Basis der Mikroarchitektur Ampere hinzugefĂŒgt. hinzugefĂŒgt UnterstĂŒtzung der frame-by-frame IntegritĂ€tsprĂŒfung mittels CRC (Cyclic Redundancy Checks) in den Display-Treibern von NVIDIA GPUs. Die Implementierung basiert auf der von NVIDIA bereitgestellten Dokumentation.
    • Treiber fĂŒr LCD-Panels hinzugefĂŒgt: Frida FRD350H54004, KOE TX26D202VM0BWA, CDTech S070PWS19HP-FC21, CDTech S070SWV29HG-DC44, Tianma TM070JVHG33 und Xingbangda XBD599.
    • Im ALSA-Audiosubsystem wurde UnterstĂŒtzung fĂŒr (Modus zur dauerhaften Energieversorgung fĂŒr externe HDMI-GerĂ€te, um Verzögerungen beim Start der Wiedergabe auszuschließen) und ein neues GerĂ€t ein neues GerĂ€t zur Steuerung der Hintergrundbeleuchtung der Mikrofonaktivierungstasten und zur Stummschaltung hinzugefĂŒgt, ebenso wie UnterstĂŒtzung fĂŒr neue Hardware, einschließlich des Controllers Loongson 7A1000.
    • UnterstĂŒtzung von ARM-Plattformen, GerĂ€ten und Plattformen hinzugefĂŒgt: Pine64 PinePhone v1.2, Lenovo IdeaPad Duet 10.1, ASUS Google Nexus 7, Acer Iconia Tab A500, Qualcomm Snapdragon SDM630 (verwendet in Sony Xperia 10, 10 Plus, XA2, XA2 Plus und XA2 Ultra), Jetson Xavier NX, Amlogic WeTek Core2, Aspeed EthanolX, fĂŒnf neue Boards basierend auf NXP i.MX6, MikroTik RouterBoard 3011, Xiaomi Libra, Microsoft Lumia 950, Sony Xperia Z5, MStar, Microchip Sparx5, Intel Keem Bay, Amazon Alpine v3, Renesas RZ/G2H.

Gleichzeitig hat die lateinamerikanische Free Software Foundation ein vollstÀndig freies Kernels 5.6
Variante vollstĂ€ndig freies Kernel 5.9 — Linux-libre 5.9-gnu, bereinigt von Firmware-Elementen und Treibern, die nicht-freie Komponenten oder Codeabschnitte enthalten, deren Verwendung durch den Hersteller eingeschrĂ€nkt ist. In der neuen Version wurde das Laden von Blobs in den Treibern fĂŒr WiFi rtw8821c und MediaTek SoC mt8183 deaktiviert. Der Code zur Bereinigung von Blobs in Treibern und Subsystemen von Habanalabs, Wilc1000, amdgpu, mt7615, i915 CSR, Mellanox mlxsw (Spectrum3), r8169 (rtl8125b-2) und x86 Touchscreen wurde aktualisiert.

Quelle: opennet.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