Aus Linux-Magazin 05/2019

Kernel 5.0: Freesync, I3C und Lockdown-Support

© STUDIO GRAND WEB, 123RF

Eine Zäsur bedeutet die runde Versionsnummer 5.0 laut Linus Torvalds nicht. Welche Änderungen aber vom Kernelchef selbst stammen und was das aktuelle Linux sonst noch bringt, beleuchten die Kernel-News.

LinuxChefentwickler Linus Torvalds hat sich einen persönlichen Assistenten zugelegt, wenn auch keinen menschlichen. Der in Python programmierte PR Tracker Bot schickt eine Nachricht an Entwickler, deren Code Torvalds für den Kernel akzeptiert hat.

Vom Chefkoch selbst stammt diesmal Code, der der Sicherheit dient: Er begrenzt die Abfragen der Funktion »mincore()« auf zugeordnete Speicherseiten. Die fragte bisher auch zwischengespeicherte Seiten ab, die jedoch mitunter kritische Informationen preisgeben.

Die Änderung ist bemerkenswert, weil sie sich auf den Userspace auswirkt und Torvalds doch gerne das Mantra “Don’t break Userspace” betont. Die Funktion steckt zwar bereits seit Version 2.3.52 in Linux, doch schon damals wurde sie mit dem Zusatz kommentiert, man könne die Zugriffe von »mincore()« ja zu einem späteren Zeitpunkt nochmals genau bestimmen. Der Zeitpunkt sei jetzt gekommen, schreibt Torvalds, wenn auch etwas spät.

Sicher doch

In Sachen Sicherheit haben die Entwickler auch an Retpoline gefeilt, dem Sicherheitspatch gegen Angriffe über Spectrev2, die CPU-Sicherheitslücke. Die Änderungen sollen vor allem die Geschwindigkeit des Netzwerkstacks verbessern.

Gleiches gilt für den Code des Entwicklers Christian Hellwig, der die Funktion für die direkten Speicherzugriffe (DMA) überarbeitet hat. Inzwischen diskutieren die Kernelentwickler weitere Vorschläge, um die negativen Auswirkungen durch die umfangreichen Retpoline-Patches zu minimieren. Es wird also noch eine Weile dauern, bis die seit einem Jahr bekannten Sicherheitslücken Spectre und Meltdown bei den Kernelhackern keine Schweißausbrüche mehr hervorrufen.

Neu im Kryptostack ist die Chiffre Adiantum. Die stammt von Google und bietet eine angemessen schnelle Verschlüsselung auf leistungsschwachen Geräten. Adiantum ist der Ersatz für Speck, die Verschlüsselungstechnik des US-Geheimdienstes NSA.

Speck war nach längerer Diskussion aus dem vorherigen Linux-Kernel verschwunden. Einer der Gründe: Die NSA soll den Code teilweise unter Verschluss halten. Dafür haben die Kernelentwickler die Hashfunktion Streebog (GOST R 34.11-2012) integriert, die unter anderem Behörden in Russland einsetzen.

Kernel-Lockdown

Entwickler haben den Kernel-Lockdown bei Secure Boot weiter abgesichert. Der Systemaufruf »kexec_load_file()« greift neuerdings auf kryptographische Schlüssel in einem neuen Keyring namens ».platform« zu. Das laufende System darf diesen Keyring nicht aktualisieren. Kann sich ein Kernelabbild nicht durch einen entsprechenden Schlüssel verifizieren, verweigert »kexec_load_file()« das Laden. Gleiches gilt für den Aufruf »kexec_load()«.

Auch Userspace-Anwendungen dürfen künftig das Sicherheits-Framework Seccomp verwalten. Die in erster Linie für Container gedachte Funktion soll dann zum Beispiel entscheiden, ob ein anderes Userspace-Programm grundlegende Aktionen wie das Anlegen einer Gerätedatei ausführen darf.

Neue Buslinie

Mit I3C (auch Mipi I3C oder Sensewire) landet ein neues Bus-Subsystem für Sensoren im Kernel. I3C vereint die Funktionen des Vorgängers I2C und des SPI (Serial Peripheral Interface) und gewährleistet die Kompatibilität zu I2C. Das neue I3C erbt die höheren Datenübertragungsraten (High Data Rate, HDR) des SPI-Standards bei zugleich niedrigerem Energieverbrauch. Zudem lassen sich Geräteadressen dynamisch allozieren. I3C ist vor allem für den Einsatz in IoT- und mobilen Geräten konzipiert.

Für die asymmetrische ARM-Prozessor-Architektur Big Little, die auf CPU-Kerne mit unterschiedlichem Energieverbrauch setzt, ist jetzt ein neuer Scheduler integriert. Der kümmert sich darum, dass der Kernel Aufgaben besser auf die verschiedenen Kerne verteilt. Er ermittelt dafür die geplante Belastung eines Kerns durch einen Prozess, gleicht das Ergebnis mit der aktuellen Belastung einzelner Kerne ab und weist den Prozess jenem Kern zu, der bereits auf einer ähnlichen Energie-Ebene läuft.

Neues von Nouveau

Mit Linux 5.0 gibt es im freien Nouveau-Treiber rudimentäre Unterstützung für die neuen Grafikchips der RTX-Reihe von Nvidia, namentlich den TU104-Chipsatz (Geforce RTX 2080) und den TU106-Chip (Geforce RTX 2070 und 2060). Mit dem TU102-Chip (RTX 2080 Ti und Titan RTX) funktioniert er aber noch nicht.

Wie üblich mussten sich die Nouveau-Entwickler an den Code per Reverse Engineering herantasten. Der erweiterte Nouveau-Treiber erlaubt es, eine grafische Oberfläche zu starten, über die Nutzer die Installation des proprietären Nvidia-Treibers anstoßen. Eine Hardware-Beschleunigung fehlt bislang.

