c't 13/2018
S. 36
Kernel-Log
Linux 4.17
Aufmacherbild

Kernel-Log

Linux 4.17 spart Strom, entschlüsselt TLS und unterstützt mehr Hardware

Grafiktreiber für neue AMD- und Intel-GPUs sowie Spectre-v4-Schutz, HDCP-Support und Kernel-seitige TLS-Entschlüsselung sind die Highlights von Linux 4.17. Einige kleine, aber feine Änderungen sorgen ferner dafür, dass AMD- und Intel-Prozessoren im Leerlauf weniger Strom verbrauchen.

Der Anfang Juni veröffentlichte Linux-Kernel 4.17 kann selbst die Schwerarbeit erledigen, Daten einer per TLS (Transport Layer Security) geschützten Übertragung zu entschlüsseln. Das gelingt durch eine Erweiterung des bei 4.13 integrierten Kernel TLS (KTLS). Das Handling im Kernel ermöglicht eine effizientere Datenverarbeitung, was die Performance von HTTPS und anderen Übertragungsprotokollen verbessert, die TLS nutzen. KTLS kann so den Datendurchsatz steigern sowie Systemlast und Latenzen reduzieren. Wie beim Sendepfad kümmert sich KTLS auch beim Empfang nur um die symmetrische Entschlüsselung; den komplexeren und fehleranfälligen Verbindungsaufbau samt der dabei genutzten asymmetrischen Verschlüsselung bleibt Userspace-Bibliotheken wie OpenSSL überlassen.

Effizienter nichts tun

Einige Systeme mit Intel-CPUs sollen mit dem neuen Kernel bis zu zehn Prozent sparsamer laufen, wenn es nichts zu tun gibt. Das Ganze betrifft vornehmlich Server mit mehreren Dutzend Prozessorkernen, wie Forscher der TU Dresden 2017 betonen. Diese hatten ein jetzt beseitigtes Problem gefunden, durch das Intels CPU-Cores manchmal unnötig aufwachten.

Auch Systeme mit AMDs aktuellen Prozessoren dürften mit 4.17 etwas sparsamer laufen, weil der Kernel die CPUs im Leerlauf jetzt anders schlafen schickt. Dadurch sollen Ryzen, Epyc & Co. in tiefere und effizientere Schlafzustände als C1 wechseln können.

Spectre-Gegenmaßnahmen

Der neue Kernel enthält einige Verbesserungen für den Schutz vor den Anfang Januar bekannt gewordenen Prozessorlücken Spectre v1 und v2. Darüber hinaus gab es eine Optimierung, um die Performance der bei 4.15 integrierten Meltdown-Gegenmaßnahme PTI (Page Table Isolation) auf Prozessoren zu verbessern, die anders als moderne CPUs keine Process Context Identifiers (PCID) beherrschen.

Der Spectre-v4-Schutz ist oftmals inaktiv, weil er nur zusammen mit neuen Microcode-Updates funktioniert.

Linux 4.17 bringt zudem Maßnahmen gegen die Mitte Mai bekannt gewordene Schwachstelle Spectre v4 aka Speculative Store Bypass (SSB). Diese Mechanismen flossen kurzfristig auch in Stable- und Longterm-Kernel wie 4.9.102, 4.14.42 und 4.16.11 ein, die keine 24 Stunden nach Publikwerden der Lücke erschienen. Bei all diesen Linux-Versionen können die Spectre-v4-Gegenmaßnahmen in verschiedenen Modi arbeiten, die der in der Dokumentation näher erläuterte Kernel-Parameter spec_store_bypass_disable= beeinflusst. Derzeit ist der Schutz aber auf vielen Systemen mit Intel-CPUs inaktiv, denn er ist auf neue, über Microcode-Updates nachgerüstete CPU-Funktionen angewiesen – die neuen Microcodes verteilt Intel aber bislang nicht frei (siehe S. 30).

HDCP-Support

Der für Intels moderne Grafikchips zuständige Treiber i915 spricht nun die Grafikkerne von Prozessoren der Cannon-Lake-Familie an, die Intel seit kurzem im Rahmen der Core-i-8000er-Serie verkauft. Außerdem beherrscht der Treiber jetzt HDCP (High-bandwidth Digital Content Protection). Google-Entwickler haben den dafür zuständigen Code beigesteuert. Er stammt von ChromeOS, das ihn bei der Wiedergabe hochauflösender Videos nutzt, für die Hardware und Betriebssystem den Kopierschutz implementieren müssen.

