Linux 5.0 ist da: Geschwindigkeit zurückerobern und moderner speichern

Der endgültige Umstieg auf die modernere Block-Layer-Infrastruktur zwingt Storage-Admins zum Umdenken. Gamer dürfen sich über Support für AMDs Freesync freuen.

In Pocket speichern vorlesen Druckansicht 320 Kommentare lesen
Kernel-Log: Linux 5.0: Ruckelfrei zocken, schnellerer Datenaustausch
Lesezeit: 22 Min.
Von
  • Thorsten Leemhuis
Inhaltsverzeichnis

Zum Start der ersten vollen Märzwoche hat Linus Torvalds den Linux-Kernel 5.0 freigegeben. Er bringt etwas weniger Änderungen als zuletzt üblich – trotzdem enthält auch er wieder eine Fülle neuer Features sowie viele neue und signifikant verbesserte Treiber.

Bei der Freigabe stellte Torvalds abermals klar, dass der Sprung von 4.x auf 5.0 keine tiefere Bedeutung hat und erfolgt, weil ihm die „Finger und Zehen zum Zählen ausgehen“.

(Bild: Linus Torvalds in der Freigabemail zu Linux 5.0 )

  • Die auffälligste Neuerung der neuen Linux-Version ist der Sprung bei der Versionsnummer von 4.20 auf 5.0. Das hat aber keine tiefere Bedeutung: Die Änderungen sind nicht zahlreicher oder bedeutender als sonst; auch wurden nicht mehr alte Zöpfe abgeschnitten als üblich.
  • Durch Optimierungen soll Linux beim Versenden von UDP-Paketen und Einsatz des Netzwerk-Schnellverarbeitungswegs XDP (Express Data Path) wieder nahezu die Performance erreichen, die es vor den Spectre-v2-Gegenmaßnahmen erzielt hat.
  • Für viel Aufsehen sorgte eine Änderung, die zwei von ZFS On Linux (ZOL) verwendete Funktionen entfernt hat und dieses so kaputt gemacht hat. Die ZOL-Entwickler haben das Problem aber mittlerweile im Entwicklerzweig umschifft.
  • Die Linux-Entwickler geben zwei essenzielle Funktionen für Heterogeneous Memory Management (HMM) nun anders frei. Die Kernel-Entwickler werfen damit proprietären Treibern gezielt Knüppel zwischen die Beine. Damit wollen sie vor allem Nvidia treffen.
  • Der für AMDs moderne Grafikprozessoren zuständige Kernel-Grafiktreiber Amdgpu beherrscht jetzt Freesync, das durch dynamische Anpassung der Bildwiederholrate für flüssige 3D-Darstellung sorgt.
  • Eine neue Schriftart verhilft Textkonsolen auf HiDPI-Displays zu einer adäquaten Größe; für Mainstream-Distributionen ist das aber eher uninteressant, schließlich kann man genau die Schriftart dort schon länger zur Laufzeit einstellen.
Das Kernel-Log
  • Linux unterstützt jetzt den jüngst von Google vorgestellten Verschlüsselungsalgorithmus Adiantum, der bei günstigen Android-Geräten zum Einsatz kommen soll.
  • Linux beherrscht nun auch den in RFC 6986 definierten Hash-Algorithmus Streebog, der zu den russischen Standardalgorithmen für Kryptografie ("GOST Algorithmen") zählt.
  • Die Kernel-Entwickler haben den älteren der beiden Block-Layer-Ansätze rausgeworfen; damit verschwinden auch I/O-Scheduler wie Deadline und CFQ, die viele Admins vom Performance-Tuning kennen.
  • Auf Btrfs-Dateisystemen lassen sich jetzt Auslagerungsdateien ablegen.
  • Im Speicherbereich von Programmen liegende Daten kann Linux jetzt via UDP übers Netz versenden, ohne sie zuerst im Arbeitsspeicher duplizieren zu müssen.
  • Die Sicherheitsfunktion Seccomp (Secure Computing) kann jetzt ein Userspace-Programm zurate ziehen, um zu entscheiden, ob eine Tätigkeit eines anderen Programms erlaubt oder verboten wird.
  • Linux 5.0 bringt Support für eine ganze Reihe weiterer Single-Board-Computer (SBC) und den darauf verwendenden System-on-a-Chips (SoCs).
  • Die Entwickler haben den Hardware-Support wieder signifikant erweitert, denn sie haben Dutzende neuer Treiber integriert und Hunderte existierende verbessert. Dadurch unterstützt der neue Kernel nun etwa die Touch-Funktion des 7-Zoll-Touch-Displays für den Raspberry Pi, das raspberrypi.org vertreibt.
  • Das neue Energy Aware Scheduling (EAS) soll helfen, den Energieverbrauch bei Prozessoren mit ARMs big.LITTLE zu senken, in denen CPU-Kerne mit unterschiedlichem Leistungspotenzial und Energiehunger stecken.

