Die Neuerungen von Linux 3.7

Seite 3: Fazit, Trends, Statistik

Inhaltsverzeichnis

Die Änderungen an Grafik- und Audio-Treiber bringen vielleicht keine grandiosen Verbesserungen, sind aber weitere Bausteine, die Linux für den Einsatz auf Heim- oder Multimedia-PCs verbessern. Die Optimierungen an Btrfs, SMB2-Unterstüzung sowie NAT für IPv6 dürften so manchen Hobby- oder Berufs-Admin ansprechen; zudem hat TCP Fast Open das Potenzial, das Internetsurfen ein wenig flotter zu machen. Die bedeutsamsten Änderungen sind aber der Multiplatform-Support für 32-Bit-ARM-Plattformen und die Unterstützung für ARM64 – schließlich geht es hier um die Geräte, die wir in den nächsten Jahren in unseren Hosentaschen und vielleicht in manchen Rechenzentren haben.

Direkt nach der Freigabe von Linux 3.7 beginnt nun das Merge Window, in dem die Kernel-Entwickler den Großteil der Änderungen für die darauf folgende Linux-Version in den Hauptentwicklungszweig integrieren. Das typischerweise zwei Wochen lange Merge Window soll diesmal an Heiligabend oder vielleicht auch einige Tage davor enden, wie Torvalds bei der Freigabe von 3.7 erklärte.

Zur Aufnahme liegt unter anderem die Erweiterung kmem für den Cgroup-Controller memory bereit. Sie kann den Speicherverbrauch limitieren, den der Kernel für einen Prozess belegt. Bei passend konfigurierten Limits kann der Kernel dadurch eine mit der Shell ausgeführte "Fork-Bombe" im Zaum halten; bislang können Anwender ohne Root-Rechte damit so viel Last erzeugen, dass ein Linux-System komplett zum Stillstand kommt. Details zu kmem erläutern die Beschreibung der Patches und die Dokumentation.

Die Kernel-Entwickler arbeiten außerdem darauf hin, die KonfigurationsoptionCONFIG_EXPERIMENTAL zu entfernen. Die musste man bislang auswählen, um als experimentell gekennzeichnete Kernel-Funktionen aktivieren zu können. Zahlreiche Funktionen sind so gekennzeichnet, obwohl sie in Distributionskerneln aktiviert sind und sich auf modernen Linux-Systemen tagtäglich bewähren. Dadurch habe die Option an Bedeutung verloren, wie der Text zum Vorhaben erläutert. Bei einzelnen Funktionen wurde die Abhängigkeit von CONFIG_EXPERIMENTAL bereits bei Linux 3.7 entfernt; der großer Schwung dürfte bei 3.8 folgen. Funktionen, die tatsächlich noch experimentell sind, sollen anders gekennzeichnet werden; etwa durch ein "(EXPERIMENTAL)" in der Kurzbeschreibung.

Diskutiert wird auch die Aufnahme einiger Funktionen, mit denen der Kernel automatisch Prozesse und die von ihnen verwendete Speicherbereiche beieinander hält. Das ist für Multiprozessorsysteme mit NUMA (Non-Uniform Memory Access) wichtig: Optimale Leistung erzielt ein Prozess dann, wenn er Speicher nutzt, der dem Speichercontroller des Prozessors zugeordnet ist, auf dem der Prozess laufen. Das vermeidet Overhead durch die Kommunikation zwischen Prozessoren bei der Nutzung "fremder" Speicherbereiche.

Mit AutoNuma und sched/numa werden seit mehreren Monaten zwei unterschiedliche Ansätze entwickelt. Die Verfechter der beiden Lösungen haben auf öffentlichen Mailinglisten teilweise heftig miteinander gezankt. Weitere Entwickler haben sich kürzlich eingeschaltet und weitere Patch-Sammlungen zu den Zweck erstellt. In dem Zug haben sich mittlerweile einige Grundfunktionen herauskristallisiert, die bei den verschiedenen Ansätzen identisch oder ähnlich waren. Sie dürften in eine der nächsten Kernel-Versionen einziehen, um darauf aufbauend nach der besten Herangehensweise für eine automatische Prozess-Platzierung durch den Kernel zu suchen.

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.8 ungefähr in der zweiten Februarhälfte erscheinen.

Linux-
Version
Anzahl
Dateien¹
Zeilen
Quelltext²
(Ohne
Dokum.)
Entwick-
lungs-
zeitraum
Anzahl
Commits³
Diffstat⁴
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(-)
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(-)
¹ 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 3.7 herunterladen

Der neue Kernel steht über Kernel.org zum Download bereit; wenige Stunden nach der Veröffentlichung liefern auch die meisten Spiegelserver die neue Version aus. Den Quellcode gibt es in Tar-Archiven, die mit Gzip, Bzip2 und Xz komprimiert wurden. Mit Befehlen wie den folgenden lässt sich die Echtheit des Archivs 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)