Kernel-Log – Was 3.15 bringt (4): Infrastruktur

Linux soll sich bald mit dem LLVM-basierten Clang kompilieren lassen. Der Kernel unterstützt zwei weitere x86-Instruktionen. Ein 64-Bit-Linux bootet jetzt auch auf 64-Bit-x86-UEFI-Systemen, die eine 32-Bit-Firmware verwenden.

In Pocket speichern vorlesen Druckansicht 2 Kommentare lesen
Lesezeit: 6 Min.
Von
  • Thorsten Leemhuis
Inhaltsverzeichnis

Durch eine Handvoll von Änderungen arbeitet der Linux-Kernel beim Schlafenlegen und Wecken von Komponenten jetzt an weiteren Stellen asynchron, was die Zeit zum Suspend und Resume des Systems reduzieren kann (1, 2, 3, 4, 5). Die dadurch erzielte Steigerung dürfte auf vielen Systemen aber deutlich kleiner sein als der Gewinn durch die Änderungen am Storage-Code, durch die 3.15 auf manchen Systemen erheblich schneller aus dem Suspend-to-RAM aufwacht; Details dazu erläutert der erste Teil unserer "Was 3.15 bringt"-Serie.

Der Power-Management-Code von 3.15 kann Hardware-Komponenten eine Zeitspanne vorgeben, innerhalb der sie die Arbeit aufnehmen müssen. Dadurch können Komponenten, die Stromsparmodi autark ansteuern, Wechsel in zu tiefe Schlafzustände vermeiden, damit Performance und Reaktionsgeschwindigkeit des Systems nicht leiden (1, 2). Details zur Arbeitsweise und Verwendung des "Latency tolerance device PM QoS type" erläutert ein Artikel bei LWN.net.

Ein 64-Bit-Kernel startet nun auch auf Systemen mit x86-64-Prozessor, aber 32-Bit-UEFI-Firmware (u. a. 1, 2). Dank diesem "EFI Mixed Mode" lässt sich Linux jetzt auf einer Handvoll Notebooks und Tablets verwenden, die Intels Bay-Trail-Prozessoren enthalten, aufgrund von Versorgungsproblemen mit Windows-Treibern aber eine 32-Bit-UEFI-Firmware nutzen – bislang ging das bei solchen Geräten nur mit viel Gebastel. In diese Klasse fällt etwa das in c't 1/14 getestete Packard Bell EasyNote ME69 BMP. Da diesem und einigen ähnlichen Systemen auch ein Compatibility Support Module (CSM) fehlt, kann man auf ihnen bislang nur eine der äußerst raren x86-32-Distributionen installieren, die einen 32-Bit-UEFI-Loader mitbringen.

Mehr Infos

Die "Was Linux 3.15 bringt"-Serie

Das Kernel-Log kann bereits jetzt einen Überblick über die wichtigsten Neuerungen der Linux-Version 3.15 geben, da alle größeren Änderungen bereits in den ersten zwei Entwicklungswochen integriert wurden; das Ende Mai oder Anfang Juni erwartete Linux 3.15 befindet sich seit dem in der Stabilisierungsphase, in der die Kernel-Hacker nur selten größere Umbauten vornehmen.

Über einige der Neuerungen von Linux 3.15 hat das Kernel-Log bereits im Rahmen der Artikelserie "Was 3.15 bringt" berichtet:

  1. Dateisysteme & Storage
  2. Performance-Optimierungen
  3. Netzwerk

In der kommenden Woche folgt noch ein Artikel zu Treibern.

Der Kernel 3.15 beherrscht die neue x86-Instruktion RDSEED (1, 2). Ähnlich wie beim seit 3.2 unterstützten RDRAND ruft RDSEED Zufallsdaten beim Prozessor ab; bei RDSEED wird dessen Pseudo-Random Number Generator (PRNG) aber bei jedem Instruktionsaufruf mit echten Zufallsdaten frisch initialisiert. Intels im Sommer erwartete Broadwell-Prozessoren sollen RDSEED mitbringen.

Neu ist auch Unterstützung für den Instruktionssatz AVX512 (1, 2); ihn sollen verschiedene, in den nächsten Jahren erwartete Intel-Prozessoren beherrschen, um über 32 Register à 512 Bit parallel 8 doppelt genaue Gleitkommawerte zu berechnen.

Einige Entwickler des LLVMLinux Project haben die Kompatibilität mit Clang verbessert; bei den nächsten Versionen sollen weitere Patches dieser Art folgen, damit sich der Linux-Kernel bald mit dem C-Compiler kompilieren lässt, der auf der Compiler-Infrastruktur LLVM aufsetzt.

Der Firmware gegenüber meldet der ACPI-Code des Kernel jetzt Kompatibilität zu "Windows 2013". Der neue Kernel soll dadurch auch auf einigen neueren Systemen sauber laufen, bei denen ältere Versionen aufgrund von Firmware-Fehlern Probleme zeigen; in einigen Fällen bootet Linux nicht einmal.

Kernel mit Unterstützung für Modul-Signaturen können sich jetzt selbst mit dem Taint-Flag "E" markieren, wenn sie ein unsigniertes Modul laden (1, 2).

Der ARM-Code unterstützt jetzt Uprobes, das Performance- und Ablaufprüfpunkte zur Laufzeit in Userspace-Software einfügen kann.

Der Kernel-Debugger KGDB funktioniert jetzt auch auf ARM64.

Es gab noch hunderte andere Änderungen am Code der beschriebenen Kernel-Bereiche. Informationen zu diesen finden Sie über die folgenden Links auf Git-Merge-Commits, mit denen die wesentlichsten Neuerungen dieser Bereiche in Linux 3.15 eingeflossen sind; die zugehörigen Commit-Kommentare enthalten zumeist eine Beschreibung der wichtigsten Änderungen des jeweiligen Subsystems.

Weitere Hintergründe und Informationen rund um Entwicklungen im Linux-Kernel und dessen Umfeld finden sich in den vorangegangenen Kernel-Logs auf heise open. Neue Ausgaben des Kernel-Logs werden auf dem Twitter-Konto "@kernellog" annonciert. (thl) (thl)