Die Neuerungen von Linux 4.2

Der neue Kernel bringt gleich zwei neue Grafiktreiber mit. Nach Ext4 bietet nun auch das F2FS eine Verschlüsselung direkt im Dateisystem. Über eine neue UEFI-Technik lässt sich bei der Systemaktualisierung auch die Firmware auf den neuesten Stand bringen.

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

Linus Torvalds hat den Linux-Kernel 4.2 freigegeben. Zu dessen größten Neuerungen zählt der Treiber Amdgpu, über den der Kernel jetzt die "Volcanic Islands"-Grafikprozessoren von AMD unterstützt. Zu dieser neuen Generation von Radeon-GPUs gehören unter anderem der Chip auf der Radeon R9 285 sowie der Grafikkern, der in AMDs im Juni eingeführten Notebook-APUs "Carrizo" steckt.

Der neue Kernel-Grafiktreiber beherrscht nicht nur die Bildschirmkonfiguration und Bildausgabe, sondern offeriert auch Basisfunktionen für andere Treiber. Mit ihnen wird der 3D-Treiber Radeonsi von Mesa 11.0 die 3D-Beschleunigung von Volcanic-Islands-GPUs verwenden können. Diese im September erwarteten Mesa-Version erfordert dazu allerdings LLVM 3.7, das dieser Tage erscheint.

Diese Komponenten und der neue Kernel sollen noch in einige der im Herbst erwarteten Linux-Distributionen einfließen, die so AMDs neue GPUs automatisch ansprechen werden. Der Amdgpu-Kernel-Treiber beherrscht bislang allerdings das Takt- und Power-Management einiger Volcanic-Islands-GPUs nicht, daher laufen sie nicht mit der höchstmöglichen Taktfrequenz und liefern nur einen Teil der möglichen 3D-Performance. Zudem unterstützt der Treiber die Volcanic-Islands-GPUs nicht, die bei AMDs im Hochsommer eingeführter Grafikkartenserie Radeon R9 Fury zum Einsatz kommen; das soll sich mit Linux 4.3 ändern.

Auf den Amdgpu-Kernel-Treiber soll in Zukunft auch ein neuer proprietärer 3D-Treiber von AMD zurückgreifen. Dadurch ist kein eigener Kernel-Treiber mehr nötig, wie ihn AMDs proprietärer Catalyst-Treiber bislang mitbringt. Das soll Inkompatibilitäten zwischen AMDs proprietären Treiber und neuen Kernel-Versionen vermeiden; solche gibt es bei beim Kernel-Treiber von Catalyst bislang immer mal wieder, daher lässt er sich oft nicht unter Distributionen einrichten, die besonders junge Kernel-Versionen einsetzen.

In Linux 4.2 eingeflossen ist auch der Grafiktreiber Virtio-GPU; er verspricht die Interaktion zwischen virtuellen Maschinen (VMs) und Linux-Host zu verbessern und soll dabei auch die Grafik-Performance steigern.

Dazu kann ein als Gastbetriebssystem laufendes Linux mit dem neuen Treiber einen Grafikprozessor ansprechen, den das Anfang August erschienene Qemu 2.4 auf Wunsch bereitstellt. Anders als viele der anderen von Qemu emulierten Grafikprozessoren unterstützt die neue Kombination den Mehrschirmbetrieb und hohe Bildschirmauflösungen. Der neue Grafiktreiber kann zudem die Auflösung automatisch an die Größe des Fensters anpassen, das die Bedienoberfläche der VM zeigt.

Das bei der KVM- oder Xen-Virtualisierung oft eingesetzte Qemu und der neue Kernel-Grafiktreiber kommunizieren über Virtio. Dieses I/O Virtualization Framework wird bereits häufig beim Zugriff auf Netzwerk- oder Storage-Hardware verwendet, weil es Paravirtualisierungs-Techniken nutzt, über die Wirt und Gast sehr effizient Daten austauschen können.

Der federführende Entwickler von Virtio-GPU vermutet allerdings, dass Virtio vorerst keinen spürbaren Geschwindigkeitszuwachs bringt. Größere Bedeutung bekommt die effizientere Kommunikation erst mit der nächsten Ausbaustufe, bei der ein 3D-Treiber im Gast über Virtio-GPU auf manche 3D-Treiber des Hosts zurückgreifen kann, um so im Gast indirekt die 3D-Beschleunigung der Host-Hardware verwenden zu können. Diese als "Virgil 3D" entwickelten Verbesserungen sollen vermutlich noch in diesem Jahr in Kernel, Qemu und Mesa einfließen.

Der Linux-Kernel beherrscht jetzt UEFI-Techniken, um die Firmware des Mainboards und damit fest verbundenen Grafik-, Storage- oder Netzwerk-Prozessoren zu aktualisieren. Dazu unterstützt Linux 4.2 die EFI System Resource Table (ESRT) – eine kürzlich mit UEFI 2.5 spezifizierte Technik, über die Anwendungen die installierte Firmware-Version abfragen können. Zusammen mit dem schon älteren "UEFI Capsule Update" können Programme neuere Firmware-Versionen im UEFI-Speicher hinterlegen, die das UEFI-BIOS des Mainboards dann beim nächsten Systemstart einspielt. Das Ganze wird aber bislang von kaum einem Mainboard unterstützt.

Das Fedora-Projekt will solche Firmware-Updates beim für Oktober geplanten Fedora 23 unterstützen. Die Hauptarbeit soll dabei das Software-Verwaltungsprogramm von Gnome erledigen. Dazu hat dessen Entwickler einen noch als Beta eingestuften Webdienst "Linux Vendor Firmware Service" (LVFS) eingerichtet, bei dem Hardware-Hersteller ihre Firmware-Updates hinterlegen können; System-Aktualisierungsprogramme wie Gnome-Software sollen die Firmware-Updates dort finden und zur Installation anbieten.

Die über mehrere Jahre entwickelte Schnittstelle zum "Atomic Modesetting" gilt mit Linux 4.2 nun als fertig und ist standardmäßig aktiv. Diese Erweiterung des Basis-Frameworks für Kernel-Grafiktreiber soll die Bildausgabe verlässlicher machen. Dadurch lässt sich beispielsweise bei der Video-Wiedergabe sicherstellen, dass mehrere Ebenen eines Anwendungsfensters zeitgleich aktualisiert werden – etwa damit ein Video-Player nicht das Video anzeigt, bevor auch der Fensterrahmen und die Steuerelemente zur Darstellung bereit sind.

Auch das Einstellen der Monitorauflösung und die Mehrschirmkonfiguration wird robuster. Zudem lassen sich die Fähigkeiten moderner Grafik-Hardware besser nutzen; der Direct Rendering Manager, bei dem unter anderem die Kernel-eigenen Grafiktreiber für die gängigen Grafikprozessoren von AMD, Intel und Nvidia andocken, eignet sich dadurch auch besser für die GPUs von Embedded-Prozessoren.

Details zu diesen und weitere Eigenschaften erläutern der erste und zweite Teil des LWN.net-Artikels "Atomic mode setting design overview". Er stammt vom Betreuer des Kernel-Treibers für moderne Intel-GPUs. Genau wie eine Reihe anderer Treiber nutzt jener für Intel-GPUs die neue Schnittstelle aber noch nicht direkt, denn die Portierung vieler Treiber ist noch im Gange.

Der Radeon-Treiber bietet jetzt Schnittstellen zum Zugriff auf den Video-Encoder, der in AMD-GPUs der "Southern-Island"-Generation steckt. Hierzu gehören etwa die Chips der Radeon-Grafikkarten HD 7750, HD 7770,HD 7850 bis 7990, R7 240 und R9 280 sowie die GPUs, die AMD in der 5000er- und 6000er-Serie der A4-, A6-, A8- und A10-APUs verbaut hat. Die Video Coding Engine (VCE) 1.0 dieser GPUs lässt sich mit AMDs Video-Treibern in Mesa 11.0 ansprechen. Der Video-Beschleuniger-Treiber älterer Mesa-Versionen unterstützt nur den VCE 2.0 und neuer; solche stecken etwa in GPUs der "Sea-Island"-Generation und werden bereits seit rund einem Jahr vom Kernel unterstützt.

