zurück zum Artikel

Die Neuerungen von Linux 3.11

Trends & News | Kernel-Log

Der neue Linux-Kernel kann Netzwerkpakete schneller verarbeiten und die Stromsparmechanismen von AMDs Radeon-HD-Grafik besser nutzen. Neben zahlreichen neuen und verbesserten Treiber bringt Linux 3.11 zudem eine Funktion, die Teile des Arbeitsspeichers komprimiert.

Die Neuerungen von Linux 3.11

Neun Wochen nach Linux 3.10 [1] hat Linus Torvalds jetzt den Linux for Workgroups genannten [2] Linux-Kernel 3.11 freigegeben [3]. Er bringt wieder eine Reihe von Änderungen, die Desktop-PCs und Notebooks ebenso betreffen wie Embedded Systems und Server.

Dank einer Sammlung von über 150 Patches beherrscht Linux jetzt AMDs Dynamic Power Management [5] (DPM) sowie das in der PCIe-Spezifikation definierte ASPM (Active State Power Management) [6] bei nahezu allen Radeon-HD-GPUs. Diese Techniken, die AMDs proprietärer Grafiktreiber Catalyst schon länger unterstützt, können den Stromverbrauch deutlich senken, wenn die GPU wenig zu tun hat; DPM gilt allerdings noch als experimentell, daher muss man es noch manuell aktivieren [7]. Der Radeon-Treiber hat zudem Unterstützung für eine Reihe Grafikkerne erhalten, die AMD in den letzten Monaten vorgestellt hat; darunter Sea-Islands-GPUs [8] wie der Bonaire auf der Radeon HD 7790 oder den Grafikkern der Kabini-Chips, auf dem sparsamen Notebook-Prozessoren wie AMDs A4-5000 oder A6-5200 [9] basieren.

Im Detail

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

  1. Dateisysteme & Storage [11]
  2. Infrastruktur [12]
  3. Treiber und Netzwerk [13]
  4. Grafiktreiber [14]

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

Der Nouveau-Kernel-Treiber hat Basisunterstützung für die Nvidia-GPU GF117 (NVD7 in der Nouveau-Kodierung [15]) erhalten, die unter anderem die Geforce-GT-Modelle 620M, 625M, 710M und 720M nutzen. Ferner lassen sich bei der GPU GK110 (NVF0) der GeForce GTX 780 nun Beschleunigungsfunktionen nutzen [16], wenn man dem Treiber die Firmware aus Nvidias proprietärem Treiber mitgibt.

Der Grafiktreiber für Intels Desktop- und Notebook-Prozessoren unterstützt nun 30-Bit-Farbtiefe [17] und soll bei Prozessoren der Haswell-Serie, zu denen die Core-i-CPUs der vierten Generation zählen, die Stromsparfunktionen besser nutzen [18]. Die Unterstützung für den Grafikkern der im Herbst erwarteten Silvermont-SoCs gilt jetzt als fertig [19]; diese System-on-Chip-Architektur will Intel nicht nur bei neuen Atom-Prozessoren verwenden, sondern auch bei den J- und D-Ausführungen von Celeron und Pentium [20].

Das Boot-Logo von Linux 3.11: Tux mit "Windows for Workgroups 3.11"-Fahne.
Das Boot-Logo von Linux 3.11: Tux mit "Windows for Workgroups 3.11"-Fahne.

Mit Hilfe des neuen Flags O_TMPFILE für die Funktionsaufrufe open() [22] und openat() [23] können Anwendungen nun temporäre Dateien anlegen, die im Dateisystem nicht sichtbar sind (u. a. 1 [24], 2 [25], 3 [26]). Das kann Symlink-Attacken und einige andere Tricks unterbinden, die Angreifer gelegentlich nutzen, um sich höhere Rechte zu verschaffen.

Mit Hilfe eines neuen Label-Typs [27] unterstützt der Server [28]- und Client [29]-Code für die vierte Generation des Network File System (NFS) jetzt Security Label; dadurch lassen sich nun auch auf NFSv4 die Sicherheitskontext-Informationen für SELinux speichern.

