Original-URL des Artikels: https://www.golem.de/news/betriebssysteme-linux-4-17-entfernt-alten-code-und-bringt-viel-neues-1806-134739.html    Veröffentlicht: 04.06.2018 08:03    Kurz-URL: https://glm.io/134739

Betriebssysteme

Linux 4.17 entfernt alten Code und bringt viel Neues

In Linux 4.17 profitieren AMDs Grafikkarten erneut von Verbesserungen im quelloffenen AMDGPU-Treiber. Zudem ist der Code vieler obsoleter CPU-Architekturen entfernt worden. Auch der Leerlaufprozess ist optimiert. Die Umsetzung der umstrittenen Sicherheitsfunktion Lockdown ist hingegen vertagt.

Allmählich kehrt wieder Alltag bei den Linux-Entwicklern ein: Große Änderungen zu den Schwachstellen Spectre und Meltdown gab es in Version 4.17 des Linux-Kernels nicht - auch nicht zu den jüngst bekanntgewordenen Versionen v3 und v4 von Spectre. Diese Sicherheitslücken werden in erster Linie durch Microcode-Updates behoben, Vorbereitungen dafür gab es in Linux 4.17 dennoch. Der Linux-Code für IBMs s390 erhält immerhin einige Verbesserungen im Umgang mit Spectre v1 und v2. Hauptsächlich widmeten sich die Kernel-Hacker einigen mittlerweile obsoleten Architekturen und entfernten deren Code. Der Quellcode des Linux-Kernels wurde so um fast eine halbe Million Codezeilen verschlankt. Auch vom quelloffenen Treiber für Grafikkarten von AMD gibt es Neues zu vermelden.

Mit den Patches für das SCSI-Subsystem knackte der Linux-Kernel erstmals die Marke von sechs Millionen Objekten in seinem Git-Repository. Das veranlasste Linux-Erfinder Linus Torvalds zu der - nicht ganz ernstgemeinten - Überlegung, die Nummerierung des Kernels bereits mit dieser Version auf 5.0 zu setzen. Bei der Überschreitung von zwei Millionen Objekten hatte Torvalds den Zähler auf 3.0 gehoben, bei vier Millionen Objekten setzte er Linux auf die Versionsnummer 4.0. Torvalds blieb dennoch bei dem kleineren Sprung auf die Versionsnummer 4.17. Möglicherweise wird Linux mit der Version 4.20 auf 5.0 gesetzt, wie schon bei Linux 3.20, das dann Linux 4.0 wurde.

Viel Neues bei der Grafik

Intels Grafiktreiber unterstützt jetzt High-Bandwidth Digital Content Protection (HDCP), womit Medieninhalte entschlüsselt werden. Der Code wird bereits in Chrome OS verwendet. Der Code für Intels nächste Grafikeinheit alias Cannonlake oder Gen 10 gilt jetzt als so weit ausgereift, dass er standardmäßig aktiviert wird. Erste CPUs mit integriertem Cannonlake-Chip sind bereits erschienen. Gleichzeitig pflegten Intels Entwickler ersten Code für Gen 11 alias Icelake ein.

Der freie Treiber AMDGPU für Grafikkarten von AMD beziehungsweise dessen neuer Display Code (DC), der in Linux 4.15 eingepflegt wurde, ist jetzt für alle Chips von AMD verfügbar. Bislang konnten nur die aktuellen Grafikeinheiten Vega und Raven Ridge von dem neuen Code Gebrauch machen, der unter anderem Audio über HDMI und Displayport sowie HDMI 2.0 unterstützt. Zu den Neuerungen in dieser Version von AMDGPU zählen die Gamma- und Farbverwaltung sowie eine verbesserte Unterstützung für Dual-Link-DVI. AMDGPU DC ist auch Voraussetzung für AMDs Umsetzung variabler Bildwiederholungsraten namens Freesync. Der Code ist allerdings noch nicht fertig und wird wohl erst in einer der nächsten Versionen des Treibers umgesetzt. Die aktuelle Version des DC-Treibers unterstützt auch die kommende Chip-Version Vega 12 von AMD, zu der es allerdings bislang keine Details, sondern lediglich Spekulationen gibt.

Übertakten auch mit dem freien AMD-Grafiktreiber

