Aus Linux-Magazin 12/2020

Kernel 5.9: RISC-V wird Tickless, Lizenzänderung, FSGSBASE-Support

© busandrone, 123RF

Das Herbst-Update für den Linux-Kernel schließt eine rechtliche Lücke für Modul-Trickser, erlaubt den Einsatz von RISC-V im Tickless-Modus und unterstützt nach fünf Jahren Intels zweischneidiges FSGSBASE, weil es der Performance hilft.

Linux 5.9-rc1 sei “normaler” als die Vorgängerversion, schrieb Linus Torvalds Mitte August bei der Veröffentlichung des ersten Release Candidate für den neuen Kernel 5.9 [1]. Dennoch gab es am Ende wegen einiger Network-Fixes mehr zu tun, als Torvalds lieb war [2]. Seit dem 11. Oktober 2020 steht der Kernel 5.9 aber zum Download bereit, wahlweise auf Github [3] oder auf Kernel.org [4].

Modulmisere

Die Neuerungen beschränken sich dabei nicht allein auf die Technik, sondern wirken sich auch lizenzrechtlich aus. Das gilt etwa für die Patches von Christoph Hellwig [5], die eine rechtliche Lücke im Umgang mit Kernel-Modulen stopften. Wie Hellwig schrieb [6], gab es seit dem ersten Tag einen Bug beim Auflösen der GPL-Module. Das ermöglichte es für Module vorzugeben, sie seien GPL-lizenziert, und GPL-Exports zu verwenden, selbst wenn sie eigentlich von Symbolen in Nicht-GPL-Modulen abhingen. Über ein sogenanntes Shim-Modul ließen sich die GPL-Exports umgehen – diese Lücke ist nun geschlossen.

Anlass zur Nachbesserung lieferte offenbar der Versuch eines Facebook-Entwicklers. Er wollte Patches für ein Interface unterbringen, über das das NetGPU-Core-Modul und Nvidias proprietärer Kernel-Treiber miteinander kommunizieren. Das kam nicht gut an [7], auch wenn der Entwickler betonte, er wolle nicht trollen.

Im Kryptobereich kennt der Kernel einen neuen Krypto-Treiber (»sa2ul«) und drei neue Hardware-RNG-Treiber (»BA431«, »JZ4780«, »X1000«). Hinzu kommen Device-Mapper-Updates von Mike Snitzer [8]. Die Device-Mapper-Verschlüsselung unterstützt nun auch Zoned Block Devices. Dank »DM_CRYPT_NO_WRITE_WORKQUEUE« und dem neuen optionalen Feature »DM_CRYPT_WRITE_INLINE« wartet der Schreibprozess, bis das Verschlüsseln komplett ist. Das erlaubt es, eine Schreibordnung zu etablieren, die Zoned Block Devices benötigen.

Zonenrandgebiet

Apropos Zoned Block Devices: Im Zoned-Storage-Modell für NVMe-Datenträger lassen sich üblicherweise alle Sektoren in einer Zone beschreiben. Bei SSDs, die den Zoned-Namespaces-Standard (ZNS) unterstützen, besteht hingegen die Möglichkeit, ausgewählte Zonen beschreibbar zu machen. Das steigert in bestimmten Anwendungsfällen die Performance und erlaubt es Apps, ihre Daten gezielt in Zonen zu platzieren.

Linux bringt für Zoned Block Devices ein eigenes Dateisystem namens ZoneFS [9] mit. Mit Kernel 5.9 erhält ZoneFS Support für Zone Capacity [10] und verwendet dabei das »zone capacity field« anstelle von »blk_zone«, um die maximalen Inode-Größen und -Blöcke in ZoneFS zu ermitteln.

Von Eric Biggers [11] kommen Aktualisierungen für FSCrypt, allen voran Support für Inline-Verschlüsselung über das »blk-crypto«-Framework. Gibt der Admin den Dateisystemen Ext4 und F2FS die Mount-Option »-o inlinecrypt« mit auf den Weg, ver- und entschlüsselt »blk-crypto« die Dateien und verwendet dafür nicht direkt das Crypto-API. Das Modell macht dabei Gebrauch von der Inline-Encryption-Hardware, die in Universal Flash Storage (UFS) oder eMMC-Host-Controllern der meisten mobilen SoCs steckt.

