Die Neuerungen von Linux 3.5

Zusammen mit neuen X-Servern wird Linux 3.5 Hybridgrafik besser unterstützten. Der neue Kernel beherrscht den von Mac bekannten "FireWire Target Disk Mode". Werkzeuge zum Performance Monitoring können jetzt auch Userspace-Software im Auge behalten.

In Pocket speichern vorlesen Druckansicht 32 Kommentare lesen
Lesezeit: 10 Min.
Von
  • Thorsten Leemhuis
Inhaltsverzeichnis

Zwei Monaten nach Linux 3.4 haben Linux Torvalds und seine Mitstreiter jetzt die Linux-Version 3.5 fertig gestellt. Die Prime-Infrastruktur für Hybridgrafik und Uprobes zur Performance-Überwachung sind nur zwei von mehreren Neuerungen, die für Heim-PCs und professionelle System-Administrationen wichtig sind.

Mehr Infos

Im Detail

Bereits in den vergangenen Wochen hat das Kernel-Log in der Serie "Was Linux 3.5 bringt" detailliert über die Neuerungen von Linux 3.5 berichtet:

  1. Netzwerk
  2. Dateisysteme und Storage
  3. Architektur-Code
  4. Treiber
  5. Infrastruktur

Der nebenstehende Text fasst die wichtigsten Neuerungen dieser Artikel zusammen und gibt einen Ausblick auf den Kernel 3.6.

Eine Reihe von Grafiktreibern im Kernel erhielt Unterstützung für Prime. Das Framework soll den Support für zur Laufzeit zuschaltbare Grafikhardware verbessern – etwa DisplayLink-Monitore und die vor allem in Notebooks anzutreffenden Hybridgrafiktechniken. Auf den neuen Kernel-Funktionen soll der Prime-Support für den X-Server aufbauen, der bereits in eine Vorabversion des für September geplanten X-Servers 1.13 integriert wurde. Einige der im Herbst erwarteten Distributionen dürften dadurch USB-Monitore und Hybridgrafiklösungen wie Nvidias Optimus besser unterstützten; die Entwickler haben aber noch weitere Verbesserungen für Hybridgrafik auf ihrer ToDo-Liste.

Der Radeon-Treiber legt Daten jetzt anders im Videospeicher ab; das soll aus einigen GPUs der Reihen R600 bis R900 (Radeon HD 2400 bis 7670) mehr Performance herauskitzeln. Die Kernel-Entwickler haben zudem die Unterstützung für den Audio-Transport via HDMI bei neueren Radeon-GPUs erheblich ausgebaut, wodurch auch die meisten Northern-Island-GPUs (viele 6000er-Radeons) diesen nun unterstützen, wenn der Radeon-Treiber mit dem Parameter "audio" geladen wird.

Der Nouveau-Treiber in 3.5 bietet alles Nötige zur Nutzung der Hardware-Beschleunigung von Kepler-Chips, die auf vielen GeForce-Modellen der aktuellen 600er-Serie sitzen. Bis auf weiteres ist für 3D-Beschleunigung allerdings eine zusätzliche Firmware erforderlich, die man dem proprietären Treiber von Nvidia umständlich entlocken muss.

Nach jahrelanger Entwicklung und Dutzenden von Anläufen und größeren Umbauten stieß der Code für Uprobes (Userspace Probes) zum Kernel (u. a. 1, 2, 3, 4, 5), über den sich zur Laufzeit Breakpoints in den Code von Userspace-Software einfügen lassen. Diese Funktion kann man bislang nur über das Perf-Events-Subsystem des Kernels nutzen; darauf zurückgreifende Tracing-Software wie das dem Kernel beiliegende Perf oder die Version 1.8 von Systemtap sind so in der Lage, über Tracepoints in Userspace-Programmen das Laufzeitverhalten von Kernel und Anwendungen in einem Zug zu beobachten.

