c't 15/2019
S. 52
Kernel-Log
Linux 5.2
Aufmacherbild

Kernel-Log

Linux 5.2: Bei Groß- und Kleinschreibung locker bleiben

Dank neuer Kernel-Treiber lässt sich mit Linux jetzt die 3D-Beschleunigung vieler Einplatinencomputern verwenden. Die Storage-Performance legt in gewissen Konstellationen deutlich zu. Außerdem ist es jetzt ganz leicht, einige Schutztechniken auszuknipsen, die viel Leistung verbrennen.

Kurz nach Erscheinen dieser c’t oder spätestens Mitte Juli erscheint Linux 5.2. Dort lernt das verbreitete Ext4-Dateisystem etwas, was in der Windows-Welt ganz normal ist: die Groß- und Kleinschreibung von Datei- und Verzeichnisnamen zu ignorieren. Dieses Verhalten ist standardmäßig inaktiv. Wer es nutzen will, muss es zuerst beim jeweiligen Dateisystem im Superblock freischalten. Anschließend kann man es durch Setzen eines Attributs an einem noch leeren Verzeichnis aktivieren; Unterverzeichnisse übernehmen die Einstellung.

Dieses „Casefold Feature“ für Ext4 soll bei Android zum Einsatz kommen. Auch der Staging-Zweig von Wine, das Windows-Programme ausführt, kann es schon nutzen. Case Insensitivity sorgt seit Langem immer wieder für Debatten, ist in der Linux-Welt aber nichts wirklich Neues, denn das angesehene XFS-Dateisystem beherrscht sie schon lange. Es ignoriert Groß- und Kleinschreibung aber nur im Bereich der ASCII-Zeichenkodierung, also praktisch nur von A bis Z. Ext4 hingegen realisiert Case Insensitivity mithilfe einer komplexen, 1 MByte schweren UTF-8-Zeichentabelle von Unicode 12.1.0, um Sprachen mit weiteren Zeichen besser zu unterstützten.

Performance zurückgewinnen

Mit dem neuen Bootparameter mitigations=off kann man die Geschwindigkeit steigern, denn er legt Gegenmaßnahmen für Sicherheitslücken wie Spectre, Meltdown und ZombieLoad lahm, die in modernen Hauptprozessoren klaffen und in den letzten eineinhalb Jahren publik wurden. Wie stark das die Performance steigert, hängt von Prozessor und eingesetzter Software ab. Machen sollte man das aber nur, wo keine Gefahr droht – beispielsweise bei einer Video-Encodier-Workstation oder einem HPC-Cluster, wo man nur hausintern erzeugte und vertrauenswürdige Programme ausführt.

Treiber für ARM-Grafik

Für die verbreiteten ARM-Grafikkerne der Mali-Reihe bringt Linux jetzt die Grafiktreiber Lima und Panfrost mit. Auf ihnen bauen gleichnamige OpenGL-Treiber zur 3D-Beschleunigung auf, die eine der wichtigsten Neuerungen des kürzlich veröffentlichten Mesa 19.1 sind. Mit einem der zwei Treiber-Duos lässt sich die 3D-Beschleunigung der meisten von ARM entwickelten Mali-GPUs nutzen, die diverse Hersteller in SoCs (System-on-a-Chip) einsetzen – etwa in Android-Geräten, Chromebooks, Embedded Systems oder Einplatinensystemen (Single Board Computers/SBCs).

Lima unterstützt dabei „Utgard“-GPUs der Mail-400er-Serie. Panfrost hingegen spricht die neueren Mali-Generationen „Midgard“ und „Bifrost“ an, die unter den Mali-Modellbezeichnungen T6xx, T7xx, T8xx respektive G3x, G5x, G7x segeln. ARM hat sich an der Entwicklung dieser Treiber nicht beteiligt und auch keine Informationen bereitgestellt, deshalb entstanden sie mithilfe von Reverse Engineering. Die Treiber-Duos unterstützten daher nur einen Teil der Hardware-Funktionen und wurden bisher auch nur mit wenigen Grafikprozessoren getestet.

30.000 Dateien geändert