Direktes Lesen und Schreiben in verschlüsselten Dateien wäre mit »blk-crypto« ebenfalls möglich, wird aber noch diskutiert und ist daher nicht Teil der Patches. Getestet haben die Entwickler die Inline-Verschlüsselung auf passender Hardware von Qualcomm und Mediatek.

Änderungen gibt es daneben auch bei den Prozessoren. Kernel 5.9 unterstützt unter anderem Intels AI-Prozessor “Gaudi” besser. Dessen Konfiguration braucht laut Greg Kroah-Hartman [12] keinen Rate Limiter mehr, den partiellen SoC-Reset haben die Entwickler ebenfalls entfernt. Die Controller-Konfiguration für PCI-Express wurde refaktoriert, damit sich der Code zugleich für aktuelle und künftige ASICs nutzen lässt.

Um das Steuern separat arbeitender Prozessoren kümmert sich im Kernel das Remote Processor Framework. Das führt in Kernel 5.9 einen “Entkoppelt”-Zustand für entfernte Prozessoren ein, die der Boot-Prozess von Linux überdies auf einem der Prozessoren einbeziehen soll. Konkret klappt das nun laut Björn Andersson [13] für die Mikrocontroller-Plattform STM32.

Daneben gibt es eine neue Benutzerschnittstelle, über die sich der Stopp-Prozess für einen Remote Processor an das Beenden eines Userspace-Prozesses knüpfen lässt. Das kann nötig sein, wenn die Firmware des entfernten Prozessors von Ressourcen und Operationen dieses Prozesses abhängt.

Architektonisches

Neues gibt es auch bei den vom Kernel unterstützten Plattformen. Laut Palmer Dabbelt [14] lässt sich nun für RISC-V über »NO_HZ_FULL« im Echtzeitbetrieb ein Tickless-System aktivieren, bei dem der lokale Timer die CPU nicht unterbrechen darf. Daneben gibt es einen »JUMP_LABEL«-Support für Test-Szenarien.

Andere Architekturen verlassen den Kernel wieder, weil sie nicht mehr zum Einsatz kommen. So erging es diesmal der chinesischen 32-Bit-RISC-Architektur Unicore32 [15], die bereits länger nicht mehr betreut wird. Die dazugehörige Toolchain ist offenbar verschwunden, obendrein tauchten die vom Ex-Maintainer vor zwei Jahren versprochenen Compiler-Quellen nie auf. Daher fliegt der Code nun aus dem Kernel.

Unterstützung für drei neue ARM-SoCs (32 und 64 Bit) zählt der Pull Request von Arnd Bergmann [16] auf. Daniel Palmer liefert ersten Support für zwei 32-Bit-Kamera-Chips (Cortex-A7) von MStar, einem taiwanischen SoC-Hersteller, den Mediatek 2012 aufgekauft hat. Weiterhin unterstützt der Kernel dank Lars Povlsen die Sparx5-Familie von Ethernet-Switch-Chips, in denen Cortex-A53-Kerne mit 64 Bit werkeln. Intels neuen “Keem-Bay”-SoC für maschinelles Sehen unterstützt Linux 5.9 ebenfalls.

Von den Entwicklern um Bergmann stammen zudem Device Trees [17] für drei neue SoCs in existierenden Produktfamilien. Aus Amazons Annapurna Labs kommt das Alpine v3, das auf einem 16-kernigen Cortex-A72 basiert. Qualcomm schickt die Snapdragon-SDM630-Plattform ins Rennen, die sich für Mobiltelefone eignet (Xperia 10, 10 Plus, XA2 und weitere) und mit einem Cortex-A53- oder einem Kryo-260-Chip läuft. Der RZ/G2H schließlich ist das Topmodell aus Renesas RZ/G-Familie.

Nicht zu vergessen ist Allwinners Sunxi-Familie, bei der es ein neues Board für einen existierenden SoC gibt. Dabei handelt es sich um Revision 1.2 des auch in Deutschland häufiger erwähnten PinePhone von Pine64 (Abbildung 1), eines günstigen Smartphones, das ohne Android auskommt.

Abbildung 1: Das PinePhone (auf dem hier Ubuntu Touch läuft) gehört zu den Geräten, die vom neuen Kernel 5.9 profitieren. Quelle: Avisando, Wikimedia.org, CC-BY-SA 4.0

Abbildung 1: Das PinePhone (auf dem hier Ubuntu Touch läuft) gehört zu den Geräten, die vom neuen Kernel 5.9 profitieren. Quelle: Avisando, Wikimedia.org, CC-BY-SA 4.0

Außerdem gibt es wieder neue Device Trees für Settop-Boxen, Chromebooks, SBCs und Android-Tablets. Bei Letzteren ist interessant, dass das Google Nexus 7 von Asus und das Iconia Tab A500 von Acer, die beide von 2012 stammen, nun wieder mit einem Mainline-Kernel laufen. Möglich macht das PostmarketOS [18]. Auch bei den ARM-SoC-Treibern gibt es Neues [19]: So unterstützt der Turris-Mox-Firmware-Treiber nun signierte Blobs.

FSGSBASE

Boot-Updates von Ingo Molnár sorgen dafür, dass die x86-Architektur nun auch mit Kernel- und Initrd-Images zurechtkommt, die Zstd zum Komprimieren verwenden. Zstd hat einen sehr schnellen Dekompressor, packt die Daten dennoch zugleich noch besser als Gzip.

Bei den x86-CPUs [20] gibt es Support für weitere Intel-Modelle, Split-Lock-Debugging ist auf weiteren CPUs möglich. Zudem haben die Entwickler die Logik im Code zum Schutz gegen die Spectre-v2-Lücke etwas vereinfacht.

Darüber hinaus dürfen sich die Nutzer von x86-Intel-Prozessoren über Support für FSGSBASE freuen. Der Code kommt fünf Jahre nach dem ersten RFC zum Thema und ist nun laut Thomas Gleixner [21] überhaupt erst in einem pfleglichen Zustand und einsatzfähig.

Gleixner erwähnt in diesem Zusammenhang Sasha Levin: Der hatte entdeckt, dass ausgerechnet Intels Sicherheitsenklaven (SGX, Software Guard Extensions) quasi hinter dem Rücken des Kernels Module laden, die FSGSBASE aktivieren und damit einen nicht privilegierten Root-Zugriff erlauben. Andererseits beschleunigen die FSGSBASE-Instruktionen Kontext-Switches signifikant und erlauben es dem Userspace, ohne Kernel-Interaktion GSBASE zu schreiben, was wohl das Festhalten an ihnen erklärt.

Updates gibt es auch für Fanotify [22]. Einerseits erzeugt Fsnotify nun weniger Overhead, wenn es nicht in Gebrauch ist; andererseits hat ein Entwickler den Fanotify-Events Namen spendiert. Das erlaubt nun ein effektives Monitoring des kompletten Dateisystems, das etwa auch Änderungen auf einem Mirror im Auge behält.

Bei den Perf-Tools kündigen sich ebenfalls neue Features an [23]. Laut Arnaldo Carvalho de Melo überwachen jetzt Control File Descriptors die Arbeit von »perf stat« und »perf record«. Auf ein Kommando der erwähnten Control File Descriptors hin lassen sich Events starten, die zwar eingerichtet, aber sonst inaktiv sind. Nützlich kann das laut de Melo für Intels Vtune-Profiler sein. Zudem erhält »perf bench« rudimentäre Benchmarks für Syscalls und Find-next-Bit-Aktionen.

Um echte asynchrone Pufferlesevorgänge zu erreichen, bringt Jens Axboe [24] Änderungen am »io_uring«-Code ein. Eric Biederman [25] hingegen widmete sich »exec« und möglichen Verbesserungen daran. Im Entwicklungszyklus für Kernel 5.7 sei er auf Probleme mit »exec« gestoßen, die sich nicht ohne Weiteres beheben ließen. Er habe nun unter anderem »kernel_execve« implementiert, lässt er wissen, was den Umgang mit Kernel-Threads erleichtere.

BPF und Syscalls

Neu in BPF ist ein BPF-Iterator für Map-Elemente [26]. Programme in derselben Cgroup dürfen nun ihre lokale »CPU_STORAGE«-Map teilen. Um Letzteres umzusetzen  [27], änderten die Entwickler kurzerhand die Semantik der »CGOUP_STORAGE«-Map-Typen. Anstatt jeden Storage mit einer einzigen Verknüpfung zu verbinden, teilt der Code den Storage nun über verschiedene Verknüpfungen mit derselben Cgroup. Diese zarten Bande halten bis zur Auflösung von Map oder Cgroup.

Daneben bietet Linux 5.9 unter anderem neue Syscalls und Mechanismen, die im Container-Bereich helfen. So liefert Christian Brauner die fehlenden Teile nach [28], um Time Namespaces mit »pidfds« zu verkuppeln. Er reichte zudem Code ein [29] der unprivilegierte Checkpoint- und Restore-Aktionen für Prozesse erlaubt. Die Arbeit daran laufe bereits seit einiger Zeit, kommentiert er, der neue Code bringe sie lediglich durchs Ziel.

Use Cases für das Feature nennt Brauner auch: Die JVM-Entwickler hätten Checkpoint und Restore in die Java-VM integriert, um die Startzeit zu verkürzen. Auch im High-Performance-Computing (nicht privilegierte Prozesse) und beim Migrieren von Containern als normaler Nutzer erweise sich der Mechanismus als nützlich. Zugleich erfordern Checkpoint und Restore eine neue Capability namens »CAP_CHECKPOINT_RESTORE« sowie einige Änderungen an den Zugriffsrechten.

Zu guter Letzt stellt Brauner den Systemaufruf »close_range()« [30] vor, der effizient eine Reihe von oder alle Dateideskriptoren im Angesicht eines Tasks schließt. Dazu kommt ein von Linus Torvalds vorgeschlagenes »CLOSE_RANGE_UNSHARE«-Flag zum Einsatz.

Dateisysteme

Wie immer gingen die Kernel-Neuerungen auch an den Dateisystemen nicht ganz vorbei. NFS erhält über das NFSv4.2-Protokoll Unterstützung für Extended Attributes für User (»user xattrs« [31]). Der NFS-Server (»nfsd«) unterstützt die Extended Attributes für User ebenfalls. Anwendungen können die Kombination aus »readdir()« und »statx()« nun beschleunigen, indem sie den Sync für Statx ausschalten. Auf Server-Seite [32] haben die Nfsd-Entwickler zudem weitere unnütze Delegation Recalls entfernt.

In XFS [33] funktioniert Inode-Flushing nun vollständig asynchron. Die Entwickler haben einen alten Bug im Quota-Code behoben, der zur Folge hatte, dass XFS Soft-Limit-Warnungen und Inode-Limits nicht sauber verfolgte. Außerdem wurden die Reflink-Kontrollschleifen auf Effizienz getrimmt und das Verhalten von DAX unter Ext4 und XFS weiter stabilisiert.

Laut Ilja Drjomow [34] hat Xiubo Li in Sachen Ceph die Arbeit an den Client-Dateisystemmetriken beendet. Ceph sendet die Metriken nun sekündlich an alle verfügbaren Metadata Server (MDS).

David Sterba [35] fielen für Btrfs diesmal keine großen neuen Features ein, es gab eher kleine Verbesserungen und Reparaturen. Ein Highlight ist aber womöglich die parallele Fsync-Performance, zu der Sterba in seinem Pull-Request auch einige Zahlen lieferte. Suse-Mitarbeiter Filipe Manana reichte dazu einen Patch ein, der Btrfs veranlassen soll, bei Page Releases nicht das volle Sync-Flag zu setzen. Das sei nicht nötig, meint Manana, und der Wegfall bringe Performance-Gewinne. Zum Beweis liefert er ein kleines Testskript mit [36].