Das Dateisystem F2FS kann jetzt Verzeichnisse individuell verschlüsseln (1, 2, 3, 4). Viel des dafür zuständigen Codes haben die Entwickler aus Ext4 übernommen, das seit Linux 4.1 eine ganz ähnlich funktionierende Verschlüsselungsfunktion bietet. Sie wurde primär für Systeme entwickelt, die mehrere Anwender nutzen – beispielsweise Android-Tablets oder Chromebooks, die sich die Mitglieder eines Haushalts teilen. Genau in solchen Geräten stecken oft simple Flash-Datenträger, für die F2FS entwickelt wurde.

Das Device-Mapper-Target zum Einrichten eines Storage-Caches nutzt jetzt standardmäßig eine neue Cache-Strategie; das DM-Target, mit der sich etwa eine SSD als Cache für langsamere Datenträger einrichten lässt, soll dadurch ressourcenschonender und schneller arbeiten.

Das CIFS-Dateisystem zum Zugriff auf Samba- oder Windows-Freigaben unterstützt jetzt eine mit dem SMB-Protokoll 3.11 definierte Kopierfunktion, bei der Server die Daten selbst kopieren. Das vermeidet eine zeitraubende Hin- und Herübertragung der Daten vom Server zum Client und kann Kopiervorgänge so um ein Vielfaches beschleunigen.

Die Kernel-Entwickler haben zahlreiche Umbauten am Writeback-Cache vorgenommen, der geschriebene Daten auf dem Weg zum Datenträger puffert. Die Umbauten sollen die Performance insbesondere auf Systemen verbessern, die Control Groups (Cgroups) nutzen; bei modernen Linux-Distributionen ist das typischerweise der Fall, um den Ressourcenverbrauch regeln zu können.

Durch die bei LWN.net näher erläuterten Umbauten wird jetzt der Speicherverbrauch und die Datenträgernutzung derjenigen Cgroup zugeordnet, deren Prozess den Puffer gefüllt hat. Das ist beim Einsatz von VMs und Containern wichtig, weil ein Angreifer oder ein Amok laufender Prozess einer VM sonst den Writeback-Cache so stark beanspruchen kann, dass es andere VMs extrem verlangsamt und stört.

Der Kernel unterstützt jetzt auch Touchpad und Tastatur einiger der in diesem Jahr eingeführten MacBook-Pro-Modelle. Das sind nur zwei aus einer ganzen Reihe neuer und überarbeiteter Treiber, durch die Linux 4.2 die Hardware-Unterstützung verbessert. Erstmals dabei ist ein Treiber für die DVB-S/DVB-S2-Karte TechniSat Skystar S2 und auch die Logitech M560, eine für Windows 8 entwickelte Wireless Mouse, wird nun unterstützt.

Linux 4.2 ist die erste Version, bei der die Dateien in den Kernel-Quellen mehr als 20 Millionen Zeilen enthalten. Laut dem Analyseprogramm cloc sind 13,5 Millionen davon Code, von denen 97 Prozent in C und 2 Prozent in Assembler geschrieben sind. Zum Vergleich: Das Quellarchiv von Firefox 38 ist mit 19,2 Million Zeilen fast genauso groß, hier sind aber nur 11,2 Millionen Zeilen Code.

Für die neue Linux-Version wurden rund 13.700 Änderungen in das Quellcodeverwaltungssystem eingepflegt (Git-Merges nicht mitgezählt); zudem wuchsen die Kernel-Quellen netto um rund 800.000 Zeilen. Mit beiden Werten bleibt der Kernel jeweils ganz knapp hinter den Rekordhaltern in diesen Bereichen.