Die Linux-Entwickler haben für Linux 5.2 nicht wie sonst elf- bis dreizehntausend Dateien verändert, sondern über dreißigtausend. Für den Umfang der Neuerungen ist das aber unbedeutend, denn dieser Rekord entstand durch Thomas Gleixner und einige Mitstreiter: Sie haben in tausenden Quelltextdateien verschiedene Mehrzeiler mit Lizenzinformationen durch einzeilige Lizenzauszeichner ersetzt. Diese am Dateianfang stehenden SPDX License Identifier lauten etwa „GPL-2.0-or-later“ oder „GPL-2.0-only“ und lassen sich von Compliance-Werkzeugen leicht und unmissverständlich abfragen. Vor allem Unternehmen setzen solche Programme ein, um bei den eingesetzten Open-Source-Lizenzen den Überblick zu behalten.

Über die Datei /proc/kheaders.tar.xz kann Linux jetzt eine Reihe von Entwicklerdateien bereitstellen, die man für Kernel-nahe Tätigkeiten gelegentlich braucht – etwa zur Ablaufverfolgung (Tracing) oder zum nachträglichen Kompilieren von Kernel-Modulen. Das ist vorwiegend für Android und Embedded-Systeme gedacht: Dort ist es unüblich, diese Header- und Devel-Dateien mit dem Root-Dateisystem auszuliefern, wie es Linux-Distributionen für PCs machen.

Grafiktreiber

Der Treiber i915 unterstützt jetzt Intels Grafikprozessoren der elften Generation, die in CPUs mit Codenamen „Ice Lake“ stecken. Zu den ersten solcher Prozessoren zählen für flache Notebooks gedachte CPUs wie Core i5-1035 G1 und Core i7-1065 G7, die Intel kürzlich vorgestellt hat. OpenGL- und Vulkan-Treiber für diese Chips stecken im jüngst veröffentlichten Mesa 19.1.

Der neue Kernel unterstützt auch schon die GPUs der noch nicht erhältlichen Intel-Plattform Elkhart Lake, die wie Ice Lake eine Gen11-GPU enthält, aber auf Embedded-Prozessoren (Atom) und Billig-CPUs (günstige Celerons & Co.) zielt. Ferner weiß der Kernel jetzt auch schon den Grafikprozessor von „Comet Lake“-CPUs anzusprechen, die bald erscheinen sollen und für Desktop-PCs und leistungsstärkste Notebooks gedacht sind.

Der Nouveau-Treiber für Nvidia-Chips unterstützt jetzt auch TU117-GPUs, die bei der GeForce GTX 1650 im Einsatz sind. Die Kernel-Entwickler haben ferner den Cirrus-Treiber generalüberholt, der den Grafikchip anspricht, den das oft mit KVM und Xen kombinierte Qemu emuliert. Durch diese Umbauten ist der Treiber deutlich schlanker, bietet jetzt zugleich aber auch für moderne Systeme wichtige Funktionen wie Wayland-Unterstützung.

Geschwindigkeitszuwachs

Ein ganzer Schwung von Änderungen verspricht die Performance von Budget Fair Queueing (BFQ) zu verbessern – dem von manchen Distributionen standardmäßig eingesetzten Storage-I/O Scheduler, der bei Datenträgerzugriffen die gerade anstehenden Lese- und Schreiboperationen umsortieren kann, um die Performance zu verbessern. In einem Entwicklertest mit konkurrierenden Zugriffen konnte BFQ dadurch von 80 auf 200 MByte/s zulegen. Die Umbauten beim Nachfolger des früher verbreiteten I/O-Scheduler CFQ (Completely Fair Queuing) sollen ferner die CPU-Belastung reduzieren und Programme schneller starten lassen, wenn parallel auf demselben Datenträger geschrieben wird.

Mithilfe des neuen Pressure Stall Monitors können Überwachungsprogramme jetzt innerhalb von Millisekunden und ohne viel Overhead reagieren, wenn Überlastung droht oder bereits eingetreten ist. Google will das bei Android nutzen, um etwa zeitnah problematische Hintergrund-Software abzuschießen, damit Vordergrundprogramme immer flott reagieren.