Durch das neue "Low-latency Ethernet device polling" können Anwendungen den Kernel auffordern, besonders häufig beim Netzwerkchip nachzufragen, ob neue Daten vorliegen (1 [31], 2 [32], 3 [33], 4 [34], 5 [35], 6 [36]). Das reduziert die Zeit [37] zwischen dem Eintreffen und der Verarbeitung von Netzwerkpaketen, was in manchen Situationen wichtiger ist als die Prozessorlast, denn die steigt durch solch ein hochfrequentes Pollen. Zu den Treibern, die die Technik derzeit unterstützen, gehören bnx2 [38], ixgbe [39] und mlx4_en [40].

Dem Kernel liegt jetzt [42] der Treiber ath10k [43] bei, der die von Qualcomm Atheros gefertigten WLAN-Bausteine der Chipfamilie QCA988x anspricht. Bei Intels MVM-Chips – etwa jenen der 7000er-Serie – beherrscht der Treiber iwlwifi [44] jetzt Low Power RX, was den Stromverbrauch bei WLAN-Verbindungen reduzieren kann, über die kaum Daten laufen.

Linux enthält einen Plattform-Treibe [45]r, durch die der Kernel Intels Rapid Start Technology [46] unterstützt – eine vor allem bei Notebooks mit Intel-Prozessoren und SSDs anzutreffende Technik, bei der die Firmware ein schon länger im Suspend-to-RAM schlafendes System kurz startet, um es in den Suspend-to-Disk zu schicken und so den Stromverbrauch weiter zu reduzieren; einige Hintergründe zur Technik und ihrem praktischen Einsatz erläutert Treiber-Autor Matthew Garrett in seinem Blog [47].

Die Neuerungen von Linux 3.11

Das Memory-Management-Subsystem enthält jetzt Zswap [49], das Arbeitsspeicherinhalte zu komprimieren versucht, die der Kernel sonst in den Swap-Bereich auslagern würde (Dokumentation [50], LWN.net-Artikel [51]). Das Ganze kann die Performance steigern, da das Dekomprimieren bei modernen CPUs schneller erfolgt als ein Einlesen ausgelagerter Speicherbereiche. Die Technik war schon länger im Staging-Bereich des Kernels, gilt aber auch nach dem Verlassen des Bereichs für unreifen Code als experimentell.

Linux 3.11 kann LZ4 [52] zum Komprimieren [53] und Dekomprimieren [54] von Daten nutzen. Laut Messwerten der Entwickler [55] soll dieser Kompressionsalgorithmus fast so dicht packen wie LZO [56], aber deutlich flotter entpacken. Das macht LZ4 unter anderem zum Komprimieren von Kernel-Binary und Initramfs interessant, was Linux 3.11 ebenso unterstützt [57] wie die Verwendung von LZ4 über das Crypto API [58].

Durch eine recht kleine Änderung [60] bringt Linux 3.11 alles mit [61], damit aktuelle Wine-Versionen auf ARM-Systemen Windows-RT-Programme ausführen können [62], die für Windows RT übersetzt wurden. Der im Kernel integrierte Hypervisor KVM kann nun auch auf ARM64-Prozessoren virtualisieren (u. a. 1 [63], 2 [64]); das gelingt jetzt auch mit Xen [65], wenn man Linux 3.11 mit dem Xen-Hypervisor 4.3 [66] paart.

Der ARM- und ARM64-Code wird erstmals Unterstützung für Hugetblfs und Transparent Huge Pages (THP) bieten, mit deren Hilfe sich große Speicherseiten bei ARM-Kernen nutzen lassen (1 [67], 2 [68],3 [69], 4 [70]). Neu ist auch die Unterstützung [71] für die von ARM selbst entwickelte IOMMU (I/O Memory Management Unit).

Nach dem UVD-Support in Linux 3.10 macht der Radeon-Treiber mit 3.11 einen weiteren großen Sprung vorwärts. Zusammen mit den OpenGL-Treibern in Mesa 3D 9.2 [73] beherrschen die quelloffenen Radeon-Treiber mit Video- und 3D-Beschleunigung sowie Powermanagement nun endlich fast alle heutzutage wichtigen Funktionen. Bei der 3D-Performance können die Treiber zwar noch nicht mit AMDs proprietären Linux-Treibern mithalten, für einfache Spiele und 3D-Desktops ist die gebotene Leistung aber allemal ausreichend.

