{"id":120593,"date":"2024-11-18T13:09:07","date_gmt":"2024-11-18T11:09:07","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/reliz-yadra-linux-6-12-s-podderzhkoj-realtime-rezhima"},"modified":"2024-11-18T13:09:07","modified_gmt":"2024-11-18T11:09:07","slug":"reliz-yadra-linux-6-12-s-podderzhkoj-realtime-rezhima","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/news\/reliz-yadra-linux-6-12-s-podderzhkoj-realtime-rezhima","title":{"rendered":"Die Ver\u00f6ffentlichung des Linux-Kernels 6.12 mit Unterst\u00fctzung f\u00fcr den Realtime-Modus","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Nach zwei Monaten Entwicklung stellte Linus Torvalds die Ver\u00f6ffentlichung des Linux-Kernels 6.12 vor. Zu den bemerkenswertesten \u00c4nderungen geh\u00f6ren: die M\u00f6glichkeit, den Realtime-Modus zu aktivieren, sched_ext zur Erstellung von CPU-Scheduler \u00fcber eBPF, die Ausgabe eines QR-Codes bei Notf\u00e4llen, das Device Memory TCP-Mechanismus, die Ressourcenschutzmechanismus SCHED_DEADLINE-Server, die Verbesserung des EEVDF-Task-Schedulers und das IPE-Modul zur Festlegung von Integrit\u00e4tsrichtlinien.        <\/p>\n<p>In die neue Version wurden 14607 Korrekturen von 2167 Entwicklern \u00fcbernommen, die Patch-Gr\u00f6\u00dfe betr\u00e4gt 37 MB (die \u00c4nderungen betreffen 13087 Dateien, 507913 Zeilen Code wurden hinzugef\u00fcgt, 234083 Zeilen wurden entfernt). Im vorherigen Release gab es 15130 Korrekturen von 2078 Entwicklern, die Patch-Gr\u00f6\u00dfe betrug 85 MB (im Kern 6.10 hatte der Patch eine Gr\u00f6\u00dfe von 41 MB). Etwa 45 % aller in 6.12 vorgestellten \u00c4nderungen betreffen Ger\u00e4tetreiber, ca. 12 % der \u00c4nderungen beziehen sich auf spezifische Hardware-Architekturen, 13 % sind mit dem Netzwerk-Stack verbunden, 6 % mit Dateisystemen und 3 % mit internen Subsystemen des Kernels.      <\/p>\n<p>Die wichtigsten Neuerungen im Kernel 6.12:  <\/p>\n<ul>\n<li class=\"l\"> <b>Speicher und Systemdienste<\/b>\n<ul>\n<li class=\"l\"> Die M\u00f6glichkeit, den Kernel mit der Option PREEMPT_RT ohne zus\u00e4tzliche Patches f\u00fcr den Betrieb im Echtzeitmodus zu kompilieren, wurde bereitgestellt. Die letzte fehlende M\u00f6glichkeit im Kernel, die die Aktivierung des PREEMPT_RT-Modus nicht zulie\u00df, war die Unterst\u00fctzung des nicht blockierenden atomaren Ausgebens \u00fcber die Funktion printk, die ebenfalls in den Kernel aufgenommen wurde. Die Unterst\u00fctzung f\u00fcr PREEMPT_RT ist f\u00fcr die Architekturen x86, x86_64, ARM64 und RISC-V verf\u00fcgbar. Bisher wurde die Implementierung des PREEMPT_RT-Modus in Form externer Patches bereitgestellt, auf deren Basis einige Distributionen wie RHEL, SUSE und Ubuntu separate Realtime-Editionen ihrer Produkte erstellten, die in Bereichen wie Finanzsysteme, Audio- und Videoverarbeitung, Luftfahrt, Medizin, Robotik sowie Telekommunikations- und Industriesystemen gefragt sind, in denen eine vorhersehbare Bearbeitungszeit f\u00fcr Ereignisse vereist wird.\n<li class=\"l\"> Es wurde ein Mechanismus &#171;sched_ext&#187; (SCX) hinzugef\u00fcgt, der es erm\u00f6glicht, eBPF zu verwenden, um CPU-Planer zu erstellen, die praktisch alle Aspekte der Planung von Aufgaben und der Verteilung von CPU-Ressourcen abdecken. Solche Planer k\u00f6nnen dynamisch geladen und im Linux-Kernel ausgef\u00fchrt werden. <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/de\/vps\/abuzoustojchivye-vps\/\"   title=\"virtuellen Maschine\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"4348\">virtuellen Maschine<\/a> eBPF. Der Mechanismus sched_ext erleichtert die Erstellung von auf bestimmte Aufgaben zugeschnittenen Planern, erm\u00f6glicht das Experimentieren mit verschiedenen Techniken und Strategien der Planung und erlaubt es, schnell Arbeitsprototypen zu erstellen sowie Planer in laufenden Infrastrukturen dynamisch zu ersetzen. Mit sched_ext kann beispielsweise ein Planer erstellt werden, der die spezifischen Anforderungen einer bestimmten Anwendung ber\u00fccksichtigt und die Planung seiner Ausf\u00fchrung dynamisch an den Zustand des Systems und an zus\u00e4tzliche Faktoren anpasst.\n<li class=\"l\"> Enthalten sind die verbleibenden Teile der Patches, die f\u00fcr den Betrieb des SCHED_DEADLINE-Servers erforderlich sind, der das Problem des Ressourcenmangels bei normalen Aufgaben aufgrund der Monopolisierung der CPU durch hochpriorisierte (Echtzeit-) Aufgaben l\u00f6st. Um die Monopolstellung der CPU zu verhindern, wurde im Kernel zuvor der Mechanismus des Realtime-Throttlings verwendet, der versuchte, 5% f\u00fcr niedrigpriorisierte Aufgaben zu reservieren und 95% der Zeit f\u00fcr Echtzeitanforderungen beizubehalten. Dieser Mechanismus lie\u00df jedoch zu w\u00fcnschen \u00fcbrig, da normale Aufgaben in vielen Situationen nicht ausreichend Prozessorzeit erhielten. Der SCHED_DEADLINE-Server implementiert einen effizienteren Ressourcenreservierungsmechanismus.\n<li class=\"l\"> Die Integration des EEVDF (Earliest Eligible Virtual Deadline First) Task-Schedulers wurde abgeschlossen, der den CFS (Completely Fair Scheduler) ersetzt hat, der seit Kernel 2.6.23 ausgeliefert wird. Der neue Scheduler ber\u00fccksichtigt bei der Auswahl des n\u00e4chsten Prozesses zur Ausf\u00fchrung Prozesse, die nicht gen\u00fcgend CPU-Ressourcen erhalten haben oder unangemessen viel CPU-Zeit erhalten haben. Im ersten Fall wird die Kontrolle an den Prozess \u00fcbergeben, im zweiten Falle hingegen wird sie verschoben. Der alte CFS-Scheduler verwendete Heuristiken und Feinabstimmungen, um Prozesse zu identifizieren, die besondere Aufmerksamkeit erforderten, w\u00e4hrend der neue Scheduler sie expliziter verfolgt und keine Feinabstimmung ben\u00f6tigt. Es wird angenommen, dass EEVDF dazu beitragen wird, die Latenz bei der Ausf\u00fchrung von Aufgaben zu verringern, mit denen der CFS Probleme bei der Planung hatte.\n<li class=\"l\"> Im Notfall-Handler des Kernels &#8211; DRM Panic, der das DRM (Direct Rendering Manager)-Subsystem verwendet, um einen visuellen Bericht im Stil des &#171;Blauen Screens of Death&#187; anzuzeigen, wurde die M\u00f6glichkeit hinzugef\u00fcgt, das Logo und einen QR-Code mit dem kmsg-Bericht bei einem Fehlerzustand anzuzeigen. Da im QR-Code nur 2953 Bytes Platz haben, gibt es die Option DRM_PANIC_SCREEN_QR_CODE_URL, bei der der kmsg-Bericht mit zlib komprimiert und als Parameter an die URL angeh\u00e4ngt wird, wodurch es m\u00f6glich ist, \u00fcber QR-Code V40 etwa 7500 Bytes zu \u00fcbertragen. Bei der Paketkompilierung f\u00fcr den Kernel k\u00f6nnen Distributionen eine Basis-URL festlegen, was den Zugriff auf eine Seite f\u00fcr die Meldung von Problemen erm\u00f6glicht. Zur Auswahl des QR-Code-Formats gibt es die Einstellung DRM_PANIC_SCREEN_QR_VERSION.\n<li class=\"l\"> Die Unterst\u00fctzung f\u00fcr die ARM POE (Permission Overlay Extension) wurde hinzugef\u00fcgt, die es erm\u00f6glicht, Zugriffsrechte auf Speicherbereiche festzulegen. Mit dieser Erweiterung kann auf ARM64-Systemen ein Mechanismus f\u00fcr Memory Protection Keys implementiert werden, der den Zugriff auf Speicherseiten einschr\u00e4nkt, ohne die Seitentabelle zu \u00e4ndern.\n<li class=\"l\"> F\u00fcr die Architekturen Loongarch, ARM64, PowerPC und s390 wurde die Implementierung des Systemaufrufs getrandom() \u00fcbertragen, optimiert durch den Mechanismus vDSO (virtual dynamic shared object), der es erm\u00f6glicht, den Handler des Systemaufrufs aus dem Kernel in den Benutzerspeicher zu verschieben und Kontextwechsel zu vermeiden. Diese Optimierung erm\u00f6glicht es, die Erzeugung von Zufallszahlen bis zu 15 Mal zu beschleunigen.\n<li class=\"l\"> Im asynchronen Ein-\/Ausgabesubsystem io_uring wurde die M\u00f6glichkeit hinzugef\u00fcgt, absolute Zeit\u00fcberschreitungen zu verwenden, die bei Erreichen einer bestimmten Zeit auf der Systemuhr ausl\u00f6sen (fr\u00fcher konnten nur relative Zeit\u00fcberschreitungen festgelegt werden, bei denen die Dauer seit Beginn der Operation angegeben wurde).\n<li class=\"l\"> Es wurden Dateien zur Generierung von Bindings f\u00fcr die Bibliothek libcpupower mithilfe des SWIG-Tools hinzugef\u00fcgt, das es erm\u00f6glicht, Bindings aus C\/C++-Code f\u00fcr verschiedene Programmiersprachen zu erstellen. Diese Bindings erm\u00f6glichen es, Skripte in Python und anderen Sprachen zu erstellen und zur Erweiterung der Funktionalit\u00e4t der Bibliothek libcpupower zu verwenden, die eine API f\u00fcr die Verwaltung von cpufreq und Treibern aus dem Benutzerspeicher bereitstellt.\n<li class=\"l\"> Im cpuidle-Tool wurde die Anzeige des &#171;residency&#187; Idle-State-Werts implementiert, der f\u00fcr Echtzeit-Systeme verwendet wird und das minimale Zeitintervall ber\u00fccksichtigt, das der Prozessor im Leerlaufzustand bleiben muss, um die Energiekosten f\u00fcr den Wechsel in diesen Zustand und den Austritt daraus zu rechtfertigen.\n<li class=\"l\"> Die M\u00f6glichkeit, den Clang-Compiler zum Erstellen der Standard-C-Bibliothek nolibc, die Bestandteil des Linux-Kernelquellcodes ist und eine Schnittstelle zu den grundlegenden Systemaufrufen bereitstellt, zu verwenden, wurde hinzugef\u00fcgt. Bei der Erstellung von nolibc in Clang ist die Verwendung von Optimierungen w\u00e4hrend des Linkens (LTO) zul\u00e4ssig.\n<li class=\"l\"> Einige Schnittstellen von cgroup1, wie die TCP-Abrechnung, die erste Version der weichen Begrenzungen (soft limit) und das Management von freiem Speicher, wurden als veraltet erkl\u00e4rt. Die Unterst\u00fctzung dieser Funktionen bleibt vorerst in vollem Umfang erhalten, und die Warnung wurde ausgesprochen, um die Anzahl der Benutzer zu ermitteln, die diese Funktionen weiterhin verwenden.\n<li class=\"l\"> Die M\u00f6glichkeit, einen Ringpuffer f\u00fcr das Tracing zu konfigurieren, wurde hinzugef\u00fcgt, um gesammelte Daten nach einem Neustart zu speichern, sodass keine Debugging-Informationen im Falle eines unerwarteten Absturzes des Kernels verloren gehen. Die Daten werden im Speicher gespeichert. Die Aktivierung erfolgt \u00fcber den Kernel-Befehlszeilenparameter trace_instance, zum Beispiel reserviert die Einstellung \u201etrace_instance=boot_map@0x285400000:12M\u201c 12 MB Speicher an der Adresse 0x285400000 f\u00fcr den Puffer \u201eboot_map\u201c, der \u00fcber die Datei \/sys\/kernel\/tracing\/instances\/boot_map zug\u00e4nglich ist.\n<li class=\"l\"> Die \u00dcbertragung von \u00c4nderungen aus dem Rust-for-Linux-Zweig, die die Verwendung von Rust als zweite Programmiersprache f\u00fcr die Entwicklung von Treibern und Kernmodulen betreffen, wird fortgesetzt (die Unterst\u00fctzung f\u00fcr Rust ist standardm\u00e4\u00dfig nicht aktiviert und f\u00fchrt nicht dazu, dass Rust zu den erforderlichen Build-Abh\u00e4ngigkeiten des Kernels geh\u00f6rt). Module 'list' und 'rbtree' wurden hinzugef\u00fcgt, um mit doppelt verketteten Listen und rot-schwarzen Suchb\u00e4umen (red-black trees) zu arbeiten. Die Funktionen der Module 'init', 'sync', 'types' und 'error' wurden erweitert. Es ist nun m\u00f6glich, Rust-Code beim Bauen des Kernels mit Schutz gegen Spectre-Attacken (Optionen MITIGATION_{RETHUNK, RETPOLINE, SLS}), der Verwendung des Debugging-Systems KASAN, der Schutzmechanismen kCFI (Kernel Control Flow Integrity) und Shadow Call sowie beim Einsatz zus\u00e4tzlicher GCC-Plugins zu verwenden. Ein Treiber f\u00fcr den Ethernet-Controller Applied Micro QT2025 PHY, der in Rust geschrieben wurde, wurde hinzugef\u00fcgt. Eine separate Website mit Dokumentation wurde vorbereitet \u2014 rust.docs.kernel.org.\n<li class=\"l\"> In die Quelltexte des Kernels wurde das Utility xdrgen aufgenommen, das XDR-Spezifikationen (eXternal Data Representation) in Codierungs- und Decodierungsfunktionen f\u00fcr XDR umwandelt, die im stil von C, wie im Linux-Kernel akzeptiert, geschrieben sind.\n<li class=\"l\"> Die Kernel\u00e4nderung, die die Implementierung eines Mechanismus zur Maskierung von Zeigern zur Reduzierung der Anzahl langsamer Aufrufe von barrier_nospec() in der 64-Bit-Funktion copy_from_user() erm\u00f6glicht, die f\u00fcr das Kopieren von Daten in den Kernel aus dem Benutzerspeicher verwendet wird, wurde angenommen. Der Einsatz der Maskierung beschleunigt die Durchf\u00fchrung des Tests \u201eper_thread_ops\u201c um 2,6 %, der die Anzahl der Operationen bewertet, die in einem Thread durchgef\u00fchrt werden k\u00f6nnen.\n<li class=\"l\"> Ein neuer USB-Treiber wurde hinzugef\u00fcgt, der die Verwendung des 9pfs-Protokolls als Transport f\u00fcr den Daten\u00fcbertragung und -empfang mit einem USB-Ger\u00e4t erm\u00f6glicht, wenn das 9p-Dateisystem \u00fcber USB gemountet wird (zum Beispiel \u201emount -t 9p -o trans=usbg,aname=\/path\/to\/fs  \/mnt\/9\u201c). Als Beispiel f\u00fcr die Verwendung des neuen Treibers wird die Nutzung anstelle von NFS f\u00fcr das Booten der Root-Partition bei der Entwicklung embedder Ger\u00e4te genannt.                    <\/ul>\n<li class=\"l\"> <b>Festplattensubsystem, Ein-\/Ausgabe und Dateisysteme<\/b>\n<ul>\n<li class=\"l\"> Im VFS-Untersystem wurde die M\u00f6glichkeit hinzugef\u00fcgt, mit Speichereinheiten zu arbeiten, deren Blockgr\u00f6\u00dfen gr\u00f6\u00dfer sind als die Seitengr\u00f6\u00dfe des Systems. In Dateisystemen wird diese M\u00f6glichkeit derzeit nur in XFS unterst\u00fctzt.\n<li class=\"l\"> Im FUSE-Subsystem, das die Implementierung von Dateisystemen im Benutzerspace erm\u00f6glicht, wurde die Unterst\u00fctzung f\u00fcr die Zuordnung von Benutzer-IDs an die gemounteten Dateisysteme hinzugef\u00fcgt, um Dateien eines bestimmten Benutzers auf einem gemounteten fremden Volume mit einem anderen Benutzer im aktuellen System abzugleichen.\n<li class=\"l\"> Eine neue fcntl-Operation F_CREATED_QUERY wurde implementiert, die es einer Anwendung erm\u00f6glicht, festzustellen, ob eine Datei, die mit dem Flag O_CREAT ge\u00f6ffnet wurde, neu erstellt oder bereits vorher vorhanden war.\n<li class=\"l\"> Im Systemaufruf name_to_handle_at() wurde die M\u00f6glichkeit hinzugef\u00fcgt, eindeutige 64-Bit-Mountpunkt-IDs zu verwenden, um Zust\u00e4nde von Wettl\u00e4ufen beim Parsen von \/proc\/mountinfo auszuschlie\u00dfen.\n<li class=\"l\"> Die Gr\u00f6\u00dfe der Struktur &#171;file&#187; im Kernel wurde von 232 auf 184 Bytes reduziert, was den Speicherverbrauch auf Systemen, die intensiv mit Dateien arbeiten, verringert.\n<li class=\"l\"> Das Mounten von Dateisystemen an Mountpunkten innerhalb der \/proc-Hierarchie, wie z.B. in \/proc\/PID\/fd, wurde verboten, da dies potenzielle Sicherheitsprobleme verursachte.\n<li class=\"l\"> Im Pseudo-Dateisystem NSFS (NameSpace FS), das zur Arbeit mit Namensr\u00e4umen verwendet wird, wurde die Bereitstellung zus\u00e4tzlicher Informationen \u00fcber die Namensr\u00e4ume von Mountpunkten implementiert.\n<li class=\"l\"> Im Dateisystem EROFS (Extendable Read-Only File System), das f\u00fcr die Nutzung auf nur-lesbaren Partitionen vorgesehen ist, wurde die Unterst\u00fctzung f\u00fcr das Mounten von Dateisystemen direkt aus Festplatten-Images, die in Form von Dateien gespeichert sind, hinzugef\u00fcgt.\n<li class=\"l\"> In XFS wurden neue ioctl-Befehle XFS_IOC_START_COMMIT und XFS_IOC_COMMIT_RANGE hinzugef\u00fcgt, um den Inhalt zwischen zwei Dateien auszutauschen.\n<li class=\"l\"> In NFS wurde die Unterst\u00fctzung des Protokolls &#171;LOCALIO&#187; hinzugef\u00fcgt, das ermittelt, ob sich der Client und <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/de\/server\/\"   title=\"Server\" data-wpil-keyword-link=\"linked\">Server<\/a> Im Btrfs-Dateisystem wurden Leistungsoptimierungen vorgeschlagen, der Code wurde refaktoriert, der Bereich der Extent-Sperrung bei Leseoperationen wurde reduziert, die Arbeit an der Umstellung auf Seitenfolien (page folios) wurde fortgesetzt, und die automatische Speicherfreigabe f\u00fcr die Struktur btrfs_path wurde implementiert.\n<li class=\"l\"> Im Ext4-Dateisystem wurden Fehler im Zusammenhang mit der Blockzuweisung, dem Extent-Management, dem \u201afast commit\u2018-Mechanismus und dem Journaling behoben.\n<li class=\"l\"> In dem Dateisystem Ext4 wurden Fehler behoben, die mit der Zuteilung von Bl\u00f6cken, dem Management von Extents, dem Mechanismus &#171;fast commit&#187; und dem Journalisieren zusammenh\u00e4ngen.                  <\/ul>\n<li class=\"l\"> <b>Virtualisierung und Sicherheit<\/b>\n<ul>\n<li class=\"l\"> Das LSM-Modul IPE (Integrity Policy Enforcement) wurde hinzugef\u00fcgt, das von Microsoft entwickelt wurde, um das bestehende System der mandatorischen Zugriffskontrolle zu erweitern. Dieses Modul erm\u00f6glicht es, eine allgemeine Integrit\u00e4tspolitik f\u00fcr das gesamte System festzulegen, die angibt, welche Operationen zul\u00e4ssig sind und wie die Authentifizierung von Komponenten verifiziert werden soll. So kann beispielsweise mit IPE festgelegt werden, welche ausf\u00fchrbaren Dateien unter Ber\u00fccksichtigung ihrer \u00dcbereinstimmung mit der Referenzversion durch kryptographische Hashes, die von dm-verity bereitgestellt werden, gestartet werden d\u00fcrfen.\n<li class=\"l\"> W\u00e4hrend der Kernel-Kompilierung wurde die M\u00f6glichkeit eingef\u00fchrt, die verf\u00fcgbaren Schutzmethoden gegen verschiedene Spectre-Schwachstellen in der CPU separat zu aktivieren. In Kconfig werden neue Parameter angeboten: MITIGATE_MDS (Schutz gegen die Microarchitectural Data Sampling-Schwachstelle), MITIGATE_TAA (Schutz gegen die TSX Asynchronous Abort-Schwachstelle), MITIGATE_MMIO_STALE_DATA (Schutz gegen die MMIO Stale Data-Schwachstelle), MITIGATE_L1TF (Schutz gegen die L1 Terminal Fault-Schwachstelle), MITIGATE_RETBLEED (Schutz gegen die Retbleed-Schwachstelle), MITIGATE_SPECTRE_V1, MITIGATE_SPECTRE_V2 (Schutz gegen Spectre-Schwachstellen), MITIGATE_SRBDS (Schutz gegen die Special Register Buffer Data Sampling-Schwachstelle) und MITIGATE_SSB (Schutz gegen die Speculative Store Bypass-Schwachstelle).\n<li class=\"l\"> Ein neuer Befehlszeilenparameter proc_mem.force_override und eine Reihe von Build-Optionen in Kconfig (PROC_MEM_FORCE_ALWAYS, PROC_MEM_FORCE_PTRACE und PROC_MEM_FORCE_NEVER) wurden hinzugef\u00fcgt, die das \u00c4ndern des Speicherinhalts \u00fcber \/proc\/pid\/mem verbieten k\u00f6nnen.\n<li class=\"l\"> Das LSM (Linux Security Module)-Subsystem wurde auf die Verwendung statischer Aufrufe umgestellt, was die Sicherheit erh\u00f6ht und die Leistung verbessert hat.\n<li class=\"l\"> Die Verwendung von Standard-Kernel f\u00fcr die ARM64-Architektur in Gastumgebungen, die auf Android-Systemen mit einem modifizierten KVM-Hypervisor (protected KVM) ausgef\u00fchrt werden, ist jetzt m\u00f6glich.\n<li class=\"l\"> Im LSM-Modul Landlock, das die Interaktion einer Gruppe von Prozessen mit der Au\u00dfenwelt einschr\u00e4nkt, wurde das Konzept &#171;IPC scoping&#187; umgesetzt, um selektive Einschr\u00e4nkungen der Interaktion mit Sandbox-Umgebungen unter Verwendung von Unix-Sockets und Signalen zu erm\u00f6glichen. Zum Beispiel kann die Verbindung \u00fcber Unix-Sockets aus der Sandbox-Umgebung zu Prozessen, in denen keine Isolation angewendet wird, verboten werden, w\u00e4hrend die Verbindungen zu Prozessen im selben Scope-Bereich erlaubt sind.\n<li class=\"l\"> Im KVM-Hypervisor wurde im CPUID f\u00fcr Gast-Systeme ein Flag hinzugef\u00fcgt, das die Unterst\u00fctzung von AVX10.1-Erweiterungen signalisiert.            <\/ul>\n<li class=\"l\"> <b>Netzwerksubsystem<\/b>\n<ul>\n<li class=\"l\"> Es wurde ein Device Memory TCP-Mechanismus hinzugef\u00fcgt, der es erm\u00f6glicht, Netzwerksockets f\u00fcr die direkte \u00dcbertragung des Inhalts von Peripherieger\u00e4te-Speicher \u00fcber das Netzwerk (Zero-Copy-Modus) und die direkte Platzierung des Inhalts von Netzwerkpaketen im Speicherausgabebereich des Ger\u00e4ts auf der Empf\u00e4ngerseite zu verwenden. Die in Paketen \u00fcbertragenden Daten verwirken direkt von der Netzwerkkarte in den Peripherieger\u00e4tespeicher oder aus dem Speicherausgabebereich des Ger\u00e4ts direkt in die Netzwerkkarte, und die Paketk\u00f6pfe gelangen in die regul\u00e4ren Kernelpuffer.\n<li class=\"l\"> Die M\u00f6glichkeiten vieler Ethernet- und Wireless-Treiber wurden erweitert. Beispielsweise wurde im Intel iwlwifi-Treiber die Unterst\u00fctzung f\u00fcr das Auslagern von RLC\/SMPS-Operationen in die Firmware hinzugef\u00fcgt, im RealTek rtw89-Treiber wurde die Leistung verbessert und die Unterst\u00fctzung f\u00fcr die Chips RTL8852BT\/8852BE-VT (WiFi 6) hinzugef\u00fcgt, der Ethernet-Treiber von Microchip unterst\u00fctzt die Spezifikationen IEEE 802.3bw (100BASE-T1) und IEEE 802.3bp und die Implementierungen virtueller Ethernet Microsoft vNIC und IBM veth wurden verbessert. Neue Treiber f\u00fcr Ethernet-Chips von Realtek RTL9054, RTL9068, RTL9072, RTL9075, RTL9068, RTL9071 und Microchip LAN8650\/1 10BASE-T1S MAC-PHY wurden hinzugef\u00fcgt.\n<li class=\"l\"> In MPTCP (MultiPath TCP), einer Erweiterung des TCP-Protokolls zur gleichzeitigen \u00dcbergabe von TCP-Paketen \u00fcber mehrere Routen durch verschiedene Netzwerkschnittstellen, wurde die Gr\u00f6\u00dfe der beim Routing verwendeten Gewichtungskoeffizienten von 8 auf 16 Bit erh\u00f6ht. Es wurde die Erkennung von verloren gegangenen (Blackhole) Datenverkehr implementiert, sowie eine vor\u00fcbergehende Unterbrechung bei der Verbindungsherstellung mit Systemen, die zu Datenverlust f\u00fchren.\n<li class=\"l\"> F\u00fcr IPv6 wurde die Unterst\u00fctzung des Flags &#171;p&#187; in PIO (Prefix Information Option) realisiert, das in RA (IPv6 Router Advertisements) zur Auswahl des Bereitstellungsmodells von Clients \u00fcber DHCPv6-PD (DHCPv6 Prefix Delegation, RFC9663) anstelle der Zuweisung einzelner Adressen auf Basis von Pr\u00e4fixen unter Verwendung von SLAAC (Stateless Address Autoconfiguration) verwendet wird. In IPv6 IOAM6 wurde die Unterst\u00fctzung eines neuen Inkapselierungsmodus tunsrc hinzugef\u00fcgt, der eine h\u00f6here Leistung erm\u00f6glicht.\n<li class=\"l\"> Die Leistung bei der Verarbeitung von Steuerpaketen f\u00fcr IPsec wurde erh\u00f6ht.\n<li class=\"l\"> Die Leistung beim Flush gro\u00dfer Regelsets von nftables wurde verbessert. In nfnetlink_queue wurde die Unterst\u00fctzung f\u00fcr das SCTP-Protokoll verbessert.\n<li class=\"l\"> Im API ethtool wurde die Unterst\u00fctzung f\u00fcr die Bindung mehrerer Netzwerkkarten an eine einzige Netzwerkschnittstelle hinzugef\u00fcgt.                      <\/ul>\n<li class=\"l\"> <b>Ausr\u00fcstung<\/b>\n<ul>\n<li class=\"l\"> Im Treiber AMDGPU wurde die Arbeit zur Unterst\u00fctzung der GPU AMD RDNA4 (&#171;GFX12&#187;) fortgesetzt. Die M\u00f6glichkeit, einzelne Warteschlangen von Aufgaben zur\u00fcckzusetzen, ohne den gesamten GPU-Zustand zur\u00fcckzusetzen, wurde hinzugef\u00fcgt.\n<li class=\"l\"> Die Arbeit am DRM-Treiber (Direct Rendering Manager) Xe f\u00fcr GPUs auf der Intel Xe Architektur, die in Intel Arc Grafikkarten und integrierter Grafik verwendet wird, wurde fortgesetzt, beginnend mit den Tiger Lake Prozessoren. Die neue Version unterst\u00fctzt GPUs basierend auf den Mikroarchitekturen Battlemage und Lunar Lake. Die Unterst\u00fctzung von CCS-Modifikatoren (Color Control Surface) Xe2 zur Steuerung der Parameter integrierter und diskreter GPUs wurde vorgestellt.\n<li class=\"l\"> Im Treiber i915 wurde die M\u00f6glichkeit implementiert, Informationen \u00fcber die Drehgeschwindigkeit des L\u00fcfters \u00fcber das HWMON- oder sysfs-Interface (Attribut &#171;fan1_input&#187;) auszugeben. Der Parameter &#171;i915.modeset&#187; wurde als veraltet erkl\u00e4rt, stattdessen sollte der Parameter &#171;i915.nomodeset&#187; verwendet werden.\n<li class=\"l\"> Im DRM-Treiber msm (GPU Qualcomm Adreno) wurde die Unterst\u00fctzung f\u00fcr die GPUs A615, A306 und A621 hinzugef\u00fcgt.\n<li class=\"l\"> Im Nouveau Treiber wurden interne Strukturen \u00fcberarbeitet und bereinigt.\n<li class=\"l\"> Im Treiber intel_pstate, der die Energieverbrauchsparameter (P-State) auf Systemen mit Intel Prozessoren verwaltet, wurde die Unterst\u00fctzung f\u00fcr hybride Systeme mit asymmetrischen (unterschiedlichen) CPUs sowie die Unterst\u00fctzung f\u00fcr das Energiemanagement von Prozessoren auf Basis der Mikroarchitekturen Granite Rapids und Sierra Forest hinzugef\u00fcgt. Im Treiber intel_idle wurde Unterst\u00fctzung f\u00fcr die CPU Xeon Granite Rapids hinzugef\u00fcgt. Im Treiber intel_rapl wurde das Erkennen von Prozessen der AMD-Familie 1Ah und Intel Prozessoren ArrowLake-U sichergestellt.\n<li class=\"l\"> Die \u00c4nderungen zur Unterst\u00fctzung des ARM SoC Snapdragon X Elite, der einen eigenen 12-Kern-CPU Qualcomm Oryon und GPU Qualcomm Adreno verwendet, wurden fortgesetzt. Der Chip ist f\u00fcr den Einsatz in Laptops und PCs ausgelegt und \u00fcbertrifft in vielen Leistungsbenchmarks die Chips Apple M3 und Intel Core Ultra 155H.\n<li class=\"l\"> Die Unterst\u00fctzung f\u00fcr ARM-Plattformen, SoCs und Ger\u00e4te wurde hinzugef\u00fcgt: Broadcom bcm2712 (Raspberry Pi 5), Renesas R9A09G057 (RZ\/V2H), Qualcomm Snapdragon 414 (MSM8929), Lenovo ThinkPad T14s Gen 6, Lenovo A6000\/A6010, Surface Laptop 7, Anbernic RG35XXSP, Firefly Core-PX30-JD4, Lunzn Fastrhino R68S, Aspeed Riser, AGX Orin, Rockchip Qnap-TS433, Huashan Pi, Meta Catalina, BeagleY-AI, NanoPi R2S Plus, ExynosAuto v920, SOPHGO SG2002, Qualcomm IPQ5332, LG G4 (h815), Cool Pi CM5 GenBook, Anbernic RG35XXSP, GameForce Ace, IBM P11, Kontron i.MX93 OSM-S, NanoPC-T6.\n<li class=\"l\"> Die Unterst\u00fctzung f\u00fcr Displays Anbernic RG28XX, On Tat Industrial Company KD50G21-40NT-A1, Innolux G070ACE-LH3, Melfas lmfbx101117480, Densitron DMT028VGHMCMI-1D, Microchip AC40T08A, AOU B116XTN02.3, AUO B116XAN06.1, AOU B116XAT04.1, BOE TV101WUM-LL2, BOE NV140WUM-N41, BOE NV133WUM-N63, BOE NV116WHM-A4D, BOE NE140WUM-N6G, CMN N116BCA-EA2, CMN N116BCP-EA2, CSW MNB601LS1-4, Starry er88577 wurde hinzugef\u00fcgt.\n<li class=\"l\"> Im Audiosystem wurde die Unterst\u00fctzung f\u00fcr die Chips und Codecs RME Digiface USB, AMD ACP 7.1, Mediatek MT6367, MT8365, Realtek RTL1320 und C-Media CM9825 hinzugef\u00fcgt. Die alten Audio-Treiber f\u00fcr ASoC Intel wurden als veraltet erkl\u00e4rt, stattdessen wird empfohlen, die AVS-Treiber zu verwenden. Viele Verbesserungen wurden im SoundWire-Treiber vorgenommen.      <\/ul>\n<\/ul>\n<p>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=62243\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u041b\u0438\u043d\u0443\u0441 \u0422\u043e\u0440\u0432\u0430\u043b\u044c\u0434\u0441 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0440\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux 6.12. \u0421\u0440\u0435\u0434\u0438 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0437\u0430\u043c\u0435\u0442\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439: \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f Realtime-\u0440\u0435\u0436\u0438\u043c\u0430, sched_ext \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u0432 CPU \u0447\u0435\u0440\u0435\u0437 eBPF, \u0432\u044b\u0432\u043e\u0434 QR-\u043a\u043e\u0434\u0430 \u043f\u0440\u0438 \u0430\u0432\u0430\u0440\u0438\u0439\u043d\u044b\u0445 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f\u0445, \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c Device Memory TCP, \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 SCHED_DEADLINE server, \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u0437\u0430\u0434\u0430\u0447 EEVDF, \u043c\u043e\u0434\u0443\u043b\u044c IPE \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0438\u0442\u0438\u043a \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u0446\u0435\u043b\u043e\u0441\u0442\u043d\u043e\u0441\u0442\u0438. \u0412 \u043d\u043e\u0432\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u043f\u0440\u0438\u043d\u044f\u0442\u043e 14607 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-120593","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u041b\u0438\u043d\u0443\u0441 \u0422\u043e\u0440\u0432\u0430\u043b\u044c\u0434\u0441 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0440\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux 6.12.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/news\/reliz-yadra-linux-6-12-s-podderzhkoj-realtime-rezhima\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0420\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux 6.12 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 Realtime-\u0440\u0435\u0436\u0438\u043c\u0430 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u041b\u0438\u043d\u0443\u0441 \u0422\u043e\u0440\u0432\u0430\u043b\u044c\u0434\u0441 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0440\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux 6.12.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/news\/reliz-yadra-linux-6-12-s-podderzhkoj-realtime-rezhima\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2024-11-18T11:09:07+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2024-11-18T11:09:07+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Ver\u00f6ffentlichung des Kernels Linux 6.12 mit Unterst\u00fctzung f\u00fcr den Realtime-Modus | ProHoster","description":"Nach zwei Monaten der Entwicklung stellte Linus Torvalds die Ver\u00f6ffentlichung des Kernels Linux 6.12 vor.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/news\/reliz-yadra-linux-6-12-s-podderzhkoj-realtime-rezhima","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0420\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux 6.12 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 Realtime-\u0440\u0435\u0436\u0438\u043c\u0430 | ProHoster","og:description":"\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u041b\u0438\u043d\u0443\u0441 \u0422\u043e\u0440\u0432\u0430\u043b\u044c\u0434\u0441 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0440\u0435\u043b\u0438\u0437 \u044f\u0434\u0440\u0430 Linux 6.12.","og:url":"https:\/\/prohoster.info\/de\/blog\/news\/reliz-yadra-linux-6-12-s-podderzhkoj-realtime-rezhima","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2024-11-18T11:09:07+00:00","article:modified_time":"2024-11-18T11:09:07+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"120593","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 08:06:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-01-23 08:06:19","updated":"2026-01-23 08:06:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/120593","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=120593"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/120593\/revisions"}],"predecessor-version":[{"id":173076,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/120593\/revisions\/173076"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=120593"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=120593"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=120593"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}