c't 22/2018
S. 40
Linux
Linux 4.19
Aufmacherbild

Kernel-Log

Linux 4.19: Flackerfrei starten und Strom sparen

Der neue Kernel kann die Netzwerkperformance steigern und den Boot-Prozess geschmeidiger machen. Außerdem lässt sich jetzt flexibel festlegen, ob Linux den Zufallszahlen des Prozessors trauen darf. 4.19 ist zudem ein Longterm-Kernel und wird somit jahrelang gepflegt.

Der Linux-Kernel 4.19 dürfte erscheinen, während diese c’t am Kiosk liegt: Trotz der bei Redaktionsschluss noch andauernden Auszeit von Torvalds (siehe c’t 21/2018, S. 29) verläuft die Entwicklung dieser Version nämlich so gut wie gewohnt – nur halt, dass nicht Torvalds, sondern Greg Kroah-Hartman die Änderungen integriert. Dabei regelt er alles in von Torvalds gewohnte Weise, von dem seit Verkündung der Auszeit so gut wie nichts zu sehen war.

Torvalds erwartet bei seiner Rückkehr eine Diskussion über den Verhaltenskodex, den er überraschend und weitgehend im Alleingang etabliert hat.

Torvalds wollte bis zur Fertigstellung von 4.19 fernbleiben – wenn es dabei bleibt, dürfte er daher dieser Tage wieder an Deck kommen. Dort erwartet ihn bereits eine Diskussion über den neuen Verhaltenskodex für Entwickler: Den hatte er nur wenige Stunden vor Verkündigung der Auszeit etabliert, indem er diesen „Code of Conduct“ in die Kernel-Dokumentation aufgenommen hat. Das tat er weitgehend im Alleingang und ohne vorgeschaltete Begutachtungsphase auf einem Mailverteiler. Eine solche durchlaufen nicht nur die größeren, sondern auch die meisten trivialen Änderungen am Linux-Kernel: Das gilt als Eckpfeiler des Entwicklungsprozesses, denn es gibt anderen Programmierern und interessierten Partien die Chance, Probleme zu benennen.

Die übereilte Integration wird unter anderem von einigen Mitstreitern kritisiert, die Subsysteme des Kernels betreuen. Sie sind besonders betroffen: Sie müssen sich beim Begutachten von Patches nicht nur an den Kodex halten, sondern auch auf seine Einhaltung in ihrem Umfeld achten – beispielsweise den Mail-Verteilern ihres Subsystems. Einige von ihnen haben Änderungen vorgeschlagen, die vielleicht noch in 4.19 einziehen. Ende Oktober kommt der Kodex vermutlich richtig auf den Tisch: Dann kommt Torvalds auf dem Maintainers Summit mit einigen der wichtigsten Kernel-Entwickler zusammen, um über den Code of Conduct und andere Aspekte rund um die Kernel-Entwicklung zu reden.

Im Rahmen der Diskussionen kursierten Meldungen, Entwickler hätten aufgrund des Kodex die Entfernung ihres Codes verlangt. Tatsächlich hat aber niemand so etwas öffentlich gefordert, der tatsächlich zu Linux beigetragen hat. Nach Auffassung einiger im Open-Source-Bereich tätigen Juristen wären solche Bestrebungen ohnehin nicht mit der GPLv2 durchsetzbar, der Linux unterliegt. Außerdem enthält der bei der Kernel-Entwicklung verwendete Prozess sogar eine Regel, damit solche Forderungen in Leere laufen.

Schöner starten