Linux 3.11 enthält zudem wieder reichlich Änderungen, die auf den ersten Blick nicht sonderlich wichtig scheinen, Linux aber für heutige Anforderungen und zukünftige Einsatzgebiete fit macht; dazu zählen das Datei-Open-Flag O_TMPFILE ebenso wie das Low-latency Ethernet device polling oder die Virtualisierung auf ARM64 .

Die Neuerungen von Linux 3.11

Direkt nach der Freigabe von Linux 3.11 beginnt nun das typischerweise zwei Wochen lange Merge Window [75], in dem die Kernel-Entwickler den Großteil der Änderungen für die darauf folgende Linux-Version in den Hauptentwicklungszweig [76]integrieren. Zur Aufnahme in dieser Phase liegen unter anderem einige Änderungen bereit, durch die der Kernel einen zweiten Grafikchip bei Bedarf automatisch ein- und ausschalten kann (u. a. 1 [77], 2 [78]); das ist etwa für den stromsparendes Betrieb von Optimus-Notebooks interessant. Zudem sind einige Umbauten geplant [79], durch die sich die Rechenfähigkeiten von Grafikchips (GPGPU/General-purpose Computing on Graphics Processing Units) besser ansprechen lassen sollen.

Auch ein Treiber für SAS/SATA-6G-Hardware-RAID-Controller von ExpressSAS [80] soll zum Kernel stoßen. Auch ein Kernel-Grafiktreiber für die Adreno-GPUs, die einige Qualcomm-SoCs mit ARM-Kern enthalten, soll einfließen [81]; ein darauf aufbauender Open-Source-Treiber steckt bereits in Mesa 3D 9.2 [82].

Zum Einzug in den Staging-Bereich liegt der Treiber RTL8188EU [83] bereit; er spricht den gleichnamigen Realtek-WLAN-Chip an [84], der unter anderem im USB-WLAN-Adapter TP-Link TL-WN725N steckt. Aus dem Kernel rausfliegen soll das bislang im Staging-Bereich angesiedelte Zcache, das den Page-Cache komprimiert, um Arbeitsspeicher zu sparen; an besserem Code, der solch eine Funktion bietet, wird gearbeitet. Möglicherweise zieht in Linux 3.12 auch der Treiber blockconsole [85] ein, der bei einem schwerwiegenden Systemabsturz Fehlerdaten auf Speichermedien wie USB-Sticks ablegen kann, um mit diesen Daten die Absturzursache untersuchen zu können.

Sofern Linus Torvalds und seine Mitstreiter trotz ihres jährlichen Treffens [86] im üblichen Tempo arbeiten, dürfte Linux 3.12 Mitte November 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.4 [88] 38566 15383860
(14370856)
63 Tage 10899 11086 files changed,
576156 insertions(+),
358369 deletions(-)
3.5 [89] 39096 15596378
(14556354)
62 Tage 10957 9631 files changed,
623277 insertions(+),
410757 deletions(-)
3.6 [90] 39733 15868036
(14811965)
71 Tage 10247 8296 files changed,
527247 insertions(+),
255597 deletions(-)
3.7 [91] 40905 16191690
(15108939)
71 Tage 11990 15886 files changed,
1567749 insertions(+),
1244085 deletions(-)
3.8 [92] 41520 16416874
(15310436)
70 Tage 12394 11701 files changed,
577188 insertions(+),
352003 deletions(-)
3.9 [93] 42423 16686879
(15563152)
69 Tage 11910 11120 files changed,
608436 insertions(+),
338439 deletions(-)
3.10 [94] 43016 16955489
(15803499)

63 Tage 13637
10471 files changed,
660572 insertions(+),
391966 deletions(-)
3.11 [95] 44002 17403279
(16225814)
63 Tage 10893 9692 files changed,
788982 insertions(+),
341196 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 herunterladen

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

Den Quellcode von Linux gibt es in Tar-Archiven, die mit Gzip, Bzip2 und Xz komprimiert wurden. Die folgenden Befehle zeigen am Beispiel von Linux 3.1, wie Sie 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-
${linux_version}.tar.xz
[thl@thl tmp]$ gpg --verify linux-
${linux_version}.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 [98])


URL dieses Artikels:
http://www.heise.de/-1944715

