Die Neuerungen von Linux 2.6.36

Seite 4: Infrastuktur & Security

Inhaltsverzeichnis

Die Liste der vom Kernel unterstützen Prozessor-Architekturen wächst mit 2.6.36 abermals und umfasst nun auch die von Tilera entwickelten 32-Bit-Prozessoren TILEPro and TILE64 (u. a. 1, 2, 3). Aus dem Android-Umfeld stießt Unterstützung für Nvidias Tegra-Prozessoren zum Kernel, die auf der ARM-Architektur aufbauen (u. a. 1, 2, 3).

Der KVM-Code bietet nun Unterstützung für die Prozessor-Befehle Xsave (1, 2) und AVX (Intel Advanced Vector Extension) in Gastsystemen. Einen Überblick über Änderungen am Xen-Code geben die Git-Pull-Requests von Jeremy Fitzhardinge und Konrad Rzeszutek Wilk. Einige dieser Änderungen legen Grundlagen, auf dem Code zum Betrieb des Linux-Kernels als "initial domain" aufbauen soll – eine Art abgespeckter Dom0-Unterstützung. Dieser Code wird derzeit auf der LKML diskutiert und könnte bei einer der nächsten Versionen in den Hauptentwicklungszweig von Linux einziehen.

Erheblich verändert und in weiten Teilen neu geschrieben haben die Kernel-Entwickler den Out of Memory (OOM) Killer, der bei Speichermangel Prozesse abschießt, damit das System weiterarbeiten kann (1, 2, 3). Integriert haben die Kernel-Hacker auch die "Concurrencey Managed Workqueues", welche die Handhabung von Kernel-Threads optimieren (u.a. 1, Dokumentation). Dadurch soll der Kernel die Ressourcen effizienter nutzen, besser skalieren und auf vielen Systemen mit weniger Threads auskommen – letzteres werden auch Anwender bemerken, denn dadurch verkürzt sich die Liste der bei ps -A ausgegeben Kernel-Threads.

Nachdem sich die Entwickler der 2006 von Novell offengelegten AppArmor mehrere Jahre erfolglos um die Aufnahme des Kernel-Codes der Sicherheitserweiterung bemüht hatten, stieß dieser nun in der Version 2.6.36 endlich zum Kernel (u. a. 1, 2, 3, Dokumentation). Ähnlich wie SELinux kann AppArmor Anwendungen auf festgelegte Aktionen beschränken; Angreifer, die über eine Sicherheitslücke etwa in einer Server-Software Zugang zum System erhalten, können daher nur begrenzt Schaden anrichten.

Zahlreiche Anläufe und mehrere Jahre hatte auch das aus TALPA hervorgegangene Fanotify gebraucht, bevor Torvalds es nun integrierte (u. a. 1, 2, 3). Es baut auf dem bei 2.6.31 integrierten Fsnotify auf und bietet Einstiegspunkte, über die sich beispielsweise Virenscanner einklinken können, um Dateien beim Zugriff auf Schadsoftware zu überprüfen, bevor der Dateiinhalt ausgeliefert wird ("On-Access-Scan"). Nur einige Tage vor der Fertigstellung von Linux 2.6.36 haben die Entwickler allerdings die Userspace-Schnittstellen von Fanotify kurzfristig deaktiviert, um noch einige Unzulänglichkeiten beseitigen zu können, die das ABI betreffen (1, 2, 3) – dadurch ist Fanotify vorerst nicht nutzbar. Fehlerbeseitigung und Re-Aktivierung der Userspace-Schnittstellen sind für Kernel 2.6.37 vorgesehen; unklar ist noch, ob diese Patches möglicherweise auch in einen der Stable-Kernel der 2.6.36-Serie einziehen.

Der Kbuild-Code bietet nun die Targets "oldnoconfig", "listnewconfig" ersetzt "nonint_oldconfig", "alldefconfig " und "savedefconfig". Letztgenanntes schreibt eine "defconfig" genannte Konfigurationsdatei, in der nur die Optionen verzeichnet sind, die sich von den Standardvorgaben der Kconfig-Dateien unterscheiden. Solche ersetzen dutzende der Standard-Konfigurationsdateien für die verschiedenen vom Linux-Kernel unterstützten System- bzw. Prozessor-Architekturen. Da sie zuvor auch Einträge für alle Optionen enthielten, die die Kconfig-Dateien des Kernels als Standard vorgaben, ist der entsprechende Commit knapp 6 MByte riesig und entfernt über zweihundertausend Zeilen in den Kernel-Quellen.

Bereits zuvor hatten die Verwalter der Unterstützung für Itanium (IA64) und Power ihre Konfigurationsdateien auf diese Weise verschlankt (1, 2). All diese Änderungen sind der Hauptgrund, warum der Quellcode von 2.6.36 ungefähr genauso groß ist wie beim direkten Vorgänger. Bei dem hatte die Diät für die Standard-Konfigurationsdateien bereits mit einer Verschlankung der Dateien für ARM-Systeme begonnen.