Direkt nach der Freigabe der neuen Linux-Version beginnt nun die Phase, in der Linus Torvalds das Gros der Änderungen für die nächste größere Überarbeitung des Linux-Kernels annimmt; dieses "Merge Window" beendet er typischerweise nach zwei Wochen mit der Veröffentlichung einer ersten Vorabversion.

In dieser Phase wollen die Entwickler den Ext3-Dateisystemcode aus dem Kernel entfernen. Ext3-Dateisysteme sollen stattdessen mit dem aus Ext3 hervorgegangenen Ext4-Dateisystemcode angesprochen werden. Das erleichtert die Wartung des Kernels; bei vielen modernen Distributionen ist der Ext4-Code ohnehin schon länger für Ext2- und Ext3-Dateisysteme zuständig.

In 4.3 einziehen soll ein Dateisystem-Client für das Orange File System – ein aus dem Parallel Virtual File System (PVFS) hervorgegangenes verteiltes Dateisystem, das speziell für große Cluster mit vielen parallelen Zugriffen entwickelt wurde.

Derzeit deutet indes nichts darauf hin, dass der Interprozess-Kommunikationsdienst Kdbus in 4.3 einfließt. Dessen Programmierer hatten ihn erstmals zur Aufnahme in Linux 4.1 eingereicht. Einige Kernel-Entwickler wiesen dabei auf Design-Schwächen hin und sprachen sich gegen eine Integration aus. Die Kdbus-Entwickler haben einige der Schwächen zwischenzeitlich ausgeräumt und arbeiten an weiteren Verbesserungen; sie haben in den letzten Monaten aber noch nicht wieder um eine Begutachtung von Kdbus als Ganzes oder um eine Aufnahme in den offiziellen Kernel ersucht.

Im Entwicklungszweig Linux-Next, wo die Änderungen für die nächste größere Überarbeitung des Kernels aufeinander abgestimmt wurden, liegen derweil rund 9500 weitere Änderungen zur Aufnahme in Linux 4.3 bereit. Diese Version dürfte Anfang November erscheinen, sofern Torvalds und seine Mitstreiter im gewohnten Tempo arbeiten. Ein Artikel wie dieser wird dann wieder einen Überblick über die wichtigsten Neuerungen liefern.

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

47433

18879129
(17527507)
56 Tage 13830 9807 files changed,
 513830 insertions(+),
 267276 deletions(-)
3.17 47503 18864388
(17484200)
63 Tage 13331 10605 files changed,
 651466 insertions(+),
 666200 deletions(-)
3.18 47986

18994096
(17586160)
63 Tage 12361 9303 files changed,
 485509 insertions(+),
 355800 deletions(-)
3.19 48440 19130604
(17692109)
63 Tage 13652 10739 files changed,
483355 insertions(+),
346843 deletions(-)
4.0 48957
19312370
(17847304)
63 Tage
11306
9489 files changed,
 508686insertions(+),
 326917 deletions(-)
4.1

49457 19512485
(18004436)
70 Tage 12965 10094 files changed,
 453375 insertions(+),
 253259 deletions(-)
4.2 50795 20311717
(18755735)
70 Tage 14750 10926 files changed,
 1079245 insertions(+),
 280008 deletions(-)
¹ git ls-tree -r --name-only HEAD | 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 --pretty=oneline vx.(y-1)..vx.(y) | wc -l
⁴ git diff --shortstat vx.(y-1)..vx.(y)
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 4.0, wie Sie die Quellen herunterladen, entpacken und auf Unversehrtheit prüfen:

[thl@thl tmp]$ export linux_version=4.0
[thl@thl tmp]$ wget --quiet \
http://www.kernel.org/pub/linux/kernel/v4.x/linux-${linux_version}.tar.sign \
http://www.kernel.org/pub/linux/kernel/v4.x/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 13 Apr 2015 00:40:31 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)