Die Neuerungen von Linux 3.8 | heise online

Die Neuerungen von Linux 3.8

Verbesserte Grafiktreiber und ein neues Dateisystem für Flash-Datenträger gehören zu den wichtigsten Neuerungen von Linux 3.8. Die Kernel-Entwickler haben zudem Btrfs und Ext4 optimiert und eine Reihe neuer Treiber integriert.

vorlesen Druckansicht 42 Kommentare lesen
Lesezeit: 10 Min.
Von
  • Thorsten Leemhuis
Inhaltsverzeichnis

"Einradfahrender Gorilla" (Unicycling Gorilla) – so lautet der Codename der Linux-Version 3.8, die Linus Torvalds nach zehn Wochen Entwicklung freigegeben hat. Der Name ist wieder mal aus einem Erlebnis von Torvalds entstanden und hat lediglich anekdotischen Wert. Von den zahlreichen Verbesserungen, die die neueste Kernel-Version bringt, werden aber viele Linux-Anwender profitieren.

Mehr Infos

Im Detail

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

  1. Dateisysteme und Storage
  2. Infrastruktur
  3. Treiber

Der nebenstehende Text fasst die wichtigsten Neuerungen dieser Artikel zusammen und gibt einen Ausblick auf Linux 3.9.

Der Kernel-Treiber Nouveau enthält nun alles, damit der OpenGL-Treiber Nouveau aktueller Mesa-3D-Versionen ohne weitere Konfiguration die 3D-Beschleunigung aller Grafikchips der GeForce-Serie nutzen kann. So weit hatten es die Nouveau-Entwickler, die die zur Treiberprogrammierung nötigen Informationen per Reverse Engineering gewinnen, bisher noch nie geschafft; zuletzt fehlte die standardmäßige 3D-Unterstützung noch bei einigen der neueren Fermi-GPUs und den seit März 2012 verkauften Grafikchips der Kepler-Generation (1, 2, 3). Für viele PCs wird Nvidias proprietärer Grafiktreiber aber weiterhin die bessere Wahl bleiben, da Nouveau die schnelleren Betriebsmodi vieler neuerer GeForce-Chips nicht aktivieren kann und daher nur dürftige 3D-Performance liefert. Es hapert auch noch an anderen Stellen; etwa bei der Video-Beschleunigung oder der Unterstützung für die Lüfterregelung.

Der Grafiktreiber i915 unterstützt nun standardmäßig die Grafikkerne von Haswell-Prozessoren, die Intel in einigen Monaten als Core i-4000 einführen will; passende 3D-Treiber soll die derzeit vorbereitete Mesa-3D-Version 9.1 enthalten.

Linux 3.8 unterstützt das im Oktober von Samsung-Entwicklern präsentierte Dateisystem F2fs (Flash-Friendly File System). Es ist für den Einsatz auf Flash-Datenträgern ausgelegt, die einen primitiveren Flash Translation Layer (FTL) verwenden als SSDs für Desktop-PCs oder Server – dazu gehören USB-Sticks, Speicherkarten sowie die integrierten Speichermedien in Kameras, Tablets und Smartphones.

F2fs ist ein Log-structured File System (LFS) und füllt Datenträger von vorn nach hinten; erst wenn es dort angekommen ist, beginnt es wieder vorn und nutzt dann die zwischenzeitlich freigewordenen Bereiche. Beim sequenziellen Befüllen verwendet F2fs ähnlich wie Btrfs Copy-on-Write (COW), was eine gewisse Robustheit mit sich bringt. Anders als Btrfs oder Ext4 versucht Fs2fs nicht, das Fragmentieren von Daten zu vermeiden; durch die sehr kurzen Zugriffszeiten ist Fragmentierung bei Flash-Datenträgern kein Nachteil. Die Userspace-Werkzeuge zum Formatieren eines F2fs-Laufwerks liefert kernel.org.

Das weiterhin experimentelle Btrfs erhielt eine Replace-Funktion, die Daten schneller als zuvor von einem Laufwerk auf ein anderes transferiert – etwa beim Datenträgeraustausch im laufenden Betrieb (u. a. 1, 2). Unter den weiteren Änderungen an Btrfs sind einige, die Latenzen und CPU-Belastung beim Fsync und Schreiben per O_DIRECT senken sollen; durch andere Patches soll Btrfs die Arbeit besser auf mehr CPU-Kerne verteilen können, was die Performance steigern soll (u. a. 1, 2).

Durch den neuen Inline Data Support kann Ext4 wenige Byte kleine Dateien nun zusammen mit dem Inode-Eintrag speichern, was Speicherplatz spart und den Zugriff beschleunigt (1, 2). Ext4 unterstützt nun auch die bei Linux 3.1 eingeführten Lseek-Optionen SEEK_DATA und SEEK_HOLE, durch die beispielsweise Backup- oder Kopierprogramme leere Bereiche von Sparse-Dateien erkennen können, um diese bei ihrer Arbeit auszusparen.Auch Tmpfs implementiert diese Lseek-Parameter nun.

Der von Sniffer-Werkzeugen wie Tcpdump genutzte Berkeley Packet Filter (BPF) kann nun auch auf VLAN-Tags filtern. Der WLAN-Treiber brcmsmac unterstützt nun den Broadcom-Chip BCM43224 und der RaLink-Treiber rt2800usb den USB-WLAN-Adapter Sweex LW323. Neu dabei ist der Treiber rtl8723ae für den PCIe-WLAN-Chip Realtek RTL8723AE (u. a. 1, 2). Zum Kernel stieß ferner auch der Treiber cdc-mbim, der Breitband-Modems unterstützt, die das vom USB Implementers Forum spezifizierte Mobile Interface Broadband Model (MBIM) 1.0 implementieren (1, 2). MBIM ist ein USB-Protokoll zur Anbindung von Modems für Notebooks, Tablets und Desktop-PCs, die per GSM und CDMA-basierten 3G - und 4G-Funktechniken (einschließlich LTE) eine Internet-Anbindung ermöglichen.

Die Audio-Treiber des Kernels unterstützen jetzt die Soundkarte Philips PSC724 Ultimate Edge. Der Kernel spricht jetzt auch VIAs HD-Audio-Codec VT1705CF an. Neu dabei ist auch der LSI MPT Fusion SAS 3.0 Device Driver mpt3sas, der 12-GB-SAS-Chips von LSI unterstützt; er hat einige Gemeinsamkeiten mit dem Treiber mpt2sas, der nun keine größeren Erweiterungen mehr erhalten soll. Der Treiber hptiop spricht nun auch die HighPoint-Controller RR4520 und RR4522 an. Die Kernel-Entwickler haben den für das "USB Attached SCSI protocol" zuständigen Treiber uas als kaputt markiert, weil er Probleme auslöst und noch nicht ausgereift ist.

Nach langen, teilweise heftigen Streitigkeiten zwischen verschiedenen Kernel-Entwicklern wurden einige unter dem Schlagwort "Balancenuma" entwickelte Funktionen für Linux 3.8 aufgenommen (u. a. 1, 2, 3, 4, 5). Durch sie kann der Kernel im Idealfall automatisch Prozessor und Arbeitsspeicher zusammenhalten, die ein Prozess verwendet. Solch eine Platzierung ist für optimale Performance auf den heute verbreiteten Multiprozessor-Systemen mit NUMA (Non-Uniform Memory Access) wichtig, denn ein Prozess kann dort auf den Arbeitsspeicher des Prozessors, auf dem er läuft, schneller zugreifen als auf den Speicher anderer Prozessoren.

Um Wartung und Weiterentwicklung von Linux zu erleichtern, haben die Kernel-Entwickler die Unterstützung für Intels 386er und andere CPUs entfernt, die diese vor über 20 Jahren verbreitete Prozessor-Architektur aufweisen; der 486er und modernere x86-32-Prozessoren werden weiterhin unterstützt. Auf einem 386er hatte Torvalds damals die Linux-Entwicklung begonnen. Er weint dem Code aber keine Träne nach und schrieb: "Ich bin nicht sentimental. Gut, dass wir das los sind."

Der Linux-Kernel enthält jetzt einen Balloon Driver für Hyper-V. Bei Linux-Gästen mit diesem Treiber kann Microsofts Hypervisor zur Laufzeit einen Teil des Gast-Arbeitsspeichers vorübergehend an den Host überstellen und diesen später auch wieder zurückgeben.

Linux 3.8 schließt die größere Umbauarbeiten zur Unterstützung für User Namespaces weitgehend ab, die Eric W. Biederman in den letzten Monaten vorangetrieben hat. Durch diese Änderungen können nun auch unprivilegierte Anwender einen abgeschotteten Bereich aufsetzen. Dort hat der Anwender Root-Rechte, darf aber nichts tun, was privilegierte Aktionen außerhalb des Namespace erfordern würde.

Der Cgroup-Controller memory hat die Erweiterung kmem enthalten (u. a. 1, 2, Dokumentation). Über sie lässt sich der Speicher begrenzen, den der Kernel intern zur Verwaltung von Prozessen benötigt. Bei passend konfigurierten Limits soll der Kernel dadurch eine Fork-Bombe auch in Containern im Zaum halten können, in denen Anwender Root-Recht haben.

Unterstützung für alle GeForce-Grafikchips und den Grafikkern in Intels nächste Prozessor-Generation – für Grafiktreiber ist Linux 3.8 wieder ein wichtiger Schritt nach vorn. Speziell den Entwicklern des Nouveau-Treibers gebührt Dank für das, was sie erreicht haben, auch wenn es noch einiges zu tun gibt. Mit den Änderungen für Numa-Systeme und an den User Namespaces erhielt Linux 3.8 zudem Verbesserungen, die für die leistungsfähigen Server in Zeiten der Cloud immer wichtiger werden. Und F2FS ist vielleicht das Dateisystem auf Ihrem nächsten Smartphones.

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

Zur Aufnahme liegen Patches bereit, durch die der Kernel-interne Hypervisor KVM nun auch einige ARM- und MIPS32-Prozessoren unterstützt, die Funktionen zur Hardware-Virtualisierung enthalten – darunter etwa der Cortex A-15 von ARM. Die Integration von Treibern für VM Sockets und VMCI soll die Unterstützung für Hypervisor von VMware verbessern. Zum Netzwerksubsystem wird wahrscheinlich ein Treiber für Intels WLAN-Bausteine der 7000er-Serie stoßen, die Intel offenbar in einigen Monaten einführen will. Auch Intels PowerClamp-Treiber soll in Linux 3.9 einziehen; er kann die maximale Leistungsaufnahme von Intel-Prozessoren begrenzen, indem es diese durch einen erzwungenen Wechsel in einen C-State kurzzeitig schlafen legt.

Integriert werden sollen auch einige Umbauarbeiten, die den Code zur Konfiguration von Audio-Codecs robuster und einfacher machen sollen. Zudem sollen Verbesserungen für die Locking-Mechanismen von Grafiktreibern sowie Unterstützung für AMDs Grafikkerne der Oland-Serie einziehen. Letztere stecken auf einigen Radeon-HD-Grafikkarten der 8000er-Serie und gehören zur Southern-Island-Familie – die Mesa-3D- und X.org-Treiber für diese im Herbst 2011 eingeführten Grafikchipgeneration sind seit langem in Entwicklung und nähern sich Berichten zufolge mit dem derzeit vorbereiteten Mesa 3D 9.1 einen Stand, mit dem sie gut genug für Endanwender sein sollen.

Außen vor bleiben wird das Native KVM-Tool, für dessen Aufnahme im Tools-Verzeichnis ein paar Kernel-Entwickler seit Monaten geworben haben; diesem Wunsch hat Linus Torvalds aber kürzlich eine sehr deutliche Absage erteilt.

Sofern der Linux-Erfinder und seine Mitstreiter im üblichen Tempo arbeiten, dürfte Linux 3.9 Anfang Mai oder vielleicht sogar schon in den letzten Apriltagen erscheinen. Ein Artikel wie dieser wird dann wieder einen Überblick über die wichtigsten Neuerungen liefern.

Linux-
Version
Anzahl
Dateien¹
Zeilen
Quelltext²
(Ohne
Dokum.)
Entwick-
lungs-
zeitraum
Anzahl
Commits³
Diffstat⁴
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(-)
3.6 39733 15868036
(14811965)
71 Tage 10247 8296 files changed,
 527247 insertions(+),
 255597 deletions(-)
3.7 40905 16191690
(15108939)
71 Tage 11990 15886 files changed,
 1567749 insertions(+),
 1244085 deletions(-)
3.8 41520 16416874
(15310436)
70 Tage 12394 11701 files changed,
 577188 insertions(+),
 352003 deletions(-)
¹ find . -type f -not -regex '\./\.git/.*' | wc -l
² find . -type f -not -regex '\./\.git.*' | xargs cat | wc -l; echo "($(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 herunterladen

Die neue Linux-Version steht über Kernel.org zum Download bereit; bereits kurz nach der Veröffentlichung liefern auch viele Spiegelserver den neuen Kernel aus.

Den Quellcode des Kernels gibt es in Tar-Archiven, die mit Gzip, Bzip2 und Xz komprimiert wurden. Mit Befehlen wie den folgenden lassen sich die Quellen herunterladen, entpacken und auf Unversehrtheit prüfen:

[thl@thl tmp]$ export linux_version=3.1
[thl@thl tmp]$ wget --quiet http://www.kernel.org/pub/linux/kernel/v3.0/linux-${
linux_version}.tar.sign \
http://www.kernel.org/pub/linux/kernel/v3.0/linux-${linux_version}.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

(thl) (thl)