64-Bit-ARM-Support in Linux-Kernel integriert
Linux 3.7 wird die AArch64-Architektur unterstützen und ermöglicht den Bau eines Kernel-Images, das auf mehreren ARM-Plattformen startet. Neu ist auch Unterstützung fürs Intels Sicherheitsfunktion SMAP.
Knapp 18 Stunden nach der Veröffentlichung von Linux 3.6 hat Linus Torvalds die ersten Änderungen für die Version 3.7 in den Hauptentwicklungszweig des Linux-Kernels integriert. Unter ihnen ist die Unterstützung für die 64-Bit-ARM-Architektur (u. a. 1, 2, 3, 4), die ARM-Mitarbeiter Catalin Marinas kurz zuvor zur Aufnahme eingereicht hatte.
Der Architektur-Code für die offiziell AArch64 genannte Architektur ist jetzt im Verzeichnis arch/arm64/
der Kernel-Quellen gelandet, wie es einige Kernel-Entwickler bei der ersten Vorstellung des Codes gefordert hatten. Bei der Abfrage mit einem Programm wie Uname meldet der Kernel aber weiter das sperrige "aarch64", das auch andere Software zur Unterstützung der 64-Bit-ARM-Architektur nutzen wird; darunter die Binutils, die AArch64 seit Version 2.23.51.0.2 unterstützen, oder die noch vorbereiteten AArch64-Erweiterungen für die GCC. Die 64-Bit-taugliche ARM-Variante wurde im Herbst 2011 mit dem ARMv8-Befehlssatz angekündigt; Applied Micro Circuits Corporation (AMCC) hat mittlerweile erste Musterchips und versprochen, noch in diesem Jahre Produkte mit 64-Bit-ARM-Kernen fertig zu stellen.
In den Hauptentwicklungszweig von Linux ist zudem noch eine Patch-Sammlung eingezogen, durch die sich ein Kernel-Image bauen lässt, das auf verschiedenen 32-Bit-ARM-Plattformen bootet. Bislang soll solch ein Image auf den Plattformen Highbank, Vexpress, Mvebu, Socfpga und Picoxcell laufen; bei späteren Kernel-Versionen soll Code weiterer Plattformen konvertiert werden, damit das Kernel-Image auf möglichst vielen Plattformen läuft, wie es in der X86-PC-Welt normal ist. Hintergründe zu diesem Vorhaben liefert ein LWN.net-Artikel und die Videoaufzeichnung eines Vortrags von Linaro-Entwickler Arnd Bergmann ab Zeitcode 26:15.
In den rund 30 Stunden seit der Freigabe von Linux 3.6 hat Linus Torvalds bereits rund 3601 Änderungen eingepflegt; pro Kernel-Version sind es normalerweise zirka acht- bis elftausend. Laut dem Programm Diffstat modifizieren die Änderungen 4.180 Dateien und fügen dabei 220.804 Codezeilen ein und entfernen 141.317 – verschobener Code geht in beide Werte ein. Darunter waren Änderungen (u. a. 1, 2), durch die der Kernel bei x86-Prozessoren nun die für Intels Haswell-Prozessoren geplante Sicherheitsfunktion SMAP (Supervisor Mode Access Prevention) nutzen kann. Sie soll Userland-Code vor ungewollten Änderungen durch den Kernel schützen, die Angreifer teilweise zur Rechteausweitung nutzen; Details liefert ein Beitrag im Grsecurity-Forum sowie Intels Architecture Instruction Set Extensions Programming Reference ab Seite 408. (thl)