Derweil haben Googles Chrome-Entwickler jedoch den Nouveau-Treiber für Chrome und Chromium ab Version 71 auf eine schwarze Liste gesetzt. Er soll Web-GL-Fehler verursachen, was für viele Bugreports bei Google sorge.

Das dürfte zwar weniger an dem Treiber selbst liegen, sondern lasse sich vielmehr auf die teils sehr veralteten Mesa-3-D-Treiber auf den betroffenen Systemen zurückführen, glaubt jedenfalls Nouveau-Entwickler Ilia Mirkin. In seinen Tests habe Web GL – bis auf ein paar kleine Fehler – problemlos funktioniert. Und diese Fehler führt er auf einen Bug im Browser zurück.

Freesync

Der freie AMDGPU-Treiber unterstützt AMDs Freesync. Diese Technologie führt Vesa in der Displayport-Spezifikation als Adaptive Sync. In der HDMI-Spezifikation heißt sie Variable Refresh Rate. Bislang mussten Nutzer variabler Bildwiederholraten auf AMDs selbst bereitgestellten Treiber AMDGPU-Pro zurückgreifen.

Zusammen mit Freesync kommt auch eine Benutzerfunktion, um die variable Bildwiederholrate zu deaktivieren. Um einen vollständigen Support bereitszustellen, müssen die Entwickler aber noch Anpassungen in der 3-D-Bibliothek Mesa vornehmen. Die sind zwar bereits in Arbeit, aber noch nicht offiziell eingepflegt. Das soll aber im Laufe der kommenden Wochen passieren. Auch der Intel-Treiber soll bald Adaptive Sync unterstützen.

Um besonders auf Laptops Energie zu sparen, bringt der AMDGPU-Treiber das Adaptive Backlight Management (ABM) mit. Es soll die Hintergrundbeleuchtung von Displays in vier Stufen herunterregeln und gleichzeitig den Kontrast und die Leuchtkraft einzelner Pixel erhöhen, etwa bei niedriger Umgebungsbeleuchtung. Bislang funktioniert ABM nur mit den integrierten Grafikeinheiten von AMDs Raven-Ridge-APUs.

Der Kernel Fusion Driver (AMDKFD) erlaubt es, auf Grafikeinheiten von AMD spezielle Rechenaufgaben zu erledigen. Er unterstützt neuerdings auch die Chipsätze Polaris 12 und Vega 12. Zudem beherrscht AMDKFD direkte Speicherzugriffe (»DMA-BUF«).

Zero Copy für UDP

Der bereits in Linux 4.14 für TCP-Pakete eingeführte Zero-Copy-Mechanismus funktioniert nun auch für UDP-Pakete. Damit kopiert der Kernel im Zwischenschritt keine Datenpakete mehr in den Arbeitsspeicher, was den Overhead reduziert und die Leistung steigert. Zudem leitet der Kernel UDP-Pakete jetzt auch über den Express Data Path (XDP), der in Linux 4.8 als Teil des Berkeley Packet Filter (BPF) auftritt. Das soll auch die durch Retpoline verursachten Geschwindigkeitseinbußen auffangen.

Generic Receive Offload (GRO) für Plain-UDP-Sockets heißt eine weitere neue Funktion, die UDP-Pakete künftig sammelt und gemeinsam einer Anwendung übergibt, um den Prozessor zu entlasten und den Datendurchsatz zu steigern.

Multi-Queue und ZFS

Für die Datenträgerverwaltung nutzt Linux 5.0 nun endgültig das moderne “Multiqueue Block I/O Queueing” (Blk-MQ). Veraltete Blocklayer-Funktionen und die Scheduler Deadline und CFQ sind Geschichte. Künftig müssen Entwickler zur Optimierung den Scheduler MQ-Deadline heranziehen.

Ab Linux 5.0 kommt Btr-FS nach längerer Pause wieder mit Swap-Dateien zurecht. Allerdings darf die Auslagerungsdatei nur auf einer einzelnen Partition liegen und muss auf Kompression sowie Copy-on-Write verzichten.

Diskussionen entfachte der Verzicht auf veraltete Schnittstellen zur Gleitkomma-Einheit (FPU) in Linux 5.0, die das Dateisystem ZFS nutzt. Die Alternativen benötigen den Aufruf »EXPORT_SYMBOL_GPL()« und sind deshalb für ZFS aufgrund unterschiedlicher Lizenzen inkompatibel. Die ZFS-Entwickler hofften zunächst auf ein Einlenken der Kernelentwickler, mussten dann aber das Problem umgehen, was kleine Geschwindigkeitseinbußen nach sich zieht.

Für den von der Raspberry Pi Foundation angebotenen 7-Zoll-Touchscreen (Abbildung 1) gibt es jetzt einen Treiber. Der liest die Firmware des Displays aus und stellt dessen Funktionen, etwa die Zehn-Finger-Eingabe, im Userspace bereit. Der Quellcode von Linux 5.0 wartet auf http://kernel.org.

Abbildung 1: Der Raspberry Pi lässt sich hinter dem 7-Zoll-Touchscreen der Foundation verstecken.

Abbildung 1: Der Raspberry Pi lässt sich hinter dem 7-Zoll-Touchscreen der Foundation verstecken.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 2 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:
1 Kommentar
Älteste
Neuste Beste Bewertung
Atalanttore
7 Jahre her

Linux-Nutzer mit Nvidia-GPU sind wieder mal der Depp, aber auch selbst daran schuld, weil sie so schrottige Hardware gekauft haben, obwohl es dank AMD eine bessere Alternative gibt.

Nach oben