Die folgenden Artikelseiten liefern Details zu diesen und zahlreichen weiteren Neuerungen von Linux 5.0.

Der Sprung von 4.x auf 5.0 erfolgte, weil Linus Torvalds die „Finger und Zehen zum Zählen ausgehen“.

(Bild: lore.kernel.org – Freigabemail zur ersten Vorabversion von Linux 5.0)

Eine der meist diskutierten Neuerungen des nächsten Linux-Kernels ist nur eine kosmetische: Der Nachfolger von Linux 4.20 trägt nicht die Versionsnummer 4.21, sondern die 5.0. Zu sagen hat der Sprung nichts: Die Änderungen sind nicht zahlreicher oder bedeutender als sonst; auch wurden nicht mehr alte Zöpfe abgeschnitten als üblich. Denn wie zuvor bei den Sprüngen von 2.6.39 auf 3.0 und 3.19 auf 4.0 erfolgte auch der jetzige nur, weil Torvalds die zweite Zahl der Versionsnummer zu groß wurde. Oder wie er sagte: "Mir gehen die Finger und Zehen zum Zählen aus."

Die Kernelentwickler arbeiten an verschiedenen Fronten, um den Overhead der Spectre-v2-Schutztechnik Retpoline zu reduzieren.

(Bild: git.kernel.org – bedf3b332034 )

Zu den wichtigsten Neuerungen von Linux 5.0 zählen Optimierungen, durch die Linux 5.0 beim Versenden von UDP-Paketen und Einsatz des Netzwerk-Schnellverarbeitungswegs XDP (Express Data Path) wieder nahezu die Performance erreichen soll, die Linux Ende 2017 erzielt hat. Das ist einigen Änderungen am DMA- und Netzwerkcode (u. a. 1, 2, 3, 4, 5) zu verdanken, die den Overhead des bei Linux 4.15 eingeführten Retpoline erheblich reduzieren – der in Distributionskerneln typischerweise aktiven Technik also, die vor der Anfang 2018 bekannt gewordenen Prozessor-Sicherheitslücke Spectre v2 zu schützen versucht.

Die Linux-Entwickler diskutieren derweil mit "Static Calls" und "Optpolines" (zuvor: Relpolines) zwei weitere Ansätze, um die Einbußen von Retpoline generell zu reduzieren. Noch ist allerdings ungewiss, ob sie die Praxisreife erreichen.

Für viel Aufsehen sorgte eine Änderung, die zwei von ZFS On Linux (ZOL) verwendete Funktionen entfernt hat und dieses so kaputt gemacht hat. Diese Funktionen waren schon vor Jahren bei größeren Umbauarbeiten der FPU-Infrastruktur abgekündigt worden, weil dabei ein moderneres Interface geschaffen wurde.

ZFS on Linux funktioniert auch mit Linux 5.0, belastet dort den Hauptprozessor aber etwas stärker.

(Bild: github.com/zfsonlinux/ )

Die moderneren Funktionen gibt der Kernel aber nur per EXPORT_SYMBOL_GPL() frei; sie stehen dadurch nur Kernel-Modulen zur Verfügung, die unter einer zur GPL kompatiblen Lizenz stehen. ZOL kann die neuen Funktionen daher nicht nutzen, weil es einer Lizenz unterliegt, die gemeinhin als inkompatibel zur vom Linux-Kernel verwendeten GPL gilt. Die ZOL-Entwickler haben das Problem in ihrem Hauptentwicklungszweig im Februar umschifft. Laut den Entwicklern steigt die CPU-Last dadurch ein wenig; sie erwarten aber keinen sonderlichen Einfluss auf die Geschwindigkeit, solange die CPU nicht besonders schwach ist oder bereits am Anschlag läuft.