Jetzt schon von AMDGPU unterstützt werden Funktionen, die im Modul Wattman des proprietären Treibers zur Verfügung stehen. Damit lassen sich die Energieverwaltung, genaue Frequenz und Spannung der Grafikkarte festlegen und deren Auslastung beobachten. Noch fehlt aber eine grafische Oberfläche für das Werkzeug unter Linux. Temperatur, Spannung und Leistungsaufnahme können über die Hardware-Monitoring-Schnittstelle des Kernels (hwmon) ausgelesen, Änderungen müssen manuell über pp_power_profile_mode in Sysfs festgelegt werden. Dort festgelegte Einstellungen lassen sich bislang für AMDs Chips RX 400 und 500 (Polaris), RX 200 (Volcanic Islands) und HD 8000 (Sea Islands) vornehmen.

Nach wie vor arbeiten die Kernel-Hacker an dem AMDKFD HSA genannten Treiber, der unter anderem das Mining auf AMDs Grafikkarten mit den Chips namens Tonga, Fiji und Polaris unter Linux unterstützen soll. Die Heterogenous-System-Architektur ermöglicht beispielsweise GPUs und CPUs, auf einen gemeinsamen Adressraum im Arbeitsspeicher zuzugreifen und so die Leistung der Accelerated Processing Units (APUs) der Grafikkarte zu optimieren. Die jetzt eingereichten Patches schaffen die Grundlage für AMDKFD HSA, damit Grafikchips von AMD mit OpenCL beziehungsweise Radeon Open Compute (ROCm) funktionieren. Bislang mussten Miner den Code in ihrem selbst gebauten Linux-Kernel einpflegen.

Besseres Energiesparen im Leerlauf

Für eine verbesserte Energieverwaltung soll der überarbeitete Leerlaufprozess des Kernels sorgen. Mit den Änderungen, die der Treiber Time and Alarm (TAD) mitbringt, soll die CPU schneller und effektiver in tiefere Schlafmodi versetzt werden können. Dafür wurde das Zusammenspiel in dem Scheduler verbessert. Der Maintainer Rafael Wysocki spricht von einer zehnprozentigen Reduzierung der Leistungsaufnahme auf betroffener Hardware. Gleichzeitig wurde das Load Tracking des Schedulers verbessert. Es soll jetzt genauer vorhersagen können, welche Anforderungen Systeme in naher Zukunft an die CPUs stellen und so die optimale CPU-Taktung auswählen können. Von dieser Neuerung sollen vor allem mobile und eingebettete Systeme profitieren können.

Effizienteres XFS und robusteres Ext4

Das Dateisystem XFS erhält die Option Lazytime. Damit wird der Zähler der Zugriffszeit einzelner Inodes namens Atime im Speicher gehalten und nicht mehr jedes Mal auf den Datenträger geschrieben, wenn ein lesender Zugriff auf eine Datei erfolgt, sondern nur dann, wenn Daten tatsächlich verändert wurden. Die in Linux 4.16 eingeführte Unterstützung für Microsofts Server Messaging Block (SMB) 3.1.1 ist nicht mehr als experimentell eingestuft und deshalb standardmäßig aktiviert. Gleichzeitig wird beim Verbindungsaufbau auch unter Linux zwischen Server und Client ein Chiffre ausgetauscht, bevor eine Authentifizierung stattfindet.

Ext4 soll künftig robuster gegen böswillig kodierte Dateisystem-Images in Containern sein. Einen vollständigen Schutz lieferten die Code-Ergänzungen jedoch nicht, warnt der zuständige Maintainer Ted T'so. Container-Entwickler sollten weiterhin Vorsicht walten lassen. Für das Dateisystem F2FS gibt es jetzt die Unterstützung für Lost+Found, dem Ordner, in dem der Reparaturbefehl Fsck verwaiste Dateifragmente ablegt.

Lockdown wird vertagt

Stichwort Sicherheit: TLS (Transport Layer Security) im Kernel wurde um die Unterstützung auf der Empfängerseite erweitert. Hinzu kommt die Option, Netzwerkdaten, die per sendmsg() und sendfile() übertragen werden, mit dem Berkley Packet Filter (BPF) zu filtern. Das Sicherheits-Framework Apparmor erhält erste Patches für die Verwendung von Netzwerk-Sockets. Für das Verschlüsselungsmodul TPM2 wurde AES im Cipher Feedback Mode umgesetzt. Der von der NSA entwickelte Verschlüsselungsalgorithmus Speck schaffte es in den Kernel. Als symmetrischer Algorithmus soll Speck vor allem für die Verwendung in Software optimiert worden sein.

