Aus Linux-Magazin 01/2017

Kernel 4.9: Stack vergrößert, XFS mit CoW, Explicit Fencing

© Mariusz Niedzwiedzki, 123RF

Mit 14308 Commits stellt der Linux-Kernel 4.9 einen neuen Rekord auf und überflügelt damit die bisherige Megaversion 3.15. Änderungen am Stack sorgen für mehr Sicherheit, XFS erhält Superkuh-Power.

Das Merge Window für Kernel 4.9 schloss Linus Torvalds einen Tag früher als erwartet. Der Finne begründete [1] dies mit dem Umfang der bereits eingereichten Änderungen. Auf diese Weise könne er in letzter Minute eingehende Einreichungen verhindern. Schuld seien aber auch zwei unerwartete Unterbrechungen während des Merge-Prozesses gewesen, die ihm ein wenig Stress verursacht hätten.

Zugleich äußerte sich Torvalds zu seiner Lieblingsänderung im Kernel 4.9. Dies sei der von Andy Lutomirski eingereichte und im virtuellen Adressraum anlegbare Kernelstack [2]. Indem die Entwickler ihn in den virtuellen Adressraum verpflanzen, falle seine Größe nicht mehr ins Gewicht. Bislang bildete der Kernel seinen Stack direkt auf physisch benachbarten Adressen im für den Kernel reservierten Arbeitsspeicher ab, und der war vom Umfang auf 8 KByte beziehungsweise 16 KByte (64 Bit) begrenzt.

Stack Overflows flogen in der Regel erst dann auf, wenn bereits andere Daten im Speicher überschrieben waren. Angreifer nutzten die Funktion vor allem, um Rootrechte auf Linux-Systemen zu erlangen. Die Änderung in Kernel 4.9 erhöht die Sicherheit, indem sie Pufferüberläufe von selbst erkennt und verhindert.

Greybus und LTS-Pläne

Die größte alleinstehende Änderung in Linux 4.9, das neue Subsystem Greybus [3], reichte Greg Kroah-Hartman ein. Es handelt sich um ein Anwendungsprotokoll für das Unipro-Protokoll [4]. Kroah-Hartman versicherte, dass Greybus auch ohne das von Google eingestellte Project Ara (Abbildung 1) zum Einsatz komme, etwa in einem Motorola-Telefon.

Ursprünglich hatte Motorola am Projekt Ara gearbeitet, später Google. 2016 stellt der Internetkonzern die Arbeit an dem modular aufgebauten Smartphone ein, der Greybus-Code ist ein Überbleibsel.

Abbildung 1: Ursprünglich hatte Motorola am Projekt Ara gearbeitet, später Google. 2016 stellt der Internetkonzern die Arbeit an dem modular aufgebauten Smartphone ein, der Greybus-Code ist ein Überbleibsel.

Zudem zieht er es in Betracht [5], Langzeit-Support für Kernel 4.9 anzubieten. Fest versprechen wolle er das aber nicht, da Entwickler die Ankündigung in der Vergangenheit dazu genutzt hätten, halbgare Entwicklungen in den Kernel zu werfen. Er werde den Support also erst nach einigen Monaten auf einer Webseite [6] bestätigen.

XFS mit Superkuh-Power

“XFS has gained super CoW powers!”, so steht’s in der Pull-Nachricht zum Dateisystem, was sich auf die neue Copy-on-Write-Funktionalität (CoW) für XFS bezieht, die Reflinks ermöglicht. Anstatt einen neuen Link anzulegen, der auf eine existierende Inode verweist, erzeugt das Dateisystem dank Reflinks eine neue Inode, die denselben Plattenplatz belegt wie die Originaldatei.

Das sieht von außen wie ein Kopiervorgang aus, ohne aber die aktuellen Datenblöcke zu kopieren, die Rede ist von “leichtgewichtigen Kopien”. Hilfreich sind Reflinks etwa, um VM-Snapshots und Container zu erstellen, doch funktionieren sie nur in den Grenzen eines Dateisystems oder Subvolumes. Technisch ergänzen die Entwickler XFS um Shared Data Extents, wodurch ein einzelner Extent mehrere Besitzer haben darf.

Kernel 4.9 wird zwar die für Reflinks nötigen Änderungen enthalten, Support für den Userspace steckt aber noch in den Anfängen. Er lasse sich bislang nur mit Code aus dem Xfsprogs-Repository manuell nachrüsten. XFS-Entwickler Dave Chinner erwartet, dass angesichts des Umfangs der Änderungen weitere Patches und Fehlerbereinigungen folgen. Das Feature gilt als “experimentell” und ist mit einer Warnung versehen.