Am Draht und drahtlos

Im Netzwerkbereich [37] erhalten die NICs von Atlantic neue Features, darunter 64-Bit-Operationen und IPv6-Support für TCP LSO sowie UDP GSO. Der »mac80211«-Treiber behandelt nun die SAE-Status-Codes für die WPA-3-Authentifizierung korrekt und Beacon-Filter besser als zuvor. Bei den Drahtlos-Patches von Kalle Valo gelten die Microchip-»wilc1000«-Treiber als größte Neuerung, die den Staging-Bereich verlassen. Daneben erhält »ath11k« Support für 6 GHz und Spectral Scans, während der »rtw88«-Treiber neuerdings RTL8821CE-WLAN-Chips von Realtek unterstützt.

Sonstiges

Auch Besitzer ganz gewöhnlicher Consumer-Hardware dürfen sich an einigen Stellen über Updates freuen. So aktualisierte Jiri Kosina die Benutzerschnittstellen. Das Testen von Eingabegeräten klappt nun schneller, außerdem gibt es Support für das Thinkpad-10-Ultrabook-Keyboard.

Im Virtualisierungsbereich profitiert Xen [38] von Kernel 5.9. Der Hypervisor läuft nun auch auf dem Raspberry Pi 4, weil der anders als die Vorgänger einen standardisierten GIC-400-Interrupt-Controller verwendet, der Virtualisierung unterstützt.

Neue Treiber für das Hardware-Monitoring sind ebenfalls mit von der Partie. Dazu zählen einer für die Temperatursensoren des Sparx5-SoC sowie einer für den Corsair Commandor Pro. Dieses Gerät steuert bestimmte Hardware in Gamer-PCs, etwa die LEDs.

Apropos LEDs: Pavel Machek hat sich Gedanken über RGB-LEDs gemacht [39], die im Gegensatz zu Multicolor-LEDs das volle Spektrum an Farben abdecken. Geht es nach ihm, sollte der Kernel beide LED-Varianten unterstützen. Erster Code dafür ist im Kernel 5.9 gelandet.

Der Treiber für das Elan-Touchpad unterstützt neuere Touchpads mit höherer Auflösung. Auch am Thunderbolt-Support gibt es wieder Optimierungen. Die betreffen unter anderem das Native Host Interface, das Tunneling und das Bandbreitenmanagement. Ein neuer Upgrade-Mechanismus für Geräte-Firmware authentifiziert NVM-Images selbst dann, wenn das Gerät nicht verbunden ist.

Malen nach Zahlen

Bleiben noch die Grafikkarten-Updates. Von Dave Airlie [40] floss ein Pull-Request ein, der einen neuen DisplayPort-Treiber für Xilinx ZynqMP anbietet, zwei neue AMD-GPUs (“Sienna Cichlid” und “Navy Flounder”) unterstützt und ersten Support für “Rocket Lake” im i915-Treiber für Intel-Grafik liefert. Auch die Arbeit am DG1-Chip, der Intels neue XE-Grafikarchitektur unterstützen soll, hat im Kernel bereits begonnen.

Nouveau erhält CRC-Support über neue eingeführte Vblank-Worker. Zudem unterstützt es nun ab der “Pascal”-Serie der Nvidia-Karten 2 MiB große Systemspeicher-Pages. Zu guter Letzt gibt es vorbereitende Patches für Tegra, um Video-Capture-Support für externe Kameramodule zu ermöglichen.

