Der Linux-Kernel, auf den alle Distributionen wie Ubuntu, Fedora und Red Hat Enterprise Linux aufsetzen, ist in der Version 3.7 erschienen. Microserver mit ARM-Plattformen können nun 64-bit-Linux und Citrix Xen ausführen. Mathias Menzer durchleuchtet die Linux-Updates des vergangenen Monats.
Eine achte Entwicklerversion von Linux 3.7 gab Torvalds Anfang Dezember wie angekündigt frei. Sie brachte keine grossen Umbrüche mit, sondern beschränkte sich auf Korrekturen von Fehlern. Ein korrigiertes Fehlerbeispiel betrifft die Leistungsmessung in KVM. Diese Virtualisierungssoftware wurde auf die Verwendung unter i386 und x86_64 beschränkt, um Problemen beim Kompilieren des Kernels unter anderen Architekturen aus dem Weg zu gehen. Doch weiter wurde die Entwicklung von 3.7 nicht in die Länge gezogen. Mit nur wenigen Beiträgen (Commits) legte Torvalds die produktive Version des Kernels 3.7 rechtzeitig vor, um das Merge Window für Linux 3.8 noch vor den Weihnachtsfeiertagen schliessen zu können.
ARM-Microserver profitieren von Xen und 64-bit
Die ARM-Architektur ist weit verbreitet durch mobile Geräte wie Tablets und Smartphones. Linux ist auf ARM schon lange angekommen und auch mit Linux 3.7 wird die Unterstützung dieser Architektur ausgebaut. Ausserdem steigt die Adaption von ARM als Microserver, den kleinen effizienten Computern beispielsweise für Hosting-Provider. Der Einstieg von Intel mit der Atom-Plattform Anfang Dezember hat die steigende Popularität der Microserver bestätigt. So bietet Linux nun Multi-Plattform-Unterstützung auch für ARM an und ermöglicht dadurch, dass ein Kernel-Abbild erstellt werden kann, das auf unterschiedlichen ARM-Ausprägungen startet. Noch funktioniert dies nur mit wenigen Varianten, doch weitere sollen in den kommenden Kernel-Versionen hinzukommen.
Daneben wird nun auch 64-Bit-ARM unterstützt, der entsprechende Kernel-Zweig trägt den Namen «AArch64». Torvalds zeigte sich bereits skeptisch, ob dieser eigene Zweig sinnvoll ist und machte darauf aufmerksam, dass auch andere Architekturen letztlich den 64-Bit-Code nach einiger Zeit wieder mit dem 32-Bit-Zweig zusammengeführt haben. Ein weiterer grösserer Wurf für ARM dürfte die grundsätzlich verfügbare Unterstützung der verbreiteten Virtualisierungssoftware Xen von Citrix sein.
Keine wirkliche Funktionserweiterung ist die Zusammenlegung der UAPI-Header-Dateien. Sie sorgten während des Entwicklungszyklus für einigen Ärger und zeigen sich dem Anwender in erster Linie darin, dass sie den Patch des aktuellen Kernels unangenehm aufblähen. ARM-Entwickler sollen jedoch von einer einfacheren Struktur profitieren.
Linux 3.7 erneuert Dateisysteme
Auf Seiten der Dateisysteme wurde unter anderem Butter-FS (Btrfs) bedacht. Die Effizienz des Systemaufrufs “fsync()” wurde stark verbessert. Dieser schreibt veränderte Daten aus dem Speicher auf den Datenträger. Die Geschwindigkeit, mit der dies geschieht, ist für viele Anwendungen wie Virtualisierer oder Software-Kompilierer von hoher Bedeutung.
Mit SMBv2 wird eine neue Version des Protokolls für Microsofts Windows-Freigaben unterstützt. Der Code hierfür wurde bereits in Linux 3.6 eingeführt (siehe August bis Oktober im Kernelrückblick), dort jedoch als «defekt» markiert und war daher beim Kompilieren eines Kernels nicht verfügbar. Der Status wurde nun auf «experimentell» gesetzt und kann damit grundsätzlich verwendet werden.
Das Netzwerk-Dateisystem NFS 4.1 ist dem Experimentell-Status entwachsen und wird nun als stabil erachtet. NFS nützt Server-Clustern, indem es auf mehrere Server zugleich zugreift.
Signierte Kernel-Module schützen vor Schadcode
Signierte Kernel-Module sollen verhindern, dass dem laufenden System Schadcode untergeschoben werden kann, zum Beispiel in Form eines Rootkits. Hierzu werden Kernel-Module kryptografisch signiert und diese Signatur dann vom Kernel beim Laden des Moduls geprüft. Hat eine Software oder auch der Nutzer Änderungen an einem Kernel-Modul vorgenommen, so stimmt die Signatur nicht mehr und das Nachladen kann unterbunden werden.
Einen schnelleren Verbindungsaufbau bei der Netzwerk-Kommunikation soll TCP Fast Open (TFO) erreichen. Die Client-Seite wurde bereits in Linux 3.6 bedacht. In Version 3.7 wird nun der Code für die Server-Seite aufgenommen (siehe August bis Oktober im Kernelrückblick). TFO versieht im Prinzip die TCP-Pakete, die für den Verbindungsaufbau notwendig sind, bereits mit den ersten Nutzdaten und reduziert so die Zeit, die normalerweise vergeht, bis tatsächlich Daten übertragen werden.
Sicherheitsfunktion für Intels kommende Haswell-CPU
Mit der kommenden Prozessor-Generation Haswell führt Intel eine neue Sicherheitsfunktion ein: die «Supervisor Mode Access Prevention» (SMAP) soll den Zugriff des Kernels auf Speicherseiten unterbinden, die von Anwendungen im Benutzer-Kontext genutzt werden. Damit soll eine Möglichkeit der Rechteausweitung für Angreifer auf einem System wegfallen.
Entwicklung von Linux 3.8 beginnt
Die Entwicklung von Linux 3.8 hat bereits begonnen und auch das Merge Window wurde kurz vor den Feiertagen geschlossen. Bereits im Vorfeld war bekannt geworden, dass die Unterstützung für 386-SX/DX-Systeme entfernt wird. Dies ist eigentlich nur deshalb bemerkenswert, weil Torvalds Linux ursprünglich für diese Systeme entwickelte, da er selbst ein solches System besass. Der Verlust ist daher eher sentimentaler Natur.
Mit F2FS wurde ein neues Dateisystem aufgenommen, das speziell auf die Eigenheiten von Flash-Speichern wie USB-Sticks und SD-Karten abgestimmt ist. Ein weiteres Schlagwort sind «Huge Zero Pages»: Ein Patch soll den Speicherhunger des Kernels verringern, indem Speicherseiten entfernt werden, die nur aus Nullen bestehen. Die User Namespaces, ein Framework, das die Rechte der Nutzer des Systems begrenzt, erfahren eine Überarbeitung und sollen damit auch Virtualisierung direkt im Kernel ermöglichen.
(Mathias Menzer)
Weitere Themen:
Neueste Artikel von Mathias Menzer (alle ansehen)
- Fortschritte von Linux 4.5: Februar im Kernelrückblick - 29. März 2016
- Linux 4.4 ist da: Jahreswechsel im Kernel-Rückblick - 8. Februar 2016
- Grossumbau für Linux 4.2: Juli im Kernel-Rückblick - 18. August 2015