Links in diesem Artikel:
[1] https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-3-10-1898006.html
[2] https://www.heise.de/meldung/Linux-for-Workgroups-Funktionsumfang-von-Linux-3-11-steht-1917174.html
[3] http://article.gmane.org/gmane.linux.kernel/1554928
[4] 
[5] http://git.kernel.org/linus/da321c8a6a2a947710499273aaad733974af1689
[6] http://en.wikipedia.org/wiki/Active_State_Power_Management
[7] https://www.heise.de/ct/artikel/Kernel-Log-Was-3-11-bringt-4-Grafiktreiber-1944383.html
[8] http://xorg.freedesktop.org/wiki/RadeonFeature/
[9] https://www.heise.de/meldung/AMDs-sparsame-Mobilprozessoren-Kabini-und-Temash-legen-los-1867778.html
[10] http://www.heise.de/glossar/entry/Kernel-Log-397909.html
[11] https://www.heise.de/ct/artikel/Kernel-Log-Was-3-11-bringt-1-Dateisysteme-Storage-1930673.html
[12] https://www.heise.de/ct/artikel/Kernel-Log-Was-3-11-bringt-2-Infrastruktur-1937862.html
[13] https://www.heise.de/ct/artikel/Kernel-Log-Was-3-11-bringt-3-Treiber-und-Netzwerk-1941476.html
[14] https://www.heise.de/ct/artikel/Kernel-Log-Was-3-11-bringt-4-Grafiktreiber-1944383.html
[15] http://nouveau.freedesktop.org/wiki/CodeNames/
[16] http://git.kernel.org/linus/9d1c4c51ce9cd133a25b339be398e35663cc2ae5
[17] http://git.kernel.org/linus/3e7ca9858d51a8df2bb18b82a529df5e5f9abc51
[18] http://git.kernel.org/linus/99a2008d0b32d72dfc2a54e7be1eb698dd2e3bd6
[19] http://git.kernel.org/linus/590e4df8c82e6c2707ae12ba6672ab6fb9cd4b89
[20] https://www.heise.de/meldung/Mehr-Celerons-und-Pentiums-mit-Silvermont-Innenleben-1911564.html
[21] 
[22] http://linux.die.net/man/2/open
[23] http://linux.die.net/man/2/openat
[24] http://git.kernel.org/linus/60545d0d4610b02e55f65d141c95b18ccf855b6e
[25] http://git.kernel.org/linus/bb458c644a59dbba3a1fe59b27106c5e68e1c4bd
[26] http://git.kernel.org/linus/48bde8d3620f5f3c6ae9ff599eb404055ae51664
[27] http://git.kernel.org/linus/eb9ae686507bc5a5ca78e6b3fbe629cd5cc67864
[28] http://git.kernel.org/linus/18032ca062e621e15683cb61c066ef3dc5414a7b
[29] http://git.kernel.org/linus/aa9c2669626ca7e5e5bab28e6caeb583fd40099b
[30] 
[31] http://git.kernel.org/linus/dafcc4380deec21d160c31411f33c8813f67f517
[32] http://git.kernel.org/linus/060212928670593fb89243640bf05cf89560b023
[33] http://git.kernel.org/linus/2d48d67fa8cd129ea85ea02d91b4a793286866f8
[34] http://git.kernel.org/linus/d30e383bb856f614ddb5bbbb5a7d3f86240e41ec
[35] http://git.kernel.org/linus/a5b50476f77a8fcc8055c955720d05a7c2d9c532
[36] http://git.kernel.org/linus/cbf55001b2ddb814329735641be5d29b08c82b08
[37] http://lwn.net/Articles/558305/
[38] http://git.kernel.org/linus/8f20aa575c0a69ccbdce325818f2b3878bfed61c
[39] http://git.kernel.org/linus/5a85e737f30ce7b939a34d93cca816400342208c
[40] http://git.kernel.org/linus/9e77a2b837bbd7197da966f0915e8f1ddb2ca850
[41] 
[42] http://git.kernel.org/linus/5e3dd157d7e70f0e3cea3f2573ed69fb156a19d5
[43] http://wireless.kernel.org/en/users/Drivers/ath10k
[44] http://wireless.kernel.org/en/users/Drivers/iwlwifi
[45] http://git.kernel.org/linus/34a956db3774e8cba3f6b52aa9c1d67cf9a496fe
[46] http://software.intel.com/en-us/articles/what-is-intel-rapid-start-technology
[47] http://mjg59.dreamwidth.org/26022.html
[48] 
[49] http://git.kernel.org/linus/2b2811178e85553405b86e3fe78357b9b95889ce
[50] http://git.kernel.org/linus/61b0d76017a50c263c303fa263b295b04e0c68f6
[51] http://lwn.net/Articles/537422/
[52] http://fastcompression.blogspot.de/p/lz4.html
[53] http://git.kernel.org/linus/c72ac7a1a926dbffb59daf0f275450e5eecce16f
[54] http://git.kernel.org/linus/cffb78b0e0b3a30b059b27a1d97500cf6464efa9
[55] http://git.kernel.org/linus/cffb78b0e0b3a30b059b27a1d97500cf6464efa9
[56] http://www.oberhumer.com/opensource/lzo/
[57] http://git.kernel.org/linus/e76e1fdfa8f8dc1ea6699923cf5d92b5bee9c936
[58] http://git.kernel.org/linus/0ea8530dcf762526459b29ac713a623b51fd691f
[59] 
[60] http://git.kernel.org/linus/a4780adeefd042482f624f5e0d577bf9cdcbb760
[61] http://www.winehq.org/pipermail/wine-devel/2013-July/100438.html
[62] http://forum.xda-developers.com/showthread.php?p=36534446
[63] http://git.kernel.org/linus/c3eb5b14449a0949e9764d39374a2ea63faae14f
[64] http://git.kernel.org/linus/379e04c79e8a9ded8a202f1e266f0c5830185bea
[65] http://git.kernel.org/linus/aa42aa1389a54d1afb1c7606c5a37c3429cdf517
[66] https://www.heise.de/meldung/Virtualisierer-Xen-4-3-jetzt-auch-fuer-ARM-1914140.html
[67] http://git.kernel.org/linus/1355e2a6eb88f04d76125c057dc5fca64d4b6a9e
[68] http://git.kernel.org/linus/8d962507007357d6fbbcbdd1647faa389a9aed6d
[69] http://git.kernel.org/linus/084bd29810a5689e423d2f085255a3200a03a06e
[70] http://git.kernel.org/linus/af07484863e0c20796081e57093886c22dc16705
[71] http://git.kernel.org/linus/45ae7cff3684ab45f57fc13fc242c8546536a84e
[72] 
[73] https://www.heise.de/meldung/Mesa-3D-9-2-mit-AMDs-UVD-Treiber-freigegeben-1942975.html
[74] 
[75] http://www.heise.de/glossar/entry/Entwicklungszyklus-des-Linux-Kernels-397915.html
[76] http://www.heise.de/glossar/entry/Hauptentwicklungslinie-397933.html
[77] http://cgit.freedesktop.org/~airlied/linux/commit/?id=5addcf0a5f0fadceba6bd562d0616a1c5d4c1a4d
[78] http://cgit.freedesktop.org/~airlied/linux/commit/?id=5addcf0a5f0fadceba6bd562d0616a1c5d4c1a4d
[79] https://dvdhrm.wordpress.com/2013/09/01/splitting-drm-and-kms-device-nodes/
[80] http://thread.gmane.org/gmane.linux.scsi/84103/
[81] http://cgit.freedesktop.org/~airlied/linux/commit/?id=e906d7bdd3b63ffac8b91f2f05c450775de95ef6
[82] https://www.heise.de/meldung/Mesa-3D-9-2-mit-AMDs-UVD-Treiber-freigegeben-1942975.html
[83] http://thread.gmane.org/gmane.linux.drivers.driver-project.devel/40308
[84] http://wireless.kernel.org/en/users/Drivers/rtl819x
[85] http://thread.gmane.org/gmane.linux.kernel/1488342/
[86] https://www.heise.de/meldung/Linus-Torvalds-spricht-auf-der-LinuxCon-und-CloudOpen-Europe-1938539.html
[87] 
[88] https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-3-4-1572878.html
[89] https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-3-5-1636890.html
[90] https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-3-6-1714142.html
[91] https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-3-7-1759317.html
[92] https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-3-8-1804113.html
[93] https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-3-9-1844759.html
[94] https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-3-10-1898006.html
[95] https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-3-11-1944715.html
[96] http://www.kernel.org/pub/linux/kernel/v3.0/
[97] http://www.kernel.org/mirrors/
[98] mailto:thl%40ct.de