Die Diskussionen um den Kodex hatten indes keinerlei Einfluss auf den Umfang der Neuerungen von Linux 4.19, schließlich war dessen Hauptentwicklungsphase schon drei Wochen vor Ankündigung der Auszeit zu Ende gegangen. Die neue Version bringt unter anderem Änderungen, durch die Distributoren einen ästhetischeren Startprozess implementieren können. Damit sollen Distributionen den Bootprozess letztlich damit ähnlich schick und geschmeidig gestalten, wie es Apple schon lange bei macOS vormacht. Wahrscheinlich sieht das Ganze am Ende ähnlich aus wie der UEFI-Start von Windows: Nach dem Selbsttest des BIOS bleibt zuerst das von ihm angezeigte Bild auf dem Monitor; nach der Grundinitialisierung des Kernels übernimmt die Bootsplash-Lösung Plymouth, die das Bild um eine Fortschrittsanzeige (etwa einen Spinner) ergänzt oder flüssig ein eigenes Bild einblendet; am Ende des Boot-Prozesses geht es dann nahtlos zum Anmeldemanager über, ohne dass der Bildschirm auch nur einmal durch Auflösungswechsel schwarz wurde oder irgendwelche vernachlässigbaren Statusmeldungen angezeigt hat. Beim in der zweiten Oktoberhälfte erwarteten Fedora 29 soll das Verfahren bereits zum Einsatz kommen. Neben dem Kernel wurden dazu auch viele andere Komponenten angepasst. Ohnehin muss eine Vielzahl von Dingen für so einen „smoothen“ Startvorgang zusammenspielen.

Längere Akkulaufzeit

Eine Reihe von Notebooks, PCs und Servern dürfte mit Linux 4.19 sparsamer laufen, weil einige Treiber die Stromsparfunktionen der von ihnen betreuten Chips besser unterstützen.

Das betrifft vor allem Systeme, in denen einer der verbreiteten Gigabit-Netzwerkchips von Realtek steckt. Der für sie zuständige Treiber R8169 aktiviert die PCIe-Stromspartechnik ASPM (Active State Power Management) ab 4.19 bei vielen Systemen automatisch. Dadurch kann der Chip samt seiner PCIe-Anbindung in sparsamere Modi schalten oder gar tief schlafen gehen, wenn es wenig oder nichts zu tun gibt. Das verspricht mehr Stromsparpotenzial freizulegen, als normalerweise zu erwarten wäre: Laut dem zuständigen Entwickler gehen die Intel-Prozessoren vieler Systeme mit solchen Realtek-Chips derzeit nicht in die tieferen und stromsparenden Schlafzustände (die „Package-C-States“), weil der R8169-Treiber dort der einzige ist, der kein ASPM nutzt. Er nennt dabei das Dell G3 3779 als Beispiel, das dank der Änderungen rund 3 Watt weniger Leistung im Leerlauf umsetzen soll. Das dürfte die Akkulaufzeit des Gaming-Notebook spürbar verlängern.

Geringere Leistungsaufnahme und somit längere Akkulaufzeit verspricht auch eine Änderung am Thunderbolt-Treiber, der jetzt auch zur Laufzeit nutzbare Stromsparfunktionen verwendet. Auch einige Systeme mit Radeon-Grafik sollen sparsamer laufen, weil der Treiber Amdgpu die Stromsparfunktionen verschiedener Radeon-GPUs jetzt zu verwenden weiß; das betrifft auch einige Notebooks mit Prozessorgrafik, die eine stärkere GPU zuschalten können.

WLAN-Doping

Linux 4.19 unterstützt den nächsten WLAN-Standard IEEE 802.11ax (neuerdings „WLAN-6“ genannt; siehe S. 44), der WLAN-Übertragungen um Faktor vier zu beschleunigen verspricht und 2019 ratifiziert werden dürfte. Die entsprechenden Änderungen haben Intel-Entwickler beigesteuert. Die haben auch gleich ihren WLAN-Treiber Iwlwifi um Support für eine neue Serie von WLAN-Chips namens „Wireless-AX 22560“ erweitert, die den schnelleren Funkstandard beherrschen soll.

Der Kernel unterstützt jetzt die USB-WLAN-Sticks AVM FRITZ! AC 430 und 860 von Haus aus. Das ist Treibern für USB-WLAN-Chips von Mediatek zu verdanken, die zu den Reihen MT76x0U und MT76x2U zählen. Diese sprechen nicht nur die zwei AVM-Sticks an, sondern auch den XBox-One-Wireless-Adapter, den Devolo-Wifi-ac-Stick sowie die Asus-Sticks USB-AC50, USB-AC51, USB-AC54 und USB-AC55.

Gemeinsam schneller

Sofern der Kernel die Netzwerkpakete gebündelt bei der Netzwerkhardware abruft, kann er diese jetzt länger zusammenhalten, wenn der Netzwerk-Stack mit der Verarbeitung beginnt. Laut dem zuständigen Entwickler kann das die Netzwerkperformance in manchen Situationen signifikant verbessern, weil es Overhead vermeidet und Prozessor-Caches besser greifen. Das Ganze klappt aber derzeit nur mit einem Treiber für Solarflare-Chips: Die Entwickler anderer Treiber sind sich noch uneins, ob die Vorteile den Implementierungsaufwand wert sind. Das war auch der Grund, warum der 2016 erstmals diskutierte Ansatz damals keinen Anklang fand. Die Gegenmaßnahmen für die Prozessor-Sicherheitslücke Spectre v2 haben allerdings neuen Wind in die Sache gebracht, denn wenn die aktiv sind, erzielt der Ansatz einen größeren Performance-Gewinn.

CPU-Vertrauensfrage

Beim Kernel-Bau kann man jetzt via CONFIG_RANDOM_TRUST_CPU festlegen, ob der Linux-eigene Zufallszahlengenerator bei der Initialisierung auch Daten einbezieht, die Zufallszahlengeneratoren moderner Hauptprozessoren liefern. Deren Einbindung kann Wartezeiten beim Booten vermeiden und zugleich die Qualität der Zufallszahlen steigern, die der Congruential Random Number Generator (CRNG) von Linux früh im Startprozess liefert. Manche Anwender misstrauen den Generatoren der CPUs jedoch. Die Entwickler haben daher den Kernel-Parameter random.trust_cpu= geschaffen, über den Anwender die Einbeziehung beim Booten ein- und ausschalten können.

Magic Keyboard & Totem

Zahlreiche neue und erweiterte Treiber verbessern den Hardware-Support. Zu den Highlights zählen etwa Umbauten, durch die Linux die Magic Keyboards von Apple nicht mehr nur via USB, sondern nun auch per Bluetooth anbinden kann; außerdem unterstützt Linux jetzt auch die mit Nummernblock ausgestatteten Modelle der Tastaturreihe.

Die Eingabegerätetreiber wissen nun auch die Surface Dial beziehungsweise Totem genannten Drehregler von All-in-One-PCs zu interpretieren, die Microsoft beim Surface Studio und Dell beim Canvas 27 einsetzt.

Dank eines neuen Treibers kann der Kernel jetzt beim Raspberry Pi warnen, wenn die Versorgungsspannung zu weit absinkt („undervoltage“).

Mit dem neuen I/O-Controller „Blk-Iolatency“ sollen Admins besser sicherstellen können, dass sich kritische Server-Anwendungen nicht zu stark verlangsamen, wenn weniger wichtige Software parallel die Datenträger fordert. Der neue Mechanismus soll sogar vor Situationen bewahren können, in denen beispielsweise die Systemaktualisierung die Last so hoch treiben, dass sich ein System komplett festfährt.

Das zum Einbinden von Samba- oder Windows-Freigaben genutzte CIFS bietet jetzt Snapshot-Unterstützung. In Kombination mit einer neuen Version der Werkzeugsammlung Cifs-Utils lassen sich so mit dem Mount-Parameter snapshots= ältere Dateisystemstände schreibgeschützt mounten, sofern der Server solche denn exportiert.

4.20 oder 5.0?

Linux 4.19 wird ein „Longterm Kernel“, daher soll es statt der gewohnten drei Monate mindestens zwei Jahre gepflegt werden. Torvalds Auszeit und die Diskussionen um den Kodex hatten bislang keine sonderlichen Auswirkungen auf den Nachfolger von Linux 4.19, denn für den liegen bereits Änderungen im gewohnten Umfang bereit. Zumindest vor der Auszeit deutete indes einiges darauf hin, dass der zum Jahreswechsel erwartete Kernel nicht die Versionsnummer 4.20 bekommt, sondern die 5.0. Wie bei Linux-Kernel üblich ist dieser Schritt aber nicht angedacht, weil dieser Version in irgendeine Weise besonders werden soll; wie schon bei 3.0 oder 4.0 soll der Sprung lediglich vermeiden, dass die zweite Zahl der Versionsnummer zu groß wird. (thl@ct.de)