Das Ganze war offenbar keine Absicht der Linux-Entwickler, sondern ein Kollateralschaden bei Aufräumarbeiten. Details dazu liefert die derzeit am Kiosk erhältliche c't 05/2019 im Artikel "Was soll das? – Linux 5.0: Lizenzkennzeichnung trifft Nvidia und ZFS on Linux".

Der Text beschäftigt sich auch mit einigen weiteren und ganz ähnlich gelagerten Anpassungen des neuen Kernels (1, 2). Durch sie gibt der Kernel zwei essenzielle Funktionen für Heterogeneous Memory Management (HMM) von nun an nur noch per EXPORT_SYMBOL_GPL() frei. Solch eine nachträgliche Änderung bei einer Funktionsfreigabe ist schon ein Novum, aber damit nicht genug: Die entsprechenden Änderungen wurden Mitte Januar in aktuelle Stable- und Longterm-Kernel zurückportiert, daher sind sie auch in Linux 4.20.2, 4.19.15 4.14.93, 4.9.150 und neuer zu finden.

Einige für HMM wichtige Funktionen sind jetzt nur noch via EXPORT_SYMBOL_GPL() freigegeben, daher kann Nvidias proprietärer Treiber sie nicht mehr verwenden.

(Bild: Linux-Dokumentation )

Die Kernel-Entwickler werfen proprietären Treibern damit gezielt Knüppel zwischen die Beine; dabei machen sie keinen Hehl daraus, dass sie damit vor allem Nvidia treffen wollen, wie die LWN.net-Artikel "Heterogeneous memory management meets EXPORT_SYMBOL_GPL()" und The proper use of EXPORT_SYMBOL_GPL() zeigen.

Nutzer des proprietären Nvidia-Grafiktreibers brauchen sich aber nicht zu sorgen: Der einsehbare Teil des Kerneltreibers von Nvidia enthält zwar schon ein wenig HMM-Unterstützung, die ist aber noch unvollständig; sie wird standardmäßig nicht eingebaut, daher jucken die Änderungen den Durchschnittsnutzer nicht.

Nvidia wird jetzt aber sehen müssen, ob oder wie es die Technik unterstützt. Diese erleichtert Programmcode die Handhabung von Daten, die mal der eine und mal ein anderer Prozessor eines Systems verarbeitet; das ist etwa zur effizienteren Einbindung von Grafik- und Kryptoprozessoren wichtig, denen jeweils eigener Arbeitsspeicher zur Seite steht. HMM ist derzeit vor allem für High Performance Computing (HPC) oder Machine Learning wichtig, gewinnt aber auch im Massenmarkt an Bedeutung; das seit Linux 4.14 unterstützte HMM ist zudem ein wesentlicher Bestandteil der Heterogeneous System Architecture (HSA), für die AMD und einige andere Prozessorhersteller seit Jahren trommeln.

Der für AMDs moderne Grafikprozessoren zuständige Kernel-Grafiktreiber Amdgpu beherrscht jetzt Freesync, das für flüssige 3D-Darstellung sorgt und so Ruckler und Verzögerungen vermeiden hilft (u. a. 1, 2, 3, 4). Das gelingt durch dynamische Anpassung der Bildwiederholrate, daher wird die auf VESA Adaptive Sync aufbauende Technik auch Variable Refresh Rate (VRR) genannt. Zum Freesync-Einsatz ist neben dem neuen Linux-Kernel auch das dieser Tage erwartete Mesa 19.0 nötig, denn erst der darin enthaltene OpenGL-Treiber von AMD weiß die neuen Kernelfunktionen zu nutzen. Auch AMDs Open-Source-Treiber für den X-Server muss die Technik unterstützen, sofern man einen solchen einsetzt. Die Kernel-, OpenGL- und X.org-X-Server-Treiber des von AMD selbst vertriebenen Treiberpakets beherrschen Freesync schon länger. Das Paket ist aber nur auf einige im professionellen Umfeld gängige Linux-Distributionen ausgelegt; deswegen eignet es sich etwa für einige LTS-Releases von Ubuntu, nicht aber für Ubuntu 18.10. Selbst das kürzlich veröffentlichten Ubuntu 18.04.2 wird noch nicht unterstützt.

