Die Neuerungen von Linux 4.5

Seite 4: Schutztechniken & Optimierungen

Inhaltsverzeichnis

Einige Android-Entwickler haben auch Verbesserungen an der Adressverwürfelung mit ASLR (Address Space Layout Randomization) vorgenommen, die ein Ausnutzen von Sicherheitslücken erschweren. Die zuständigen Google-Entwickler rechnen im einem Kommentar zu den Änderungen vor, Schadcode hätte die viel beachtete Stagefright-Lücke von Android bislang in durchschnittlich 10 Minuten ausnutzen können; durch die Verbesserungen soll es auf typischen Smartphone-Prozessoren jetzt im Mittel 45 Stunden dauern. Der Angriff sei dadurch erheblich weniger praktikabel und werde von Anwendern leichter bemerkt. Weitere Details zu den Änderungen und den mit ihnen eingeführten Konfigurationsoptionen erläutert ein LWN.net-Artikel

Bei knapp werdendem Arbeitsspeicher wird der Kernel Teile des Speicher von Anwendungen freigeben und anders nutzen können, sofern diese Speicherbereiche nur noch alloziert halten, um ihn später womöglich erneut zu nutzen. Windows und alle wichtigen BSD-Derivate unterstützen diese Funktion schon länger, für die Anwendungen den Speicher mit madvise(MADV_FREE) auszeichnen müssen. Laut Kommentar zur Änderung hat Facebook einen ähnliche Linux-Erweiterung vor Jahren in seinen Rechenzentren getestet und dadurch den Durchsatz um fünf Prozent steigern können; wie viel das Ganze letztlich bringt, hängt stark von den jeweiligen Umgebungsbedingungen ab. Weitere Hintergründe zur Unterstützung von madvise(MADV_FREE) liefert der zweite Abschnitt eines LWN.net-Artikels.

Die Kernel-Entwickler haben weitere Schutzmaßnahmen integriert, um ein direktes Verändern des Arbeitsspeichers über das Device /dev/mem einzuschränken. Das ist schon länger limitiert; der neue Schutzmechanismus soll den Zugriff noch weiter einschränken, weil eine unbedarfte Nutzung leicht zum Verfälschen von Daten führen kann, die in persistenten Speichermodulen (NVDIMMs) liegen. Dabei zeigten sich aber Kompatibilitätsprobleme, daher wird der neue Schutzmechanismus nicht wie geplant standardmäßig eingebaut, sondern muss bei der Kernel-Konfiguration explizit aktiviert werden.

Der Kernel bietet jetzt eine grundlegend neue Infrastruktur zur Steuerung des Ressourcenverbrauchs über Control Groups (Cgroups). Sie beseitigt Probleme und Inkonsistenzen, die Entwickler und Administratoren bislang plagen, wenn sie die Nutzung von Prozessorzeit, Arbeitsspeicher oder Storage- und Netzwerk-Ressourcen limitieren.

Die "Cgroups v2" lassen sich parallel mit der alten, jetzt "cgroup legacy" genannten Infrastruktur nutzen. Das ist auch nötig, denn über die neue Cgroups-Infrastruktur lässt sich vorerst nur der Verbrauch von Arbeitsspeicher und Storage regeln. Die Limitierung der CPU-Zeit wurde nicht für 4.5 fertig und soll bald folgen. Systemd unterstützt die neue Infrastruktur bereits und versucht, lästige Details bei der Cgroup-Konfiguration vor Anwendern zu verbergen.

Die Gründe für das Redesign erläutert eine Datei, die nach drei Entwicklungsjahren mit der Fertigstellung der Cgroups v2 nun entfernt wurde. Weitere Hintergründe liefern die Dokumentation zu den renovierten Cgroups und einige in den letzten drei Jahren erschienene LWN.net-Artikel.