Architektur
Der Linux-Kernel unterstützt nun den 64-Bit-ARM-Befehlssatz (u. a. 1, 2, 3, 4). Der Code für den offiziell AArch64 genannte Befehlssatz wurde größtenteils von ARM-Mitarbeitern entwickelt und landete im Verzeichnis arch/arm64/ der Kernel-Quellen, wie es einige Kernel-Entwickler bei der ersten Vorstellung des Codes gefordert hatten. Dadurch ist der Code unabhängig von jenem für 32-Bit-ARM, wie es früher auch bei der x86-Architektur der Fall war. Einige Entwickler sind skeptisch, ob der richtige Ansatz ist, darunter auch Torvalds, wie ein schnippischer Kommentar in der Freigabe-Mail zur ersten Vorabversion von Linux 3.7 zeigt.
Linux 3.7 bringt zudem Multiplatform Support. Damit lässt sich nun ein Kernel-Image erzeugen, das auf verschiedenen 32-Bit-ARM-Plattformen arbeitet. Bei 3.7 unterstützen Multiplattform-Images Highbank, Mvebu, Picoxcell, Socfpga und Vexpress; bei späteren Kernel-Versionen soll weiterer Plattform-Code konvertiert werden. Letztlich soll dasselbe Kernel-Image auf möglichst vielen verschiedenen ARM-Plattformen arbeiten, wie es in der PC-Welt normal ist.
Security
Der Linux-Kernel unterstützt nun die Prozessor-Sicherheitsfunktion SMAP (Supervisor Mode Access Prevention) (u.a. 1, 2, 3, 4). Intel will diese Technik mit den Haswell-Prozessoren einführen, die offenbar ab dem ersten Halbjahr 2013 die aktuelle Ivy-Bridge-Generation ablösen sollen. SMAP soll den Speicherbereich von Programmen vor ungewollten Änderungen durch den Kernel schützen; über Kernel-Bugs verschaffen sich Angreifer mit solchen Speicheränderungen in Programmen, die mit Root-Rechten laufen, höhere Rechte im System. Details zur Technik liefern Intels Architecture Instruction Set Extensions Programming Reference ab Seite 408, ein Beitrag im Grsecurity-Forum und der Artikel "Supervisor Mode Access Protection".
Virtualisierung
Zusammen mit Entwicklerversionen des Xen-Hypervisor 4.3 kann Linux auf einigen neueren ARM-Prozessoren virtuelle Maschinen mit Hilfe der Virtualisierungsfunktionen der CPU betreiben (u. a. 1, 2). KVM-Unterstützung für die ARM-Virtualisierungsfunktionen ist noch in Vorbereitung. Einige weitere wichtige Änderungen im Bereich Virtualisierung erläutern die Mails mit den Haupt-Git-Pull-Request für den KVM-Code von Linux und die Unterstützung von Xen.
Performance Monitoring
Zur Tracing-Infrastruktur stieß das Events-Analye-Werkzeug "perf kvm", mit dem sich unter anderem auswerten lässt, wie häufig und aus welchen Gründen von einem KVM-Gast in das Wirtsystem gewechselt wurde ("VM-EXIT"). Das ist aber nur eine von vielen Verbesserungen am Tracing-Code . Neu ist etwa auch das systemweite Tracing-Tool "perf trace". Dessen Entwickler vergleicht den initialen Funktionsumfang im Commit-Kommentar grob mit dem Klassiker strace; das neue Werkzeug setze aber auf die Perf-Infrastuktur des Kernels und solle dadurch weitere Funktionen ermöglichen.
Infrastruktur
Linux 3.7 kann Kernel-Module signieren und die Signatur vor dem Laden prüfen, um ihre Unversehrtheit sicherzustellen (u. a. 1, 2, 3, 4, 5, 6, 7). Einige Unternehmensdistributionen nutzen solch eine Funktion schon länger – unter anderem, um bei der Fehlersuche sicherzustellen, dass der Anwender keine selbst gebauten Kernel-Module einsetzt. Einige Entwickler haben sich jetzt verstärkt um eine Integration der Funktion in den offiziellen Linux-Kernel bemüht, weil mehrere Distributionen beim Booten per UEFI Secure Boot nur signierte Kernel-Module laden wollen.
Eric W. Biederman hat eine größere Patch-Sammlung eingebracht, welche die Unterstützung für Namespaces verbessert (u. a. 1, 2, 3, 4). Das ist für eine striktere Trennung von User- und Gruppen-IDs zwischen Host und Containern wichtig. Die Anpassungen setzen auf den "User Namespace Enhancements" auf, die Biederman zu Linux 3.5 beigesteuert hat und die er damals als Kurskorrektur für User Namespaces bezeichnete. Biederman hat noch weitere Patch-Sammlung für Linux 3.8 in Vorbereitung, welche die größeren Umbauten am Namespace-Code abschließen soll; durch sie soll die neue Infrastruktur dann komplett sein, sodass Anwender einen Namespace anlegen und nutzen können, ohne dazu Root-Rechte haben zu müssen.
Storage
Der MD-Software-RAID-Code von 3.7 kann Datenträger eines RAID-Verbunds per Discard über frei gewordene Speicherbereiche informieren, was für SSDs und Thin Provisioning wichtig ist (1, 2, 3, 4, 5). Das Libata-Subsystem beherrscht nun den im AHCI 1.3.1 Technical Proposal spezifizierten Stromsparmechanismus "Aggressive SATA device sleep", der die Leistungsaufnahme bei Systemen mit SATA-Laufwerken reduzieren kann. Das Block-Layer beherrscht nun das "WRITE SAME"-Kommando, um ein einmalig übermitteltes Datenpaket auf alle spezifizierten IO-Bereiche zu schreiben. Auf diesem Weg lassen sich RAIDs leicht Initialisieren und komplette Datenträger effizient überschreiben.