Infos

  1. Torvalds’ Ankündigung von Linux 5.9-rc1: https://lkml.org/lkml/2020/8/16/221

  2. Linux-5.9-Ankündigung: https://lkml.org/lkml/2020/10/11/275

  3. Linux auf Github: https://github.com/torvalds/linux/releases

  4. Linux auf Kernel.org: https://www.kernel.org

  5. Patches von Christoph Hellwig: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0fd9cc6b0c72245375520ffc8d97ce5857b63b94

  6. Bug in der GPL-Auflösung: https://lkml.org/lkml/2020/7/30/58

  7. Streit um GPL-Module: https://lore.kernel.org/netdev/6376CA34-BC6F-45DE-9FFD-7E32664C7569@fb.com/T/#md514322fdfa212afe9f1d3eb4e5f7eaefece36eb

  8. Device-Mapper-Updates: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2f12d44085dabf5fa5779ff0bb0aaa1b2cc768cb

  9. ZoneFS: https://www.kernel.org/doc/html/latest/filesystems/zonefs.html

  10. Zone-Capacity-Commit: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e3c3155bc95ab6a7b21ac40418bf80bedb204949

  11. FSCrypt-Updates: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=690b25675f5c9c082cb1b902e6d21dd956754e7e

  12. Support für “Gaudi”: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=860e73b49cd933c708e3e1e1e07cdea81b6acd1c

  13. Entkoppelte Remote-Prozessoren auf STM32: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=617e7481d7bfb807273d0f1b1983de032a725220

  14. RISC-V-Updates: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=dbf83817315d9ce93b3e5b1c83a167f537245bd8

  15. Ausrangiertes Unicore32: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=05119217a9bd199c4b8b12c01f86df09108b109b

  16. Drei neue ARM-SoCs: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d4db4e553249eda9016fab2e363c26e52c47926f

  17. Neue SoC-Device-Trees: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2f3fbfdaf77f3ac417d0511fac221f76af79f6fc

  18. PostmarketOS: https://postmarketos.org

  19. ARM-SoC-Treiber: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=822ef14e9dc73079c646d33aa77e2ac42361b39e

  20. x86-CPUs: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=335ad94c218e96ef12f56d93eadc884731aa23b1

  21. FSGSBASE: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4da9f3302615f4191814f826054846bf843e24fa

  22. Fanotify-Updates: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=eb65405eb6860935d54b8ba90a5e231e07378be1

  23. Perf-Neuerungen: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=00e4db51259a5f936fec1424b884f029479d3981

  24. Async-I/O für Puffer: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=cdc8fcb49905c0b67e355e027cb462ee168ffaa3

  25. »kernel_execve«: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3950e975431bc914f7e81b8f2a2dbdf2064acb0f

  26. BPF-Iterator: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2e7199bd773bff3220184d071ed9c9cd34950e51

  27. CPU-Storage-Map teilen: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=36f72484820abcaede242a53fde965217e718b2e

  28. Time Namespace plus Pidfds: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0a72761b27fe3b10e3f336bf2f2aa22635504cdd

  29. Unprivilegiertes Checkpoint & Restore: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=74858abbb1032222f922487fd1a24513bbed80f9

  30. Systemaufruf »close_range()«: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4f30a60aa78410496e5ffe632a371c00f0d83a8d

  31. Extended Attributes für User: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=37711e5e2325535bf094bdc0a66790d659b52d5b

  32. Nfsd-Updates: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7a6b60441f02f6e22e7c0936ef16fa3f51832a48

  33. XFS-Aktualisierungen: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5631c5e0eb9035d92ceb20fcd9cdb7779a3f5cc7

  34. Ceph-Pull-Request: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7c2a69f610e64c8dec6a06a66e721f4ce1dd783a

  35. Btrfs-Kernel-Updates: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6dec9f406c1f2de6d750de0fc9d19872d9c4bf0d

  36. Btrfs-Performance-Messung: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5e548b32018d96c377fda4bdac2bf511a448ca67

  37. WLAN- und Netzwerk-Updates: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4f1b4da541db2bc99d5783ebf2b60c1563eb9077

  38. Xen auf dem RasPi 4: https://www.linux.com/featured/xen-on-raspberry-pi-4-adventures/

  39. LED-Pläne: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e4a7b2dc35d9582c253cf5e6d6c3605aabc7284d

  40. Grafik-Updates: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8186749621ed6b8fc42644c399e8c755a2b6f630

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 4 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben