Die Neuerungen von Linux 3.19

Der Kernel kann nun eine AMD-Technik nutzen, die das Zusammenspiel von Haupt- und Grafikprozessor verbessert. Einige Erweiterungen schaffen Grundlagen zur besseren Unterstützung von 4k-Monitoren. Der RAID-5/6-Support von Btrfs und der NVMe-Treiber wurden deutlich verbessert.

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

Linus Torvalds hat Linux 3.19 veröffentlicht. Es ist die erste Kernel-Version mit dem Treiber "amdkfd", mit dem sich "Heterogeneous Queuing" (HQ) bei Prozessoren und Grafikchips von AMD nutzen lässt. Die Technik ist eine von mehreren der "Heterogeneous System Architecture" (HSA), mit denen AMD und andere Unternehmen die Effizienz bei der Zusammenarbeit verschiedener Prozessoren eines Systems steigern wollen.

Heterogeneous Queuing macht es dabei leichter, Teilaufgaben einer größeren Arbeitsaufgabe mit Haupt- oder Grafikprozessor auszuführen, je nachdem, welcher der Chips am besten für die jeweilige Aufgabe geeignet ist. Programme interagieren aber nicht direkt mit dem neuen Treiber, sondern nutzen die Technik über die "HSA Runtime" – eine Userspace-Biliothek, die vornehmlich von AMD entwickelt und im November von der HSA Foundation unter einer Open-Source-Lizenz veröffentlicht wurde. Zu den AMD-Chips, die Heterogeneous Queuing unterstützen, zählen die Prozessoren mit Kaveri-Kern, die AMD seit Anfang 2014 verkauft.

Die Kernel-Entwickler haben Grundlagen geschaffen, um die Ansteuerung von 4K-Monitoren sowie von Monitorausgängen in den Docking-Stationen moderner Notebooks zu verbessern – zwei Bereiche, in denen Linux-Distributionen derzeit immer mal wieder Probleme zeigen. Bevor diese aus der Welt sind, müssen aber noch X-Server und Wayland Compositors erweitert werden, um mit Hilfe der jetzt geschaffenen Grundlagen solche Hardware besser zu unterstützten.

Mehr Infos

Im Detail

Die vierteilige Kernel-Log-Artikelserie "Was 3.19 bringt" hat bereits in den vergangenen Wochen detailliert über die wesentlichen Neuerungen von Linux 3.19 berichten, denn die waren bereits seit Weihnachten absehbar:

  1. Dateisysteme und Storage
  2. Netzwerk
  3. Infrastruktur
  4. Treiber

Der nebenstehende Text erwähnt die wichtigsten Neuerungen, die in diesen Artikeln zur Sprache kamen; zudem gibt er einen Ausblick auf einige der Änderungen, die für den Nachfolger von 3.19 entwickelt wurden.

In den Kernel ist das Gros Infrastruktur für "Atomic mode-setting" eingeflossen, durch das unter anderem der Wechsel der Bildschirmauflösung oder die Zweischirmkonfiguration im Betrieb verlässlicher, schneller und mit weniger Bildstörungen erfolgen sollen. Ferner können Anwendungen über die Infrastruktur sicher stellen, dass verschiedene Ebenen eines Anwendungsfensters zeitgleich erscheinen – etwa damit der Inhalt eines Anwendungsfensters nicht dargestellt wird, bevor auch der Fensterrahmen zur Darstellung vorliegt. Die Treiber für Mainstream-PC-Grafikprozessoren profitieren davon aber bislang nicht, denn sie sollen erst bei späteren Versionen auf die neue Infrastruktur zurückgreifen.

Das Netzwerk-Subsystem des Linux-Kernels enthält nun eine Infrastruktur, mit denen Treiber viele Switching- und Routing-Aufgaben an Hardware-Bausteine delegieren können, die für solche Aufgaben geschaffen wurden. Dadurch sollen sich universelle Linux-Distributionen mittelfristig als Betriebssysteme für Switches eignen, wie sie in Rechenzentren stehen. Es sind aber noch passende Treiber nötig, bevor universelle Linux-Distributionen in den Markt für Switch-Betriebssysteme vordringen können. Der neue Kernel bringt nämlich lediglich einen als Referenzimplementierung gedachten Treiber "rocker" mit, der die neue Infrastruktur nutzt; er unterstützt allerdings keinen echten Switching- und Routing-Chip, sondern einen von Qemu emulierten.