Bislang konnte Perf nur die Vorgänge im Kernel beobachten; Systemtap brauchte zur Beobachtung von Userspace-Software Utrace, das es nie in den offiziellen Kernel geschafft hat. Hinweise zum Praxis-Einsatz des vor langer Zeit aus Utrace hervorgegangene Uprobes liefert der Uprobes-Merge-Commit. Weitere Hintergründe liefert LWN.net in einem Artikel, der auch erläutert, wieso die Tracing-Möglichkeiten des Linux-Kernels immer noch deutlich hinter dem Funktionsumfang der Solaris-Lösung Dtrace zurückbleiben.

Linux 3.5 beseitigt die Ursache des neuesten Schaltsekunden-Bugs, der zu Beginn dieses Monats viele Systeme betroffen hat. Die maßgeblich von Eric W. Biederman entwickelten "User Namespace Enhancements" sorgen für eine striktere Trennung von User- und Gruppen-IDs zwischen Host und Linux-Containern (LXC). Auch mit Root-Rechten im Container soll damit der Zugriff auf Dateien in den Verzeichnissen /proc/ und /sys/ eingeschränkt sein; darüber konnte man bislang aus einem Container heraus das Verhalten des Wirts beeinflussen.

Über den schon älteren "Seccomp Filters Mechanism" können Programme jetzt in der Syntax der Berkeley Packet Filter (BPF) Filter einrichten, die festlegen, welche System Calls ein von diesem Programm gestarteter Prozess nutzen darf (u. a.1, 2, 3, 4). Das kann etwa zur weiteren Absicherung im Rahmen von Sandbox-Lösungen interessant sein. Ein Einsatzgebiet von Seccomp ist die Virtualisierung; ein anderes sind Browser, die nicht vertrauenswürdigen Code ausführen wollen: Chrome nutzt unter anderem bei Ubuntu 12.04 Seccomp, um das Flash-Plugin zusätzlich zu sichern. Hintergründe liefern die zugehörige Dokumentation und LWN.net.

Der MD-Code beherrscht Reshaping jetzt auch bei RAID 10, sodass sich auch bei solch einem Verbund die Zahl der am RAID beteiligten Datenträger ändern lässt. Mit dem neuen FireWire Fabric Module SBP-2 kann Linux 3.5 nun zusammen mit der Target-Infrastruktur-Software von Linux-Iscsi.org (LIO) Datenträger per FireWire exportieren, sodass andere Systeme sie wie einen FireWire-Datenträger einbinden können. Mac-Anwender kennen diese Funktion als "FireWire Target Disk Mode" – Apple-Systeme beherrschen das schon seit langem.

Beim weiterhin experimentellen Dateisystem Btrfs gab es eine größere Änderung am Writeback-Handling, die Latenzspitzen beseitigen soll, die gelegentlich beim Schreiben von Metadaten auftreten, wie Chris Mason in der Mail mit seinem Haupt-Git-Pull-Request für Linux 3.5 schreibt. Das Ext4-Dateisystem kann viele seiner Metadaten nun mit CRC32-Prüfsummen versehen, um Verfälschungen an den Ext4-Datenstrukturen auf der Platte zu erkennen (u. a. 1, 2, 3, 4, 5); zur Nutzung ist aber eine derzeit noch experimentelle Version der Ext-Dateisystemwerkzeuge erforderlich.

Zum Netzwerksubsystem stießen die Netzwerk-Paket-Scheduler "Codel" und der auf Codel-Mechanismen aufsetzende "Fair Queue Codel AQM"; beide sollen mit ihrer Arbeitsweise zur Vermeidung des "Bufferbloat"-Problems beitragen. Ein Google-Entwickler hat den TCP-Stack um eine "Early Retransmit" (ER) genannte Funktion erweitert, die die Verbindungsregeneration nach Paketverlusten beschleunigen kann, wie sie RFC 5827 beschreibt.

