Kernel-Log – Was 3.3 bringt (3): Architektur und Infrastruktur

Seite 2: Architektur-Code, Sicherheit, Verschiedenes

Inhaltsverzeichnis

Durch Einschalten der Konfigurationsoption "EFI_STUB" lassen sich ab Linux 3.3 x86-Kernel erzeugen, die eine EFI-Firmware direkt starten kann – man kann also auf einen Boot-Loader verzichten. Auf x86-Sytemen emuliert der Kernel nun standardmäßig die Verarbeitung der weitgehend von vDSO beerbten Schnittstelle vsyscall, über die Programme System-Aufrufe ("Syscalls") absetzen können; das soll die Sicherheit verbessern und war ursprünglich schon für eine frühere Kernel-Version geplant, wurde aber aufgrund von Problemen zurückgestellt. Neu in Linux 3.3 ist Basis-Unterstützung für das erst kürzlich spezifizierte und daher in der Praxis noch nicht anzutreffende ACPI 5.0 (u. a. 1, 2, 3).

Der ARM-Code kann jetzt die Large Physical Address Extension (LPAE) nutzen (u. a. 1, 2, 3), über die Betriebssysteme auf 32-Bit-ARM-v7-Kernen, die LPAE bieten, mehr als 4 GByte Arbeitsspeicher adressieren können. Der ARM-Code unterstützt nun das Audit-Subsystem und bietet Basis-Unterstützung für Nvidias SoC (System on a Chip) Tegra 3 (u. a. 1, 2).

Mehr Infos

Die "Was Linux 3.3 bringt"-Serie

Das Kernel-Log kann bereits jetzt einen Überblick über die wichtigsten Neuerungen der Mitte März erwarteten Linux-Version 3.3 geben, da alle größeren Neuerungen bereits in den ersten zwei Wochen der Entwicklung integriert wurden; Linux 3.3 befindet sich daher jetzt in der Stabilisierungsphase, in der normalerweise keine größeren Änderungen mehr einfließen.

Die Artikel zu den Neuerungen nehmen sich nach und nach den unterschiedlichen Funktionsbereichen des Kernels an:

In den kommenden Wochen folgen noch ein Artikel zu Treibern.

Der Code für die S390-Architektur kann nun bis zu 64 Terabyte Arbeitsspeicher adressieren; zuvor war bei 3,8 TByte Schluss. Die M68knommu-Architektur unterstützt nun die MMU (Memory Management Unit), die manche Prozessoren der vierten Coldfire-Generation von Freescale bieten. Mit Version 3.3 unterstützt der Linux-Kernel erstmals die C6X-Architektur, die einige der einfacheren Single- und Multicore-DSPs (Digital Signal Prozessors) von Texas Instruments aufweisen (u. a. 1).

Dem Kernel erhielt eine auf GnuPG-Code basierende Bibliothek für Berechnungen mit MPI (Multi Precision Integers) (1, 2, 3, 4). Die gegen Angriffe schützenden Kernel-Techniken IMA (Integrity Measurement Architecture) und EVM (Extended Verification Module) können mit dieser Bibliothek RSA-Signaturen prüfen, um so die Unversehrtheit von Dateien zu testen (1, 2, 3, 4, 5). Während der Entwicklung von 3.3 wurden zudem Patches diskutiert, um mit dieser Infrastruktur auch Kernel-Module zu signieren; die Entwickler sind sich aber derzeit über einige Aspekte des Ansatzes uneinig.

In das Crypto-Subsystem zogen unter anderem Änderungen ein, die bestimmte Verschlüsselungs- und Signatur-Algorithmen beschleunigen sollen:

  • Durch einige Änderungen am Kernel-Code für ASPM (Active State Power Management) nutzt der Kernel 3.3 die PCIe-Stromspartechnik nun selbst dann, wenn es bestimmte Ungereimtheiten zwischen der Hardware-Konfiguration und den ASPM-Informationen gibt, die das BIOS dem Kernel meldet. Einige Wochen, nachdem diese Änderung für Linux 3.3 aufgenommen wurde, haben die Kernel-Entwickler sie auch bei den im Februar freigegeben Kernel-Versionen 3.0.20 und 3.2.5 eingebaut.
  • Zu den Verbesserungen an der IOMMU-Infrastruktur zählen Unterstützung für die zweite Version von AMDs IOMMU-Implementation und die Möglichkeit, unterschiedlich große Speicherseiten zu handhaben. Der IOMMU-Code erhielt zudem einige Grundlagen zum Gruppieren und sicheren Isolieren von Geräten, was für das noch in Entwicklung befindliche VFIO (Virtual Function I/O) interessant ist. Laut der zugehörigen Dokumentation soll VFIO nicht nur die Funktionen zum Weiterreichen von Hardware-Komponenten an KVM-Gäste ersetzen, sondern auch das Userspace-Treiber-Framework UIO beerben, da VFIO solchen Treibern mehr Möglichkeiten bietet; LWN.net erläutert einige Hintergründe zu VFIO in einem Artikel.
  • John Stultz hat ein Skript eingebracht, mit dem sich mehrere Dateien mit Kernel-Konfigurations-Optionen zu einer ".config" zusammenführen lassen. Viele Distributionen nutzen solche Skripte beim Bauen ihrer Kernel. Fedora-Kernel-Entwickler Josh Boyer hat allerdings festgestellt, dass das für Linux 3.3 aufgenommene Skript in seinem Testszenario über 25 Minuten für eine Aufgabe benötigt, die das bislang von Fedora eingesetzte Skript in 47 Sekunden erledigt; selbst nach einer Optimierung benötigte es noch über 3 Minuten.
  • Bei jeder neuen Kernel-Version des Hauptentwicklungszweigs gibt es hunderte von Änderungen, die das im Kernel-Log typischerweise nicht erwähnt, weil sie Probleme korrigieren, die nur auf bestimmten Systeme oder bei seltenen Konfigurationen auftreten. Ein Beispiel für solche Änderungen sind zwei Commits (1, 2), durch die der Kernel auf dem Dell Studio 1557 und dem Thinkpad SL510 nun eine Sonderbehandlung automatisch aktiviert, die alternativ auch der Kernel-Parameter "pci=nocrs" aktiviert; dadurch sollen diese Systeme bei Kernel 3.3 und später aus dem Bereitschaftsmodus (ACPI S3/Suspend to Ram) zuverlässig aufwachen, auch wenn der Anwender noch nie von diesem Parameter gehört hat. Besitzer dieser Systeme haben das einem Fehlerbericht zu verdanken, in Folge dessen die Änderungen entstanden. Auch in anderen Bereichen – insbesondere bei den Audio-Treibern – gibt es mit jeder neuen Version des Hauptentwicklungszweigs solche Änderungen, durch die der Kernel bestimmte Workarounds automatisch anwendet. Auch bei diesen Fällen haben häufig Linux-User die Entwickler auf die nötigen Parameter hingewiesen, die zusammen mit Informationen zur Identifikation der betroffenen Systeme Patches erstellt haben, damit der Kernel automatisch alles richtig macht.