Screenshot der 12x24-Bold-Variante von Terminus.

(Bild: terminus-font.sourceforge.net )

Die erstmals beiliegende Schriftart "Terminus 16x32" verhilft Textkonsolen auf HiDPI-Displays zu einer adäquaten Größe. Das ist vor allem für Bootprozess und Embedded-Systeme interessant, schließlich kann man eine solche Schrift bei älteren Kernel bereits zur Laufzeit einstellen. Viele Distributionen bringen dazu die zu besonders hochauflösenden Bildschirmen gut geeignete Terminus schon mit. Details hierzu finden sich in den Tipps & Tricks der c’t 4/19.

Linux beherrscht jetzt die Stromchiffren XChaCha12 (1, 2, 3, 4) und XChaCha20 (1, 2, 3, 4, 5) sowie den Hash-Algorithmus Nhpoly1305. Auf ihnen baut der Support für den erstmal unterstützten Verschlüsselungsalgorithmus Adiantum auf. Diesen können Dm-Crypt/Cryptsetup/LUKS und das von Ext4 und F2FS verwendete Fscrypt jetzt nutzen, um Daten zu ver- und entschlüsseln.

Adiantum stammt von Google und wurde für leistungsschwache Android-Geräte entwickelt, denen Kryptobeschleuniger für das heute üblicherweise bei der Datenträgerverschlüsselung verwendete AES fehlen. Ursprünglich hatte das Unternehmen geplant, das von der National Security Agency (NSA) entwickelte und dadurch viel kritisierte Speck zu nutzen. Kaum dass Mitarbeiter von Google den Speck-Support in den Linux-Kernel 4.18 und 4.19 integriert hatten, verkündete das Unternehmen allerdings eine Kehrtwende und stellte wenig später HPolyC vor. Daraus ging Adiantum hervor, das Google einige Wochen nach der Aufnahme für Linux 5.0 im Februar offiziell vorgestellt hat. Adiantum soll letztlich sogar schneller als Speck sein, das bei Linux 4.20 wieder entfernt wurde, weil niemand sonst Interesse daran zeigte.

Apropos NSA: Linux unterstützt nun auch den in RFC 6986 definierten Hash-Algorithmus Streebog, der zu den russischen Standardalgorithmen für Kryptografie ("GOST Algorithmen") zählt. Er wurde vom russischen Inlandsgeheimdienst FSB als Alternative zu SHA-3 mitentwickelt. Genau wie bei der von der NSA beigesteuerten und schon lange in Linux enthaltenen Sicherheitstechnik SELinux sind solche Ursprünge aber kein Ablehnungsgrund, solange die Implementierung sauber scheint. Kurz vor der Fertigstellung von Linux 5.0 gab ein Sicherheitsforscher allerdings bekannt, dass der eng mit Streebog verwandte Verschlüsselungsalgorithmus Kuznyechik eine Struktur enthalten, die nirgends erklärt wird. Es wird spekuliert, ob es sich dabei um eine Hintertür handeln könnte. Ob das noch Auswirkungen auf den Support in Linux hat, bleibt abzuwarten.

Einige weitere Neuerungen rund um Sicherheitstechniken nennen Git-Merge-Kommentare der Subsysteme Audit, Crypto, Integrity (1a, 1b), Selinux und TPM.

Die Kernelentwickler haben den älteren der beiden Block-Layer-Ansätze rausgeworfen (u. a. 1, 2); damit verschwinden auch I/O-Scheduler wie Deadline und CFQ, die viele Admins vom Performance-Tuning kennen. Wer Datenträgerzugriffe optimieren will, muss sich daher mit dem neueren, seit Linux 3.13 im Kernel enthaltenen Ansatz auseinandersetzen – dem Multi-Queue Block IO Queueing Mechanism (Blk-Mq), der mit mehreren Warteschlangen arbeitet und nun die Basis der gängigen Storage-Treiber bildet. Der zugehörige Scheduler Mq-Deadline arbeitet ähnlich wie der entfernte Namensverwandte und ist daher recht simpel und vorhersehbar. Komplexer ist der im weiteren Sinne aus CFQ hervorgegangene und bei Linux 4.12 integrierten BFQ, der die anstehenden I/O-Aufgaben eher mal umsortiert oder wartet, um Reaktionsgeschwindigkeit oder Durchsatz zu steigern.