Der bei Linux 3.3 integrierte Teaming-Treiber beherrscht jetzt auch Load Balancing. Der R8169- Treiber für Gigabit-Ethernet-Chips von Realtek steuert nun auch die Bausteine RTL8402 und RTL8411 an. Der Treiber E1000e erhielt Code zur Unterstützung des i217-PHY, der mit Intels Lynx Point Platform Controller Hub (PCH) zusammenarbeiten sollen, der zu den 2013 erwarteten Haswell-Prozessoren gehört.

Linux 3.5 unterstützt die Asus-Soundkarte Xonar DGX und im HD-Audio-Treiber die Funktion Creative SoundCore3D. Der Plattform-Treiber für Sony-Notebooks erhielt einige Änderungen, um neuere Sony-Geräte besser zu unterstützten; durch sie soll der Treiber nun etwa die Tastatur-Beleuchtung bei den Modellen Vaio SA/SB/SC und CA/CB aktivieren können. Die Treiber für das Management Engine Interface (MEI) vieler Mainboard-Chipsätze von Intel konnten den Staging-Zweig verlassen.

Die Kernel-Version 3.5 bringt Verbesserungen für drei Funktionsbereiche, in denen Linux lange größere Defizite zeigte: In Zeiten von Optimus-Notebooks und USB-Monitoren ist eine saubere Basisinfrastruktur für zur Laufzeit aktivierbare Grafikhardware mehr als überfällig. Wichtig sind auch die Sicherheitsverbesserungen für Container, die den Linux Containern (LXC) vielleicht den entscheidenen Schub geben. Überfällig waren auch Funktionen zum besseren Performance Monitoring von Userspace-Software – zwar lässt Uprobes in seiner jetzigen Form noch einiges zu wünschen übrig, doch könnte es die Basis für erweiterte Tracing-Möglichkeiten legen, wie sie Dtrace bei Solaris bereits bietet.

Direkt nach der Freigabe von Linux 3.5 beginnt nun das typischerweise zwei Wochen lange Merge Window, in dem die Kernel-Entwickler den Großteil der Änderungen für die nächste Linux-Version in den Hauptentwicklungszweig integrieren.

Zur Aufnahme liegt unter anderem Code bereit, durch den der Kernel PCIe-Geräte in den Tiefschlafmodus D3Cold versetzen kann – das ist der tiefste Schlafmodus von PCIe-Bausteinen, bei dem die Hauptleitungen der PCIe-Verbindungen komplett abgeschaltet werden. Einziehen soll auch ein Treiber für Realtek-WLAN-Bausteine der RT3290-Serie.

Möglicherweise geht auch der Code für IOMMU Groups und das darauf aufbauende VFIO (Virtual Function I/O) in Linux 3.6 ein. Bei Letzterem handelt es sich um eine Zusammenführung von UIO (Userspace I/O) und dem bisherigen KVM-Device-Passthrough-Code. VFIO kann Userspace-Programmen mit Hilfe von I/O-Virtualisierungstechniken wie AMD-Vi und Intels VT-d einen direkten Zugriff auf Systemgeräte ermöglichen. Dadurch soll sich Hardware vom Userspace aus mit geringer Latenz und hohem Datendurchsatz nutzen lassen; die IOMMU (Input/Output Memory Management Unit) stellt dabei sicher, das keine Arbeitsspeicherbereiche per DMA (Direct Memory Access) zugänglich sind, die nichts mit dem via VFIO genutzten Gerät zu tun haben.

Die Technik ist keineswegs mit einem Plan verbunden, Linux-Treiber generell in den Userspace zu verlagern; vielmehr ist sie vorwiegend zur Virtualisierung gedacht, um einzelne Geräte des Wirts an Gäste durchzureichen, damit diese sie mit weniger Overhead nutzen können als bisher. Einige Hintergründe liefern Artikel bei LWN.net, die Folien des LinuxTag-Vortrags "Userspace I/O and Other Recent IOMMU Developments in the Linux Kernel" von IOMMU-Maintainer Jörg Rödel und die Folien eines Vortrags, den der VFIO-Entwicklers im letzten Jahr auf der Linux Plumbers Conference (LPC) gehalten hat.