Die von Security-Maintainer James Morris eingereichten Sicherheitspatches für Linux 4.17 führten bereits zu Diskussionen und letztendlich zu einer vorläufigen Ablehnung durch Linux-Chefentwickler Torvalds. Die unter anderem von Red-Hat-Entwickler David Howells erstellten Patches sollen garantieren, dass Angreifer den laufenden Kernel nicht dauerhaft verändern können. Der sogenannte Kernel-Lockdown wird deshalb kritisiert, weil er automatisch aktiviert wird, wenn das umstrittene Secure Boot im UEFI aktiviert ist. Die Lockdown-Funktion sei zwar begrüßenswert, allerdings sei der Zwang in Kombination mit Secure Boot nicht nachvollziehbar. Lockdown wird wohl erst in einer späteren Version des Linux-Kernels eingeführt.

Aufgeräumt

In Linux 4.17 wurde reihenweise obsoleter Code entfernt. Betroffen sind vor allem CPU-Architekturen, die nicht mehr genutzt werden. Zunächst wurde der Code der 32-Bit-Meta-Architektur ausgemustert, der von dem Unternehmen Imagination Technology stammt, das mittlerweile auf MIPS (Microprocessor without Interlocked Pipeline Stages) setzt, nachdem es sich die Rechte an der Mikroprozessorarchitektur mit der Übernahme der gleichnamigen Firma gesichert hatte. Dabei blieb es aber nicht: Sunplus S+core, Unicore 32, FR-V und M32R werden ebenfalls nicht mehr gepflegt und stehen in Linux 4.17 vor dem Aus. Damit soll der Kernel-Code um etwa 470.000 Codezeilen erleichtert werden. Der Code für IBMs Power 4 CPUs wird ebenfalls entfernt. In dem Code für CPUs der Power4- und Power4+-Serie wurde ein Fehler entdeckt, der sich dort bereits 2016 eingeschlichen hatte - unabsichtlich, wie die Entwickler betonen. Da der Fehler niemandem aufgefallen sei, gehen die Entwickler davon aus, dass sich keiner mehr dafür interessiere. Deshalb wurde die komplette Architektur aus dem Kernel entfernt.

Noch im Rennen sind Qualcomms Hexagon und OpenRISC. Hexagon wird noch von Qualcomm und intern von Kernel-Entwicklern verwendet. OpenRISC wird ebenfalls noch eingesetzt, auch wenn der Code, der in dieser Linux-Version Verbesserungen erhielt, für RISC-V mehr und mehr die gleichen Funktionen übernimmt. Die ebenfalls zur Diskussion stehenden Architekturen Backfin und Tile sollen in späteren Kernel-Versionen entfernt werden, sofern sich keiner für ihren Verbleib einsetzt.

Neu getaktet

Als möglicherweise problematisch stuft Entwickler Thomas Gleixner Änderungen im monotonen Taktzähler CLOCK_MONOTONIC ein. Wie auch CLOCK_BOOTIME springt CLOCK_MONOTONIC nach einer Schlaf- oder Ruhephase des Rechners jetzt auf die aktuelle Zeit um, statt wie bisher einfach nur weiter zu zählen. Beide Zähler arbeiten nun quasi identisch. Das soll vor allem Verwirrung verhindern, der durch den unterschiedlichen Zeitabstand des monotonen Timers und des Echtzeitzähler entsteht, nachdem der PC aus dem Ruhezustand aufgeweckt wurde.

In Anwendungen, die auf den monotonen Taktzähler setzen, könnte diese Umstellung zu Problemen führen. Die Konflikte, die durch den unterschiedlichen Zeitabstand entstehen, seien jedoch gravierender, schreibt Gleixner. Möglicherweise wird diese Änderung aber zurückgenommen, wenn es tatsächlich zu massiven Schwierigkeiten kommt. Es gibt einen neuen Zähler namens CLOCK_MONOTONIC_ACTIVE, der das Verhalten des umgestellten monotonen Timers weiterführt. Er läuft nur dann, wenn das System aktiv ist.

Diese und weitere Änderungen können mit der finalen Version von Linux 4.17 ausprobiert werden, deren Quellcode unter kernel.org zum Download bereitsteht.  (jt)


Verwandte Artikel:
Betriebssysteme: Linux 4.17 bringt Verbesserungen für AMD-Grafikkarten   
(16.04.2018, https://glm.io/133850 )
Multitouch: Linux bekommt Unterstützung für Surface Dial und Dell Totem   
(30.05.2018, https://glm.io/134673 )
AMD: Linux bekommt Support für Vega M und Vega 20   
(16.05.2018, https://glm.io/134419 )
Google: Chromebooks werden mit Linux-Apps zur Entwicklermaschine   
(09.05.2018, https://glm.io/134301 )
Linux: Hardware soll Schlüssel der Kernel-Entwickler schützen   
(06.04.2018, https://glm.io/133710 )

© 1997–2019 Golem.de, https://www.golem.de/