Die IOMMU-Infrastruktur von Linux bietet jetzt „AUX domain support“. Damit unterstützt sie Intels bei VT-d 3.0 spezifizierte Scalable I/O Virtualization. Ähnlich wie mit Single Root I/O Virtualization (SR-IOV) lassen sich damit Funktionen von Hardwarekomponenten unter die Kontrolle von virtuellen Maschinen (VMs) oder Prozessen stellen, ohne die Sicherheit des Systems zu gefährden. Mit dem neuen Ansatz funktioniert das deutlich kleinteiliger; anders als SR-IOV kann ein Netzwerkchip so hunderte oder mehr virtuelle Netzwerkschnittstellen bereitstellen, die unterschiedliche Container autark nutzen können.

Neue WLAN-Treiber

Erstmals dabei ist der Treiber Rtw88, der die per PCIe angebundenen 802.11ac-WLAN-Chips RTL8822BE und RTL8822CE anspricht. Der von Realtek beigesteuerte Treiber weist allerdings noch allerlei Funktionslücken und Schwächen auf, die der Hersteller bald beseitigen will; fürs Erste lassen sich daher etwa Bluetooth und WLAN nicht gleichzeitig nutzen. Über den neuen Treiber Mt76 unterstützt Linux jetzt auch die 4×4-802.11ac-WLAN-Chips der Mediatek-Serie MT7615; auch er hat noch Schwächen, aber nicht so deutliche.

Bei zahlreichen AMD-Ryzen-Notebooks funktionieren mit dem neuen Kernel endlich Touchscreen und Touchpad.

Viele Notebooks mit AMD-Ryzen-Prozessoren laufen mit Linux 5.2 besser, etwa das Dell Latitude 5495 oder die Lenovo-Modelle Yoga 530 und Ideapad 530s. Das ist einem I2C-Treiber zu verdanken, durch den Linux jetzt endlich die Touchpads und Touchscreens solcher Notebooks ansprechen kann.

Der neue Kernel unterstützt einige drahtlose Logitech-Mäuse und -Tastaturen (etwa die Modelle MX3000 und MX5000) jetzt besser. Neu dabei ist auch ein Treiber für das Macally Ikey Keyboard und eine Erweiterung, mit der bei neueren Asus-Notebooks die Funktionstasten-Sperr-Taste (FN-Lock) funktioniert.

Ausschussware

Zwei Linux-Entwickler haben angekündigt, 2021 die Infrastruktur und die Treiber entfernen zu wollen, die via IDE (Integrated Drive Electronics) angesprochene Datenträger über Gerätenamen wie /dev/hda oder /dev/hdc bereitstellen. Das hat einige Nutzer aufgeschreckt, obwohl es nur für Nostalgiker und Leute mit exotischer oder alter Hardware relevant ist: Moderne Linux-Distributionen unterstützten das auch Parallel-ATA (PATA) genannte IDE primär mit dem Libata-Subsystem, das Datenträger über Block-Devices wie /dev/sda und /dev/sdb bereitstellt und im Kernel bleibt.

Schon bei Linux 5.3 soll es vielen Treibern für ISDN-Hardware an den Kragen gehen, denn laut den Linux-Entwicklern seien die meisten öffentlichen ISDN-Netzwerke mittlerweile ohnehin abgeschaltet. Das alte, von niemandem mehr betreute ISDN4Linux (I4L) mitsamt dem früher recht bekannten Hisax-Treiber soll komplett getilgt werden. Der jüngere CAPI-Stack wandert in den Staging-Zweig und soll bald dasselbe Schicksal ereilen, sofern Anwender kein Einspruch erheben. Der mISDN-Stack, der die meisten von Hisax unterstützten Chips ansprechen kann, bleibt hingegen im Kernel.

Apropos 5.3: Dieser Kernel dürfte Mitte September erscheinen. Mit an Sicherheit grenzender Wahrscheinlichkeit wird Intels Grafiktreiber dort lernen, Monitore mit High Dynamic Range (HDR) anzusteuern. Ferner sollte dort eine umfangreiche Erweiterung des Treibers Amdgpu einfließen. Durch sie unterstützt AMDs Treiber die Navi10-Chips samt ihrer neuen Architektur „Radeon-DNA“ (RDNA), die am 7. Juli mit drei Mittelklasse-Grafikkarten der Radeon-RX-5700-Reihe debütiert. (thl@ct.de)