Auf Btrfs-Dateisystemen lassen sich jetzt Auslagerungsdateien ablegen. Das ist für Distributionen wie Ubuntu interessant, die standardmäßig mit Swap-Files statt Swap-Partitionen arbeiten. Das Ganze klappt aber nur unter bestimmten Bedingungen, daher darf das Btrfs-Volume beispielsweise nur aus einer Partition bestehen.

Der neben Virtio-SCSI vielfach beim Virtualisieren eingesetzte Storagetreiber Virtio-Blk kann den Host nun per Discard darüber informieren, wenn Speicherbereiche virtueller Datenträger keine Daten mehr enthalten, weil dort liegende Dateien gelöscht wurden. Das kann Performance und Lebensdauer von SSDs verlängern, wenn der Host das per Trim-Befehl an die SSD weitergibt. Außerdem ist das Ganze interessant, um den Platzbedarf der Images von virtueller Maschinen (VMs) zu senken.

Linux bringt jetzt einen Client (auch Initiator oder Host genannt) und einen Server (Target) mit, um über TCP-Verbindungen auf NVMe-Datenträger zuzugreifen (NVMe over Fabrics).

Einige weitere Neuerungen rund um Dateisysteme und Storage-Support nennen die wichtigsten Git-Merges der Subsysteme Block (1, 2), Btrfs, CIFS, Ceph, Device Mapper, Ext4 (1, 2), F2FS, Fsnotify, GFS2, Libnvdimm, NFS, NFSd, Pstore, SCSI, XFS. Einige Änderungen bei der Locking-Infrastruktur versprechen zudem Performance-Verbesserungen in Situationen, wo viele Tasks auf Freigabe des gleichen Dateilocks warten.

Der Kernel kann per UDP eingehende Pakete jetzt sammeln und in größeren Bündeln an die Zielapplikation übergeben, was den Durchsatz steigert und zugleich den Prozessor entlastet. Durch dieses "Generic Receive Offload (GRO) für Plain UDP Sockets" legte der Durchsatz bei einem Test des Entwicklers von 1079 auf 1466 MByte/s zu (u. a. 1, 2).

Linux kann ferner im Speicherbereich von Programmen liegende Daten jetzt via UDP versenden, ohne sie zuerst im Arbeitsspeicher duplizieren zu müssen. Dieser Zerocopy-Ansatz reduziert den Overhead und verspricht, die Performance zu steigern; TCP unterstützt Ähnliches bereits seit Linux 4.14.

Einige weitere Neuerungen im Netzwerkbereich nennt ein Git-Merge-Kommentar des Netzwerksubsystems; darunter etwa sind etwa zahlreiche Verbesserungen an BPF (1, 2, 3, 4, 5), VRF Support im VXLAN Underlay, ICMP-Error-Handling für UDP-Tunnel und verschiedene Neuerungen beim Netfilter. Ebenfalls neu ist eine Extension-Infrastruktur für sk_buff, um diese zentrale und viel genutzte Datenstruktur kleiner machen zu können und so Overhead zu vermeiden. Virtio hat zudem Support für den Datenaustausch mit einem "packed ring" erhalten, was den Netzwerkverkehr zwischen Host- und Gastsystemen beschleunigen kann. Das neue Coalescing der TCP-Backlog-Queue soll zudem die Latenzen in manchen Situationen deutlich reduzieren und zugleich den Durchsatz steigern.

Die Sicherheitsfunktion Seccomp (Secure Computing) kann jetzt ein Userspace-Programm zurate ziehen, um zu entscheiden, ob eine Tätigkeit eines anderen Programms erlaubt oder verboten wird. Container-Managementprogramme sollen diese Funktion nutzen können, um Containern etwa das Anlegen grundlegender und ungefährlicher Gerätedateien (etwa /dev/zero oder /dev/null) zu erlauben, das Erstellen anderer jedoch zu unterbinden. So ein Managementprogramm könnte auch Kernelmodule auf dem Host nachladen, wenn Software in Containern diese legitimerweise anfordert. Dabei geht es somit um Regeln, die sich mit einem Userspace-Programm einfacher und flexibler programmieren lassen als im Kernel. Hintergründe dazu finden sich in einem LWN-net-Artikel und der Videoaufzeichnung eines Vortrages, der kürzlich auf der angesehenen Konferenz linux.conf.au 2019 gehalten wurde:

