Zum Hauptinhalt Zur Navigation

Betriebssysteme: Linux 4.14 rüstet sich gegen Copyright-Trolle

Linus Torvalds hat den Linux-Kernel 4.14 veröffentlicht. Linux wird künftig bis zu 128 Petabyte virtuellen Arbeitsspeicher verwalten können. Ein Linux Kernel Enforcement Statement soll gegen Copyright-Trolle schützen. Und wie üblich wurde außerdem viel Code aufgeräumt und entschlackt.
/ Jörg Thoma
16 Kommentare News folgen (öffnet im neuen Fenster)
Linux 4.14 ist fertig. (Bild: Lieutenant Philip Hall/NOAA Corps)
Linux 4.14 ist fertig. Bild: Lieutenant Philip Hall/NOAA Corps

Nach einer zehnwöchigen Testphase hat Linus Torvalds den Linux-Kernel in Version 4.14 freigegeben. Linux 4.14 erhält eine Langzeitpflege (LTS). Zu den aufregendsten Neuerungen gehört wohl die Unterstützung der sogenannten Five Level Table Pages(öffnet im neuen Fenster) , die die virtuelle Speicherverwaltung von bis zu 128 Petabyte und 4 Petabyte physischem Arbeitsspeicher durch Prozessoren ermöglichen. Auch wenn der Kernel-Entwickler Jonathan Corbet ironisch bemerkt(öffnet im neuen Fenster) , mehr Speicher brauche auch in Zukunft wohl niemand, litten doch zumindest einige Supercomputer schon unter der bisherigen Begrenzung auf 256 Terabyte virtuellem und 64 Terabyte physischem Speicher.

Quasi in letzter Minute haben die Kernel-Hacker eine Änderung wieder rückgängig gemacht, die in der letzten Kernel-Version eingeführt wurde: /proc/cpuinfo liefert nicht mehr den Durchschnittswert der CPU-Taktfrequenz, sondern wieder die aktuelle Taktfrequenz, was aber bei schnellen und wiederholten Taktwechseln als unzuverlässig gilt. Zwar funktioniere der vorangegangene Code, koste aber auf Systemen mit zahlreichen Kernen zu viel Rechenzeit, schreibt Torvalds. Es gebe bereits eine Lösung, die solle aber erst in der nächsten Kernel-Version eingeführt und dann auf den aktuellen Kernel zurückportiert werden.

Besser gewappnet gegen Copyright-Trolle

Um Nutzer des Linux-Kernels besser gegen Copyright-Trolle zu wappnen, haben die Entwickler eine Art Absichtserklärung als Ergänzung zur GPLv2 verfasst und in der Dokumentation eingefügt. Dort wurden zwei Passagen aus der GPLv3 übernommen. Zum einen gewähren die Entwickler ein 30-tägiges Zeitfenster zur Beseitigung von Lizenzverletzungen. Laut der GPLv2 erlischt die Nutzung des Kernels bei Lizenzverletzungen sofort. Zum anderen darf der Linux-Kernel wieder benutzt werden, wenn die Lizenzverletzungen beseitigt wurden. Unterzeichnet haben 105 Kernel-Entwickler, darunter Linus Torvalds oder Greg Kroah-Hartman. Es handelt sich dabei aber nicht um eine Lizenzänderung. Ob das Dokument vor Gericht standhält, muss sich noch zeigen.

Grund für die Ergänzung sind Berichte über den ehemaligen Netfilter-Entwickler Patrick McHardy, der seine Urheberrechte am Quellcode vor allem in Deutschland mehrfach vor Gericht durchgesetzt hat. Seine tatsächlichen Absichten blieben dabei zwar verborgen, es gebe allerdings Hinweise von mit der Sache Vertrauten, dass McHardy vor allem Schadenersatzansprüche geltend mache und somit seinen eigenen finanziellen Vorteil bei der GPL-Durchsetzung priorisiere. Sowohl die FSF als auch die SFC widersprechen in ihren Richtlinien allerdings genau solch einem Vorgehen und verfolgen als Ziel der GPL-Durchsetzung vor allem die Offenlegung des betroffenen Codes. Im Fall von McHardy ist dies aber offenbar nicht geschehen.

Dateien der Kernel-Quellen, die bislang keine Lizenzbestimmungen im Header enthalten, wurden mit einem SPDX License Identifier ausgestattet, der explizit auf die verwendete Lizenz hinweist, sei es die GPLv2 oder konforme Lizenzen wie BSD oder LGPL. Das SPDX-Format (Software Package Data Exchange) lässt sich mit entsprechenden Analysewerkzeugen auslesen und soll etwa verhindern, dass ungewollt Lizenzverletzungen entstehen.

Fortschritte bei Grafikkartentreibern

Nach mehreren Anläufen hat es Heterogeneous Memory Management (HMM) in den Kernel geschafft(öffnet im neuen Fenster) . Bislang wurde HMM mit dem proprietären Treiber von Nvidia getestet. Künftig können der freie Nvidia-Treiber Nouveau und auch AMDGPU ebenfalls von HMM profitieren. Mit HMM können wichtige Teile des Adressraumes eines Prozesses auf die Memory Management Unit (MMU) eines anderen Gerätes als der CPU gespiegelt werden. Wie bei Nvidia vorgesehen, handelt es sich dabei üblicherweise um Grafikkarten, so dass Anwendungen oder Teile davon eben nicht mehr auf der CPU abgearbeitet werden, sondern direkt von den Bauteilen der Grafikkarte – also GPU und deren RAM. Jetzt können Neuerungen in C++17 oder auch OpenCL 3.0 und Cuda genutzt werden.

Mehr Speicher auch für AMDs Treiber

Noch arbeiten die AMD-Entwickler am Display-Core-Code in dem AMDGPU-Treiber, der überhaupt erst die Ausgabe auf einem an eine Vega-Karte angeschlossenen Bildschirm ermöglicht. Es gibt eine To-do-Liste(öffnet im neuen Fenster) , in der AMD-Entwickler Code-Teile zusammengefasst haben, an denen sie noch arbeiten wollen. In Linux 4.14 gibt es aber Aktualisierungen für den AMDGPU-Treiber, die unter anderem die Verwendung größerer Speicherseiten vorsehen (Huge Pages). So kann die Leistung besonders bei der Verwendung der Vulkan-API erhöht werden. AMDs Treiber für APUs AMDKFU verbessert die Nutzung des Zwischenspeichers und das Kacheln von Bildern auf den AMD-Prozessoren Kaveri und Carrizo.

Der freie Nouveau-Treiber für Grafikkarten von Nvidia kann jetzt kernelgesteuerte Bildschirmauflösungen für Geforce GT 1030 setzen, allerdings noch ohne Hardwarebeschleunigung, da Nvidia den entsprechenden Firmware-Blob noch nicht freigegeben hat. Der für Grafikchips des Raspberry Pi zuständige VC4-Treiber beherrscht jetzt CEC (Consumer Electronics Control) über HDMI und hat weitere Optimierungen erhalten. Für den Grafikprozessor in Cannon-Lake-CPUs von Intel gibt es ebenfalls zahlreiche Patches, die Unterstützung für die Gen10 genannte GPU ist aber noch nicht vollständig.

Redundante Firmware wurde entfernt

Firmware wird künftig ausschließlich aus dem externen Paket Linux-Firmware bezogen und nicht mehr direkt aus dem Firmware-Verzeichnis der Kernel-Quellen. Das wurde längst beschlossen und seit 2013 auch umgesetzt. Seitdem ist das redundante Firmware-Verzeichnis in dem Quellcode des Kernels verwaist, es wurde jetzt auf Betreiben von Greg Kroah-Hartman entfernt. Damit wurden die Linux-Quellen um immerhin mehr als 120.000 Zeilen erleichtert.

Von den Facebook-Entwicklern kommt das Kompressionsverfahren Zstd für Dateisysteme jetzt in den Kernel, das bei Facebook schon seit längerem in Kombination mit Btrfs im Einsatz ist. Zstd verspricht eine ähnlich hohe Kompressionsrate wie das bislang gängige Zlib, soll aber eine deutlich schnellere Kompression und Dekompression ermöglichen. Im Vergleich zu Lzo soll hingegen die Kompressionsrate von Zstd höher sein. Zstd steht im Kernel nicht nur dem Dateisystem Btrfs zur Verfügung, sondern kann dort auch mit SquashFS verwendet werden. An Btrfs wurden weitere Aufräumarbeiten vorgenommen, darunter Optimierungen an der Speicherverwaltung und der Fehlerverarbeitung.

Leistungsschub für BFQ

Ext4 erhielt wenig neuen Code, der unter anderem die Skalierung beim Allozieren von Inodes verbessert. Im Quota-Subsystem wurden Umbauten vorgenommen, die Zugriffe deutlich beschleunigen. Das Resultat: Das Anlegen einer Datei auf einem Ext4-Dateisystem mit gesetzten Quotas erfolgt doppelt so schnell wie zuvor. In XFS wurden ebenfalls hauptsächlich kleinere Fehlerkorrekturen eingefügt. Der zuständige Entwickler Derrick Wong deutet an, dass es stattdessen größere Änderungen im nächsten Linux-Kernel 4.15 geben wird.

Der in Linux 4.12 eingeführte Scheduler Budget Fair Queuing (BFQ) hat zahlreiche Optimierungen erhalten, die laut Entwickler einen merklichen Leistungsschub mitbringen sollen. Completely Fair Queuing (CFQ) hat ebenfalls Optimierungen und Vorarbeiten erhalten, die in einer späteren Version Multi-Pathing(öffnet im neuen Fenster) für NVMe ermöglichen sollen.

Linux legt Systeme besser schlafen

Die für die Verwaltung der Taktfrequenzen von Prozessoren zuständige CPU-Frequency-Governers (Cpufreq) können jetzt mehrere verschiedene CPUs ansprechen. Das soll nicht nur für eine bessere Energieverwaltung sorgen, sondern auch eine optimierte Reaktionszeit bei Änderungen der Systemlast ermöglichen. Auch der für die P-States verantwortliche Intel-Treiber erhielt Verbesserungen. Zudem soll der Linux-Kernel mehr Systeme erkennen, die den moderneren Schalfmodus Suspend-to-Idle (S2I, Modern Standby) beherrschen und ihn dann statt S3 (Suspend-to-RAM) verwenden. S2I kommt inzwischen bei modernen Notebooks zum Einsatz und lässt sie deutlich schneller aufwachen, wenn der Deckel aufgeklappt wird. Außerdem wird im Schlafzustand die Netzwerkverbindung aufrechterhalten. Das geht aber auf Kosten einer etwas höheren Leistungsaufnahme.

Das kryptographische Subsystem in Linux 4.14 unterstützt AMDs Secure-Prozessor, der in Form eines Cortex-A5 in aktuellen APUs und CPUs eingebettet ist und ARMs Trustzone verwendet. Unterstützt werden RSA, XSTS-AES-128 sowie XTS-AES-256. Zudem kümmert sich der AMD-Secure-Prozessor um die Schlüsselverwaltung und kann das in Linux 4.12 eingeführte Trusted Execution Enviroment (TEE) ansprechen. Auch die mit AMDs neuen EPYC-CPUs eingeführte Unterstützung zur Verschlüsselung des Arbeitsspeichers namens Secure Memory Encryption setzt Linux 4.14 jetzt um.

Linux 4.14 kann unter kernel.org(öffnet im neuen Fenster) heruntergeladen werden.


Relevante Themen