Der Speichermanagement-Code des Kernels unterstützt nun mehr Funktionen der Page Attribute Table (PAT) moderner x86-Prozessoren; dadurch könnten nun beispielsweise Grafiktreiber Write-Through Caching beim Zugriff auf den Video-Speicher nutzen, was die Grafik-Performance steigern kann. Der Kernel unterstützt nun auch den "Nios II", eine von Altera geschaffene 32-Bit-Prozessor-Architektur, die das Unternehmen bei einigen FPGAs nutzt. Der ARM64-Code von Linux kann nun einige von älteren ARM-Architekturen unterstützte CPU-Instruktionen emulieren, die ARM mit ARMv8 aufgeben hat oder irgendwann aufgeben will. Der neue Linux-Kernel unterstützt erstmals AMDs Opteron A1100 aka Seattle – ein für Server gedachtes 64-Bit-SoC (System on Chip) mit ARMv8-Architektur, das es bislang nur auf Mainboards gibt, die für Entwickler konzipiert wurden.

Unter zahlreichen der für 3.19 in Linux integrierten Treiber sind zwei für Touchpads und Touchscreens von Elantech, die in einer Reihe von Chromebooks stecken. Ebenfalls neu dabei ist ein Treiber für die DVB-S/DVB-S2-Karte DVBSky S950 V3.

Es lassen sich nun auch Datenträger von Btrfs-Volumes austauschen, die Daten mit den Dateisystem-eigenen RAID-5/6-Funktionen ablegen; zudem unterstützt Btrfs nun auch bei diesen RAID-Leveln Scrub-Läufe, bei denen das Dateisystem alle Daten liest und die Integrität über Checksummen prüft; eventuelle Fehler repariert Btrfs sogar automatisch, sofern die intakten Redundanz-Informationen dazu ausreichen. Vor der RAID-5/6-Unterstützung in Btrfs wird aber nach wie vor gewarnt, denn sie bleibt unvollständig und experimentell.

Der NVMe-Treiber, der PCIe-SSDs von Intel und einigen anderen Herstellern anspricht, verwendet jetzt den Multi-Queue Block IO Queueing Mechanism. Er ist deutlich besser auf die Belange besonders flotter SSDs abgestimmt als die bislang genutzte Block-Layer-Infrastruktur, daher verspricht die Portierung den Datendurchsatz zu steigern und die Zugriffszeiten zu senken. Das für Thin Provisioning zuständige DM-Target, das auch bei manchen Docker-Installationen verwendet wird, soll nun deutlich schneller arbeiten.

Direkt nach der Freigabe der neuen Kernel-Version beginnt nun das Merge Window, in dem Linus Torvalds das Gros der Änderungen für die nächste Kernel-Version annimmt; diese Phase ist typischerweise zwei Wochen lang und endet mit der Veröffentlichung der ersten Vorabversion.

Unter den zur Aufnahme bereit liegenden Änderungen ist "Kernel Live Patching" (KLP) – eine Lösung, um Sicherheitslücken des Kernels im Betrieb zu stopfen und so Neustarts zu vermeiden. KLP stammt von den Red-Hat- und Suse-Entwicklern, die Kgraft und Kpatch entwickelt haben. Die hatten sich darauf verständigt, eine gemeinsame Basis für ihre Live-Patching-Lösungen zu schaffen. Dazu haben sie sich aber vorerst auf die Kern-Funktion beschränkt. Mit KLP sollen sich daher nur zirka 90 Prozent der Sicherheitslücken stopfen lassen, die es typischerweise beim Kernel gibt; Kgraft und Kpatch sollen hingegen ungefähr 95 Prozent ohne Neustart beheben können. Die Entwickler wollen KLP aber noch ausbauen, um in diesen und anderen Bereichen aufzuholen. Noch unklar ist, ob die Kgraft- und Kpatch-Entwicker die Programme zum Erzeugen der Live-Patches zusammenlegen wollen.

Zur Aufnahme vorgesehen sind auch Änderungen, um die Lüftersteuerung bei Grafikkarten mit Southern-Island-Chips endlich ordentlich zu nutzen. Solche GPUs stecken auf vielen Radeon-Karten der Serie HD 7750 bis HD7970 sowie den Modellen R7 240, R7 250, R9 270, und R9 280. Anders als derzeit sollen die Lüfter solcher Karten daher beim Einsatz der Open-Source-Grafiktreiber nicht mehr schneller und dadurch lauter laufen als bei den proprietären Linux- und Windows-Treibern.

Mit den Worten "Das Merge Windows für 3.20 ist jetzt offen" deutete Torvalds in der Freigabe-Mail von 3.19 an, dass der Nachfolger von 3.19 wohl die Versionsnummer 3.20 bekommt. Es ist aber nicht auszuschließen, dass er es doch 4.0 wird, denn bereits bei der Veröffentlichung von 3.12 hatte er einige Überlegungen angestellt, nach 3.19 vielleicht auf 4.0 wechseln zu wollen. Damals führte er als Grund an, er wolle die letzte Zahl der Versionsnummer nicht wieder so groß werden lassen wie bei der 2.6er-Serie. Die war damals mit 2.6.39 zu Ende gegangen.

Sofern Torvalds und seine Mitstreiter im gewohnten Tempo arbeiten, dürfte der Nachfolger von 3.19 Mitte April erscheinen. Ein Artikel wie dieser wird dann wieder einen Überblick über die wichtigsten Neuerungen dieser Version liefern.

Linux-
Version
Anzahl
Dateien¹
Zeilen
Quelltext
(Ohne Doku)²
Entwick-
lungs-
zeitraum
Anzahl
Commits³
Diffstat⁴
3.13

44970 17930916
(16703764)
77 Tage 12127 9843 files changed,
 441474 insertions(+),
 237428 deletions(-)
3.14 45935 18271989
(17002462)
70 Tage 12311 10601 files changed,
 605655 insertions(+),
 264576 deletions(-)
3.15 46780 18632574
(17323446)
53 Tage 13722 11427 files changed,
 932110 insertions(+),
 571520 deletions(-)
3.16

47425 18879129
(17527507)
56 Tage 12804 9807 files changed,
 513830 insertions(+),
 267276 deletions(-)
3.17 47490 18864388
(17484200)
63 Tage 12354 10605 files changed,
 651466 insertions(+),
 666200 deletions(-)
3.18 47971 18994096
(17586160)
63 Tage 11379 9303 files changed,
 485509 insertions(+),
 355800 deletions(-)
3.19 48424 19130604
(17692109)
63 Tage 12617 10739 files changed,
 483355 insertions(+),
 346843 deletions(-)
¹ find . -type f -not -regex '\./\.git/.*' | wc -l
² find . -type f -not -regex '\./\.git.*' | xargs cat | wc -l; echo "($(find . -name *.[hcS] -not -regex '\./\.git.*' | xargs cat | wc -l))"
³ git-log --no-merges --pretty=oneline v3.(x-1)..v3.(x) | wc -l
⁴ git diff --shortstat v3.(x-1)..v3.(x)
Mehr Infos

Linux herunterladen

Die neue Linux-Version steht über Kernel.org zum Download bereit. Den Kernel-Quellcode gibt es in Tar-Archiven, die mit Gzip und Xz komprimiert wurden. Die folgenden Befehle zeigen am Beispiel von Linux 3.1, wie Sie die Quellen herunterladen, entpacken und auf Unversehrtheit prüfen:

[thl@thl tmp]$ export linux_version=3.1
[thl@thl tmp]$ wget --quiet \
http://www.kernel.org/pub/linux/kernel/v3.0/linux-${linux_version}.tar.sign \
http://www.kernel.org/pub/linux/kernel/v3.0/linux-${linux_version}.tar.xz
[thl@thl tmp]$ xz -d linux-${linux_version}.tar.xz
[thl@thl tmp]$ gpg --verify linux-${linux_version}.tar.sign
gpg: Unterschrift vom Mo 24 Okt 2011 09:17:58 CEST mittels RSA-Schlüssel ID 00411886
gpg: Korrekte Unterschrift von "Linus Torvalds <torvalds@linux-foundation.org>"
gpg: WARNUNG: Dieser Schlüssel trägt keine vertrauenswürdige Signatur!
gpg: Es gibt keinen Hinweis, daß die Signatur wirklich dem vorgeblichen Besitzer gehört.
Haupt-Fingerabdruck = ABAF 11C6 5A29 70B1 30AB E3C4 79BE 3E43 0041 1886

Einige Hinweise zur Installation eines neuen Kernels finden Sie im Artikel "Linux-Kernel maßgeschneidert", der das Konfigurieren und Übersetzen eines Kernels mit Hilfe des Make-Targets "localmodconfig" beschreibt.

(thl) (thl)