Empfohlener redaktioneller Inhalt

Mit Ihrer Zustimmmung wird hier ein externes YouTube-Video (Google Ireland Limited) geladen.

Ich bin damit einverstanden, dass mir externe Inhalte angezeigt werden. Damit können personenbezogene Daten an Drittplattformen (Google Ireland Limited) übermittelt werden. Mehr dazu in unserer Datenschutzerklärung.

Auch die modernere Variante der Control Cgroups (Cgroups v2) bringt jetzt einen Cpuset Controller mit. Mit solchen lässt sich steuern, welche Prozessorkerne oder Speicherbereiche die Prozesse nutzen, die der Control Group (Cgroup) zugeordnet werden. Das ist etwa für besonders leistungsstarke NUMA-Systeme interessant, damit Prozesse (und somit auch Container oder VMs) dort nach Möglichkeit lokalen Arbeitsspeicher verwenden.

Intels Ablaufverfolgungs- und Performance-Monitoring-Technik Processor Trace (PT) lässt sich jetzt auch in mit KVM laufenden VMs nutzen (u. a. 1, 2). Außerdem hat KVM eine neue, von Xen bereits länger unterstützte Betriebsart gelernt, um Gastsysteme ohne BIOS zu booten und so den Start zu beschleunigen.

Einige Optimierungen reduzieren die Fragmentation des Arbeitsspeichers und versprechen so die Performance zu steigern (u. a. 1, 2). Allerlei weitere Neuerungen rund um Infrastruktur des Kernels nennen Git-Merges für ARM64, ACPI, Cgroup, Char, Core RCU, Device Tree, Devprop, DMA Mapping, IOMMU, IRQ Core, KBuild (1, 2), KConfig, KVM, PCI, Perf, Power Management, RISC-V, Scheduler, Trace, Thermal Management, UML, x86 (AMD northbridge updates, Cache, CPU, Microcode, MM), Xen und Y2038. Darunter ist etwa das "Unified Dynamic Event Framework", über das sich Kprobes, Uprobes und Synthetic Events via Ftrace anlegen oder entfernen lassen. Zwischen diesen Änderungen steckt zudem ein ausführliches Dokument, das detailliert erklärt, unter welchen Bedingungen der Prozessor von Cpuidle schlafen geschickt wird.

Linux 5.0 bringt Support für eine Reihe von Single-Board-Computern (SBCs) und den darauf verwendenten System-on-a-Chips (SoCs).

(Bild: git.kernel.org – b7badd1d7aa6 )

Linux 5.0 unterstützt Nvidias als Tegra194 oder Xavier bekannte ARM-Prozessoren (u. a. 1, 2). Ebenfalls neu ist Basissupport für die von Freescale Semiconductor/NXP gefertigten Prozessoren der i.MX8-Familie. Zu der gehört auch der SoC, den Purism beim Linux-Smartphone Librem 5 einsetzen will; Support für dessen Entwicklerboard oder das Smartphone selbst enthält Linux 5.0 aber nicht.

Das sind nur einige der ab 5.0 erstmals unterstützten SoCs und Platformen mit ARM-Prozessoren; einige weitere Änderungen dieses Bereichs wie die verbesserte Unterstützung für verschiedene OrangePi-Boards nennen die Kommentare einiger Git-Merges (1, 2, 3, 4). Entwickler von ARM-Systemen dürfte zudem interessieren, dass die Linux-Macher nach langem Ringen jetzt eine Infrastruktur eingebaut haben, um Device Tree Bindings in JSON-Schema schreiben zu können, die der Kernel beim Bauprozess automatisch verifizieren kann.

Linux unterstützt jetzt das Bussystem MIPI I3C, das auch als SenseWire bekannt ist; es soll das weit verbreitete I2C beerben, um Sensoren oder andere Prozessoren anzubinden (u. a. 1, 2, 3, 4, 5, 6).

Die Entwickler haben ferner den Hardware-Support wieder signifikant erweitert, denn sie haben Dutzende neuer Treiber integriert und Hunderte existierende verbessert. Alles aufzulisten würde den Rahmen sprengen, daher folgen nur einige Beispiele.

Der neue Kernel unterstützt etwa die Touch-Funktion des 7-Zoll-Touch-Displays für den Raspberry Pi, das raspberrypi.org vertreibt. Neu dabei ist auch ein Treiber für das Cougar 700K Gaming Keyboard. Ferner haben die Entwickler den Support für Mäuse mit hochauflösendem Scrollrad verbessert, die unter anderem Logitech vertreibt (u. a. 1, 2, 3, 4). Das klingt nach einer simplen Änderung, hat aber viel Forschungsarbeit erfordert, wie ein Blog-Eintrag des Entwicklers Peter Hutterer zeigt; dort erwähnt er auch, dass das Feature bei einigen neueren Mäusen von Microsoft vermutlich nicht unterstützt wird.

Die neue Kernelversion kann bereits die Temperatur der zweiten Generation von AMDs Zen-Prozessorkernen auslesen. Linux 5.0 unterstützt zudem die Audio-Einheit einiger neuer Ryzen-G-Prozessoren besser und weiß weitere Varianten der VEGA-Grafikchipfamilie von AMD anzusprechen. Der Amdgpu-Treiber beherrscht nun auch Adaptive Backlight Management (ABM), das den Stromverbrauch mancher Displays senken kann. Die neue Linux-Version bringt ferner Basis-Support für GPUs aus Nvidias Turing-Reihe, die bei der GeForce-RTX-2000-Serie zum Einsatz kommt (1, 2, 3, 4).

Neu dabei ist auch ein Treiber für einen AQtion 2.5/5-Gbit-USB-Ethernet-Adapter von Aquantia. Der Thunderbolt-Treiber beherrscht jetzt die von neueren Systemen vielfach verwendete Konfiguration, bei dem der Anwender sich nicht mit der Frage herum plagen muss, inwieweit er angesteckten Geräten vertraut. Das ist möglich, weil solche Systeme den Speicherbereich des Controllers mit einer IOMMU (Input/Output Memory Management Unit) isolieren; Thunderbolt-Geräte können dadurch nur noch auf den ihnen zugewiesenen Bereich des Arbeitsspeichers zugreifen und nicht mehr den gesamten RAM per DMA einsehen.

Eine Reihe anderer signifikant verbesserter oder neuerer Treiber nennen die Git-Merge-Kommentare der Subsysteme Bluetooth, Char, DRM Human Interface Devices (HID), Input, Hardware Monitoring, Media (1, 2), RDMA, Sound, USB und x86 Platform drivers. Auch das ist übrigens nur die Spitze des Eisbergs, denn es gibt noch einige Dutzend weniger geläufiger Subsysteme, bei denen die Entwickler die Hardware-Unterstützung verbessert haben.

Entfernt haben die Kernelmacher indes den ISDN-Treiber "Eicon", der stark wartungsbedürftig war, weil sich seit langem niemand mehr um ihn gekümmert hat.

EAS soll den Stromverbrauch senken und zugleich die Performance steigern.

(Bild: community.arm.com: Energy Aware Scheduling (EAS) in Linux 5.0 )

Das neue Energy Aware Scheduling (EAS) soll helfen, den Energieverbrauch bei Prozessoren mit ARMs big.LITTLE zu senken, in denen CPU-Kerne mit unterschiedlichem Leistungspotenzial und Energiehunger stecken (1, 2, 3, 4, 5). Durch EAS kann der Scheduler bekanntermaßen simple und kurzlebige Prozesse mit schwachen und dadurch sparsamen Kernen ausführen, während er rechenintensive gleich stärkeren zuteilt, die mehr Strom fordern.

Ohne eine Lösung wie EAS verbrauchen solche SoCs mehr Strom als nötig und spielen zugleich ihr Performance-Potenzial nicht aus. Mit solchen SoCs bestückte Android-Geräte bringen daher meist einen der vielen Vorläufer von EAS mit, die in den vergangenen sieben Jahren entstanden. Keiner davon konnte allerdings die Ansprüche der Entwickler des Prozess-Schedulers erfüllen. EAS hat das jetzt geschafft – ist aber auch bewusst simpel gehalten, daher bietet es noch viel Raum für Verbesserungen, an denen bereits gearbeitet wird.

Kernel-
Version
Anzahl
Dateien¹
Zeilen
Quelltext
(Ohne
Doku)²
Entwick-
lungs-
zeitraum
Commits
(Ohne
Merges)³
Diffstat⁴
Linux 4.14 61.290 25.041.284
(23.050.486)
70 Tage 14.659
(13.452)
23.388 files changed,
 719.862 insertions(+),
 445.585 deletions(-)
Linux 4.15 62.303 25.364.802
(23.329.451)
77 Tage 16.223
(14.866)
13.265 files changed,
 643.912 insertions(+),
 320.289 deletions(-)
Linux 4.16 62.915 25.558.805
(23.495.643)
63 Tage 14.896
(13.630)
12.239 files changed,
 1.133.069 insertions(+),
 939.066 deletions(-)
Linux 4.17 61.362 25.379.564
(23.314.368)
63 Tage 14.745
(13.541)
14.504 files changed,
 777.301 insertions(+),
 956.941 deletions(-)
Linux 4.18 61.003 25.280.872
(23.183.236)
70 Tage 14.432
(13.283)
13.141 files changed,
 583.336 insertions(+),
 682.028 deletions(-)
Linux 4.19 61.734 25.588.455
(23.449.221)
70 Tage 15.204
(14.043)
11,693 files changed,
 552.223 insertions(+),
 244.235 deletions(-)
Linux 4.20 62.481 25.955.520
(23.776.585)
63 Tage 14.995
(13.844)
11.402 files changed,
 685.027 insertions(+),
 317.959 deletions(-)
Linux 5.0 63.135 26.203.035
(23.933.016)
70 Tage 13.921
(12.808)
12.100 files changed,
 579.084 insertions(+),
 331.570 deletions(-)
¹ git ls-tree -r --name-only HEAD | wc -l
² find . -type f -not -regex '\./\.git/.*' | xargs cat | wc -l; echo "($(find . -name *.[hcS] -not -regex '\./\.git/.*' | xargs cat | wc -l))"
³ git-log --pretty=oneline vx.(y-1)..vx.(y) | wc -l; echo "($(git-log --pretty=oneline --no-merges vx.(y-1)..vx.(y) | wc -l))"
⁴ git diff --shortstat vx.(y-1)..vx.(y)
Mehr Infos

Den neuen Linux-Kernel herunterladen und einrichten

Die neue Linux-Version steht wie gewohnt über Kernel.org zum Download bereit. Auf Kernel.org finden Sie auch eine Anleitung, wie Sie die Quellen auf Authentizität und Unversehrtheit prüfen.

Hinweise zur Einrichtung eines eigenen Kernels finden Sie im Artikel "Linux-Kernel maßgeschneidert". Das darin beschriebene Make-Target make localmodconfig erzeugt weitgehend automatisch eine recht gut auf Ihr System zugeschnittene Kernel-Konfiguration, mit der Sie in wenigen Minuten eine neue Linux-Version einrichten können.

Fedora und Rolling-Release-Distributionen wie Arch Linux, Gentoo und OpenSuse Tumbleweed dürften die neue Linux-Version in den nächsten Wochen im Rahmen der regulären Systemaktualisierung erhalten. Bei bereits erhältlichen Releases von Debian, OpenSuse Leap, Ubuntu und vielen anderen klassisch gewarteten Distributionen macht der Kernel normalerweise keine größeren Versionssprünge; deutlich neuere Kernel erhält man dort meist erst beim Wechsel auf eine neuere Version der Distribution.

Mehr Infos

Versionshistorie dieses Artikels

  • 2019-03-04, 06:25 – v1.1: Anlässlich der Freigabe von Linux 4.20 einen Kurzüberblick der wichtigsten Neuerungen am Anfang hinzugefügt.
  • 2019-02-20, 06:00 – v1.0: Erste Version.

Der Newsticker von heise online erwähnt alle größeren Texterweiterungen, auf die auch der Twitter-Account @kernellog hinweist.

(thl)