AMDs umfangreiche und bei Linux 4.15 integrierte Infrastruktur DC (Display Core) wird jetzt automatisch auch für ältere Grafikchips aktiviert, wenn man eine neue Kernel-Konfiguration erzeugt. Die unter anderem für HDMI 2.0 sowie die Audio-Weiterleitung via HDMI und DisplayPort wichtige Erweiterung erreicht so mehr Nutzer, was den Out-of-the-Box-Support für AMDs in den vergangenen Jahren vertriebenen Grafikprozessoren verbessert. Darüber hinaus unterstützt der Amdgpu-Treiber jetzt Vega12-Chips, die AMD offenbar in den nächsten Wochen oder Monaten einführen will.

XFS effizienter

Die Entwickler haben den Ext4-Code robuster gemacht, damit er bei arglistig modifizierten Dateisystemstrukturen nicht so leicht auf die Nase fällt. Der Ext4-Maintainer schreibt in dem Kontext aber warnend: Container-Fans sollten sich keinen Illusionen hingeben, dass es deshalb akzeptabel sei, Anwendern in Containern ein Mounten von beliebigen, womöglich von Angreifern modifizierten Ext4-Images zu erlauben.

Das XFS-Dateisystem beherrscht nun die Mount-Option lazytime, die Ext4 seit Linux 4.0 kennt; sie verbessert die Performance, indem sie die Schreibvorgänge verzögert, die ein Aktualisieren von Zugriffs-, Änderungs- oder Modifikationszeiten triggert. Das CIFS-Dateisystem, mit dem sich Dateifreigaben von Samba und Windows mounten lassen, unterstützt jetzt die bei SMB 3.1.1 definierte Pre-Authentication Integrity, die Man-in-the-Middle-Attacken erschwert.

Kontrollierter laden

Bei einigen Thinkpad-Modellen stellt der Kernel jetzt Dateien in /sys/class/power_supply/BATn/ bereit. Über die lässt sich unter anderem festlegen, ab welchem Ladegrad die Firmware mit dem Laden beginnen und aufhören soll. Damit kann man die Zahl der Ladezyklen reduzieren und die Lebensdauer von Akkus steigern. Erstmals dabei ist der Treiber Ice, der für Netzwerkchips der Intel E800 Ethernet Series zuständig ist. Der Iwlwifi-Treiber hingegen unterstützt jetzt deutlich mehr WLAN-Chips der 9000er-Serie. Neu dabei ist auch Support für die von verschiedenen Herstellern erhältlichen USB-Audio-Chips, die die USB Audio Class 3.0 implementieren.

Linux 5.0

Ein angedeuteter Versionssprung blieb indes aus, obwohl das Git-Repository mit den Linux-Quellen jetzt aus mehr als sechs Millionen Objekten besteht. Torvalds hatte in der Vergangenheit mehrfach gewitzelt, beim Durchbrechen dieser Marke die 5.y-Serie zu beginnen, schließlich waren es bei 3.0 zufällig zwei Millionen, bei 4.0 vier. Davon hat er jetzt abgesehen. Der Sprung könnte aber schon rund um den Jahreswechsel erfolgen: Der Sprung auf 4.0 erfolgte schließlich, als 3.20 angestanden hätte, daher deutet vieles darauf hin, dass 4.19 die letzte Version der 4er-Reihe wird. Schon seit vielen Jahren erfolgen diese Sprünge nur, damit die zweite Zahl der Versionsnummer nicht zu groß wird.

Secure-Boot-Streit

Nicht integriert wurden Patches für eine umfangreichere Secure-Boot-Unterstützung, die viele Mainstream-Distributionen in ähnlicher Form bereits mitbringen. Linus Torvalds wies die Integration im Rahmen einer hitzigen Diskussion rigoros zurück. In der gab es aber allerlei Missverständnisse, die teilweise erst nach langem Hin und Her ausgeräumt wurden. Am Ende zeigte sich Torvalds offener für die Änderungen, sofern noch einige Details angepasst würden. Das ist inzwischen passiert: Sofern nicht noch neue Kritikpunkte auftauchen, dürften die Patches wohl bald und ohne großes Aufhebens in den Kernel einziehen.

Frühjahrsputz

Die Kernel-Entwickler haben bei 4.17 den Support für acht Prozessorarchitekturen entfernt, um die sich ohnehin kaum noch jemand geschert hat. Dieser Frühjahrsputz ist der Hauptgrund, warum der neue Kernel letztlich rund 180.000 Zeilen schlanker ist als sein Vorgänger. Es ist erst das dritte Mal in der Geschichte der modernen Linux-Entwicklung, dass der Quellcode mit einer neuen Version schrumpft. Beim am 6. oder 13. August erwarteten Linux 4.18 dürfte das aber schon wieder anders aussehen, denn für diesen Kernel liegen bereits zahlreiche Änderungen bereit. (thl@ct.de)