Mit etwa einer Million Codezeilen mehr ist die Vorabversion des Linux-Kernels 4.2 der umfangreichste bisher veröffentlichte Versionssprung. Fast die Hälfte des Codes gehört zu einem neuen Treiber.
Linux 4.2 bricht gleich zwei Rekorde: Erstmals besteht der Kernel aus mehr als 20 Millionen Codezeilen. Damit hat sich seit Oktober 2008, als der Kernel 2.6.27 erschien, die Zahl der Codezeilen verdoppelt. Zugleich ist Linux 4.2rc1 mit etwa einer Million ergänzter und 250000 gelöschter Quellcodezeilen zeilenmäßig der größte Versionssprung bisher.
AMD dreht auf
Fast die Hälfte des Codes gehört zu einem Treiber: AMDGPU. Dessen Bestandteile bilden die Basis für AMDs künftige Grafikchips der Radeon-R9-Serie mit der Fiji-GPU sowie für die geplanten Carrizo-APUs. Der Treiber bespielt bereits die Radeon R9 285 Tonga und die R9 Fury X, die seit dem Juli im Handel ist. Er soll Open GL 3.3, AMDs Video Coding Engine 1.0 (VCE1) und den Unified Video Decoder (UVD) unterstützen.
VCE1-Support haben die Entwickler auch dem alten Radeon-Treiber spendiert. Sie wollen ihn weiterhin pflegen, damit er funktionsgleich zu AMDGPU bleibt. Letztgenannter dient nicht nur als Basis für die freien Treiberkomponenten, sondern auch für AMDs proprietären Catalyst. Die proprietären Teile umfassen den Userspace mit Implementierungen für Open GL und Open CL. Die Register-Header von AMDGPU für alle einzelnen Blocks auf den Chips bilden 41 Prozent des Codes von Linux 4.2rc1.
F2FS verschlüsselt
Nachdem Ext 4 auf Googles Initiative hin bereits nativ Dateien verschlüsselt, funktioniert das jetzt auch für das Dateisystem F2FS. Samsung hat es maßgeblich entwickelt, es kommt unter Android auf den mobilen Geräten des Unternehmens zum Einsatz. Samsung verschlüsselt auf Dateisystemebene, um die Zugriffe zu beschleunigen.
Auch von XFS gibt es Neues. Über die Schnittstelle Dax (Direct Access) greift das Dateisystem direkt auf nicht-flüchtige DIMMs zu. Dax [1] wurde als Xip für Ext 4 entwickelt und später unter dem neuen Namen so erweitert, dass es auch andere Dateisysteme unterstützt.
Nicht zuletzt bringt das Netzwerk-Dateisystem Cifs nun experimentellen Support für Version 3.1.1 des SMB-Protokolls von Microsoft mit. Ext 4 wiederum hat gelernt, Platz in existierenden Dateien mit einer Reihe von Nullen zu füllen.
Sicherheitsgewinn
Künftig unterstützt das Linux Security Modul (LSM) nicht nur ein Sicherheits-Framework, sondern mehrere, darunter SE Linux, Smack, Tomoyo und App-Armor. Der bisherige Ansatz mit Yama [2] galt als ineffizient, als Alternative haben die Kernelhacker das so genannte Stacking mehrerer LSM entwickelt. Das Stacking-Modul bietet eine einheitliche Schnittstelle für die anderen LSM.
Im Netzwerkbereich klassifiziert das neue Netfilter-Subsystem Pakete nach ihrem Eintrittszeitpunkt in ein Netzwerk. Daneben gibt es einen neuen Paketsichter namens Flower, den seine Nutzer auf Basis einer Kombination von Paketschlüsseln und Masken konfigurieren.
Das Netzwerk-Subsystem erhielt einen Treiber für das virtuelle Netzwerkprotokoll Geneve (Generic Network Virtualization Encapsulation, [3]). Auf Geneve hatten sich unter anderem VMware und Microsoft geeinigt. Es soll die Netzwerk-Virtualisierung voranbringen, indem es die Kommunikation zwischen diverser Hard- und Software in virtualisierten Umgebungen standardisiert.
Apropos Virtualisierung: Der KVM-Hypervisor unterstützt nun mehrere Adressräume und einen Systemmanagement-Modus. Beides kommt der Secure-Boot-Fähigkeit von Gästen zugute. Zu den weiteren Neuerungen gehört ein Zufallszahlengenerator, der Zufall erzeugt, indem er sich auf Schwankungen in der CPU-Ausführungszeit stützt. Außerdem kennen Unix-Domain-Sockets jetzt den Systemaufruf »splice()« .
Treiber für virtuelle GPU
Mit »virtio-gpu« [4] begrüßt der Linux-Kernel einen weiteren neuen Grafiktreiber. Er soll die von Red Hat entwickelte virtuelle GPU Virgil 3D antreiben und so Hardware-beschleunigte 3-D-Grafik für virtuelle Umgebungen bieten. Bislang beherrscht er allerdings nur Kernel Modesetting, schaltet also automatisch die Bildschirmauflösung um. Die Qemu-Entwickler wollen »virtio-gpu« und Virgil 3D fördern, damit davon gleichermaßen Qemu und die Kernel Virtual Machine (KVM) profitieren.
Der Treiber für Intel-basierte Hardware bietet jetzt einen ersten, wenn auch minimalen Support für den SoC Broxton, der Smartphones und Tablets antreiben soll. Anfang Juni 2015 hatte Intel die dafür nötigen Firmware-Blobs geliefert. Daneben haben die Entwickler den Code für Skylake-Chips und die Ausgabe über Displayport optimiert.
Neuerungen am freien Nouveau-Treiber für GPUs von Nvidia entfallen diesmal. Maintainer Ben Skeggs ließ wissen, dass er und seine Mitarbeiter an etwas Größerem arbeiten. Für die Release von Linux 4.2 konnte man die ominöse Sache aber nicht mehr fertigstellen.
Wo bleibt Kdbus?
Daneben ging auch im aktuellen Entwicklungszyklus die Kdbus-Debatte weiter. Greg Kroah-Hartman will Kdbus noch für mindestens eine Runde aussetzen lassen. Erst für eine der kommenden Kernelversionen möchte der Entwickler einen erneuten Pull Request stellen. Welche das sein wird, äußerte er in seinem Post [5] allerdings nicht.
Der Grund ist nicht allein die anhaltende Kdbus-Diskussion auf der Kernel-Mailingliste. Vielmehr stehe die Kernel-IPC nun bereits für verschiedene Distributionen bereit, in Fedora Rawhide lässt es sich etwa über die Boot-Option »kdbus=1« aktivieren. Das Projekt erhofft sich vom Aufschub wertvolles Feedback aus dem Praxiseinsatz.
Mit Ingo Molnar sprach sich zudem ein wichtiger Kernelentwickler für die Aufnahme von Kdbus in den Kernel aus. Molnar verglich Kdbus mit dem Code von Androids Binder-IPC und argumentierte, dass der Kdbus-Code den Kernel-Basiscode kaum berühre. In den letzten zehn Jahren habe niemand den vorhandenen IPC-Code betreut oder fit für die Zukunft gemacht. Das habe ein technisches Vakuum erzeugt, es gebe keinen “goldenen Standard” in Sachen IPC.
Nun, kritisierte Molnar, kämen angesichts der geplanten Kdbus-Veröffentlichung plötzlich neue Vorschläge auf den Tisch, denen allerdings realer Code im Hintergrund fehle. Sollten die Kernelentwickler Kdbus ablehnen, befürchtet Molnar aufgrund der fehlenden Alternativen eine Stagnation in diesem Bereich.
Der Quellcode der Vorabversionen von Linux 4.2 steht wie immer unter [6] bereit. Das fertige Linux 4.2 erscheint voraussichtlich im August 2015.
Infos
- Dax: http://article.gmane.org/gmane.linux.kernel.mm/124338
- Yama: https://www.kernel.org/doc/Documentation/security/Yama.txt
- Geneve im IETF-Draft: https://tools.ietf.org/html/draft-ietf-nvo3-geneve-00
- Virgil 3D und »virtio-gpu« : http://www.linux-kvm.org/images/3/36/Kvm-forum-2013-virgilpres.pdf
- Kdbus kommt später: http://lkml.iu.edu/hypermail/linux/kernel/1506.3/02046.html
- Kernel.org: https://www.kernel.org







