Die Neuerungen von Linux 3.7
Seite 3: Fazit, Trends, Statistik
Summa summarum 3.7
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.
Kernel-Trends: Was 3.8 bringt
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.
Daten und Zahlen zu den jüngsten Versionen des Linux-Kernels
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) |
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)