Das Kernel-Log in c't und auf heise open wird wie üblich über diese und andere Neuerungen am Linux-Kernel und in dessen Umfeld berichten. Sofern Torvalds und seine Mitstreiter im üblichen Tempo arbeiten, dürfte Linux 3.6 ungefähr Ende September erscheinen.

Linux-
Version
Anzahl
Dateien¹
Zeilen
Quelltext²
(Ohne
Dokum.)
Entwick-
lungs-
zeitraum
Anzahl
Commits³
Diffstat⁴
2.6.39 36705 14533582
(13600071)
65 Tage 10268 10985 files changed,
 847537 insertions(+),
 523387 deletions(-)
3.0 36781 14646952
(13688408)
64 Tage 9153 7946 files changed,
 555406 insertions(+),
 442033 deletions(-)
3.1 37084 14770469
(13804451)
94 Tage 8692 9181 files changed,
 728892 insertions(+),
 604658 deletions(-)
3.2
37617 14998651
(14017008)
73 Tage 11881 12608 files changed,
 1646421 insertions(+),
 1418238 deletions(-)
3.3 38082 15166074
(14173668)
74 Tage 10550 10698 files changed,
 599745 insertions(+),
 432324 deletions(-)
3.4 38566 15383860
(14370856)
63 Tage 10899 11086 files changed,
 576156 insertions(+),
 358369 deletions(-)
3.5 39096 15596378
(14556354)
62 Tage 10957 9631 files changed,
 623277 insertions(+),
 410757 deletions(-)
¹ find . -type f -not -regex '\./\.git/.*' | wc -l
² find . -type f -not -regex '\./\.git.*' | xargs cat | wc -l (find . -name *.[hcS] -not -regex '\./\.git.*' | xargs cat | wc -l)
³ git-log --no-merges --pretty=oneline v3.(x-1)..v3.(x) | wc -l
⁴ git diff --shortstat v3.(x-1)..v3.(x)
Mehr Infos

Linux 3.5 herunterladen

Der neue Kernel steht über Kernel.org zum Download bereit; in Kürze dürften auch die Spiegelserver diese Version ausliefern. Den Quellcode gibt es in Tar-Archiven, die mit Gzip, Bzip2 und XZ komprimiert wurden. Die Echtheit des Archivs lässt sich nach dem Dekomprimieren über eine Signatur-Datei prüfen:

[thl@thl tmp]$ wget --quiet http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.1.tar.sign \
http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.1.tar.xz
[thl@thl tmp]$ xz -d linux-3.1.tar.xz
[thl@thl tmp]$ gpg --verify linux-3.1.tar.sign
gpg: Unterschrift vom Mo 24 Okt 2011 09:17:58 CEST mittels RSA-Schlüssel ID 00411886
gpg: Korrekte Unterschrift von "Linus Torvalds <torvalds@linux-foundation.org>"
gpg: WARNUNG: Dieser Schlüssel trägt keine vertrauenswürdige Signatur!
gpg: Es gibt keinen Hinweis, daß die Signatur wirklich dem vorgeblichen Besitzer gehört.
Haupt-Fingerabdruck = ABAF 11C6 5A29 70B1 30AB E3C4 79BE 3E43 0041 1886

Weitere Hintergründe und Informationen rund um Entwicklungen im Linux-Kernel und dessen Umfeld finden sich in den vorangegangenen Kernel-Logs auf heise open. Neue Ausgaben des Kernel-Logs werden auf den Identi.ca- und Twitter-Konten "@kernellog" erwähnt; die englischen, bei den Kollegen von "The H Open" erscheinenden Übersetzungen auf den Identi.ca- und Twitter-Konten "@kernellog2". Gelegentlich zwitschert der Autor des Kernel-Logs unabhängig davon über einige später meist auch im Kernel-Log erwähnte Themen als "@kernellogauthor" bei Identi.ca und Twitter.

(thl) (thl)