Weniger spektakulär fielen die Änderungen für die anderen Dateisysteme aus. Samsungs Flash-Dateisystem F2FS punktet im neuen Kernel nicht nur mit einer verbesserten Performance, die Entwickler haben auch die Fehlerbehandlung in ein paar Spezialfällen sowie das Speichermanagement verbessert. Für Btr-FS hat Maintainer Chris Mason ein umfangreiches Patchset eingereicht, das hauptsächlich Fehler entfernt und den Code bereinigt. Für Kernel 4.10 stellt Mason größere Änderungen am Extent-Puffer in Aussicht. Auch für Ext 4 standen hauptsächlich Aufräumen und Fehlerbereinigungen auf dem Zettel.

Auch im Bereich der Virtualisierung gab es eher kleinere Änderungen. So wechselt die Virtualisierungslösung Xen unter anderem auf einen neuen CPU-Hotplug-Mechanismus. KVM erhielt Patches, die den Power-PC-Support verbessern und zugleich für die Plattformen Mips und ARM Fehler beheben.

Mehr ARM

Apropos ARM: In der Liste der neuerdings unterstützten ARM-Geräte, insgesamt sind es 29 [7], finden sich auch der Raspberry Pi Zero und das Smartphone LG Nexus 5. Broadcom unterstützt nun die SoCs BCM47189 und BCM53573, die als erste eine eingebaute Unterstützung für den WLAN-Standard 802.11ac mitbringen.

Neu ist auch der Support für das Entwicklerboard Marvell Armada 8040, das Beagleboard-x15 in Revision B1 sowie das Qualcomm Dragonboard 820c und den Router Netgear WNR854T. Insgesamt fiel ARM-Entwickler Arnd Bergmann zudem auf, dass noch immer signifikant mehr Änderungen in die 32-Bit-ARM-Plattform fließen als in die 64-Bit-Variante.

Fechtübungen

Explicit Fencing [8] nennt sich eine Neuerung im Kernel, die vor allem im grafischen Bereich eine Rolle spielt, etwa beim Synchronisieren von Puffern. Dank Explicit Fencing erfährt auch der Userspace, wenn der Kernel Puffer zwischen zwei Treibern oder Prozessen synchronisiert. Ein Compositor kann diesen Prozess dann aktiv kontrollieren.

Sendet ein Prozess einen Request an den Kernel, der zum Beispiel einen Puffer für Grafik involviert, hängt er an diesen Puffer einen Fence. Dieser wiederum sendet dem Userspace oder anderen Treibern ein Signal, sobald ein Job erledigt ist. Letztere greifen erst anschließend auf den freien Puffer zu.

Beim Implicit Fencing, dem bisherigen Verfahren, erfuhr der Userspace nicht oder nur umständlich, ob der Kernel Puffer synchronisiert. Das führte im schlechtesten Fall dazu, dass Treiber oder der Userspace unvollständige Puffer lasen oder in Puffer schrieben, die noch an anderer Stelle im Einsatz waren. Da Explicit Fencing alle Puffer einbezieht, muss zudem nicht der gesamte Desktop warten, falls ein einzelner Puffer mal seine Arbeit zu langsam erledigt.

Treiberupdates

Seit August [9] hat Intel in mehreren Schüben Neuerungen für sein i915-DRM eingereicht. Neben Aufräumarbeiten und Refactoring schickte Daniel Vetter auch Fehlerbereinigungen für Modesetting und vorbereitenden Code für Multi-Plane Framebuffer mit. Ein drittes Patchset verbessert zudem den Support für V-GPU und behebt Fehler bei Skylake und Displayport.

Im Audiobereich unterstützt der Kernel 4.9-rc1 Intels Skylake-Plattform besser. Zudem haben Intel-Programmierer Probleme mit HD-Audio bei Dell-, Lenovo- und HP-Geräten behoben. Zu den neu unterstützten Soundchips zählen unter anderem Nuvoton NAU88C10, Realtek RT5660 und Realtek RT5663.

Ebenfalls im August veröffentlichte der AMD-Angestellte Alex Deucher erste Patches [10] für Linux 4.9. Diese und weitere Commits führen unter anderem eine experimentelle Unterstützung des AMDGPU-Treibers für Grafikprozessoren der Southern-Islands-Reihe (GCN 1.0) ein. Dazu gehören zum Beispiel die Radeon HD7750 bis HD7970 oder R7-240, R7-250 und R9-270 sowie R9-280. Auch die Energieverwaltung AMD Powerplay arbeitet nun zuverlässiger.

Aller Voraussicht nach erscheint Linux 4.9 Anfang Dezember. Der Quellcode der aktuellen Release Candidates wartet wie üblich auf http://kernel.org, sämtliche Änderungen im Detail verrät das Kernel-Git-Log [11].

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 2 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben