zurück zum Artikel

Die Neuerungen von Linux 3.12

Trends & News | Kernel-Log

Optimus-Notebooks und einige Grafikkerne von AMD und Intel verbrauchen mit Linux 3.12 weniger Strom. Btrfs beherrscht jetzt Daten-Deduplikation; neue Locking-Techniken versprechen bessere Performance. Linux arbeitet nun auch als SYN-Proxy und unterstützt 40-Gigabit-Ethernet-Chips von Intel.

Die Neuerungen von Linux 3.12

Linus Torvalds hat den Linux-Kernel 3.12 freigegeben [1]. Wie schon bei 3.11 haben die Kernel-Entwickler lediglich neun Wochen zur Entwicklung des "One Giant Leap for Frogkind [2]" genannten [3] Kernels benötigt. Er bringt dennoch reichlich Änderungen, die Desktop-PCs und Notebooks ebenso betreffen wie Server oder Embedded-Systeme.

Bei vielen modernen Notebooks mit zwei Grafikkernen wird Linux den Zweit-Grafikchip automatisch zu- und wegschalten können (u. a. 1 [5], 2 [6]). Das ist insbesondere für Notebooks mit Nvidias Optimus [7] interessant, die neben der Prozessor-Grafik eine GeForce-GPU enthalten. Letztere ist in der Standard-Konfiguration aktueller Distributionen meist aktiv, obwohl sie nichts zur Bildschirmdarstellung beiträgt; der Grafikchip nimmt in diesem Zustand allerdings zirka 5 Watt Leistung auf und verkürzt die Akku-Laufzeit so merklich.

Im Detail

Bereits in den vergangenen Wochen hat das Kernel-Log [8] in der Serie "Was 3.12 bringt" detailliert über die Änderungen von Linux 3.12 berichtet:

  1. Dateisysteme & Storage [9]
  2. Netzwerk [10]
  3. Infrastruktur [11]
  4. Treiber [12]

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

Intels Grafiktreiber nutzt jetzt das Embedded-DRAM, das Core-i-Prozessoren mit dem Grafikkern Iris Pro 5200 enthalten (u. a. 1 [13], 2 [14]). Dadurch liefern solche CPUs mehr 3D-Performance als andere Prozessoren der Haswell-Generation – etwa die Core-i-Prozessoren mit Intels HD Graphic 4400 oder 4600.

Der Treiber für Radeon-GPUs beherrscht die Stromspartechniken DPM (Dynamic Power Management) und ASPM (Active State Power Management) jetzt auch bei der Radeon HD 7790 und einigen 8000er-Modellen (u. a. 1 [15], 2 [16], 3 [17], 4 [18]). Wie bei Linux 3.11, das Unterstützung für diese Stromspartechniken gebracht hat [19], muss man den experimentellen DPM-Support über den Kernel-Parameter "radeon.dpm=1" manuell einschalten.

Neu dabei ist ein Grafiktreiber für die Adreno-GPUs der Reihen a2xx und a3xx (u. a. 1 [20], 2 [21]). Sie stammen von Qualcomm und stecken in verschiedenen ARM-Prozessoren der Snapdragon-Serie – unter anderem im HP TouchPad und in Googles Nexus 4.

Btrfs, das weiterhin als experimentell gilt, beherrscht jetzt [23] Out-of-Band Deduplication. Durch diese Technik [24] können Userspace-Programme den Kernel anweisen, identische Speicherbereiche eines Dateisystems zusammenzulegen, um Speicherplatz zu sparen.

Ext4 soll durch einige Umbauten am Extent-Cache sparsamer mit dem Arbeitsspeicher umgehen (1 [25], 2 [26]). Ferner [27] können Ext3 [28] und Ext4 [29] ein extern abgelegtes Dateisystem-Journal nun über eine Pfadangabe finden, die eine Mount-Option spezifiziert. Das ist für Systeme interessant, bei denen sich die Datenträgerbezeichnungen im /dev-Verzeichnis immer mal wieder ändern.

Das XFS-Dateisystem unterstützt nun User Namespaces [30], die unter anderem für Container-Virtualisierung und Sandboxing [31] interessant sind. XFS soll Dateien auf Datenträgern mit sehr vielen Dateisystemeinträgen jetzt erheblich schneller finden können (1 [32], 2 [33]).

Der Firewall-Code von Linux 3.12 kann als SYN-Proxy [35] konfiguriert werden, der die Auswirkungen von SYN-Flooding-Attacken [36] reduziert (u. a. 1 [37], 2 [38]). Typischerweise arbeitet ein SYN-Proxy als vorgeschalteter Server [39], der ausschließlich die SYN-Anfragen eingehender Verbindungen beantwortet; an den eigentlichen Server reicht der Proxy nur diejenigen Anfragen weiter, bei denen der Client ein ACK-Paket zurück liefert und so ernsthaftes Interesse bekundet.

Der Kernel bringt einen Treiber für die noch nicht erhältlichen XL710-LAN-Chips von Intel mit, die offenbar 40-Gigabit-Ethernet (40GbE) beherrschen (u. a. 1 [40], 2 [41], 3 [42]). In den Staging-Bereich für unreifen Code wurde ein Treiber für den USB-WLAN-Chip RTL8188EU aufgenommen, den unter anderem TP-Link beim TL-WN725N einsetzt (u. a. 1 [43], 2 [44]).

Der Linux-Kernel 3.12 soll Thunderbolt bei Systemen [46] unterstützen, die das Betriebssystem via ACPI informieren, wenn Thunderbolt-Hardware angesteckt oder abgezogen wird. Macs gehen allerdings anders vor [47], daher wird es dort weiterhin Schwierigkeiten [48] beim Einsatz von Thunderbolt unter Linux geben. Das Input-Subsystem bringt jetzt einen Treiber für die "Slidebar" [49] mit, die einige IdeaPad-Notebook von Lenovo enthalten; zudem haben die Entwickler die Unterstützung für Multitouch-Hardware verbessert [50], die für Windows 8 ausgelegt ist (u. a. 1 [51], 2 [52]).

Die Neuerungen von Linux 3.12

Über den neuen Locking-Mechanismus Lockref [54] (Locked reference count) kann der Kernel-Code einen normalerweise per Spinlock gesicherten Referenz-Zähler oft direkt aktualisieren [55], statt warten zu müssen, dass der Spinlock greift. Das Virtual File System (VFS), das Basis-Funktionen für Dateisysteme stellt, nutzt Lockref bei 3.12 [56] bereits an einigen Stellen, was Overhead vermeiden und die Performance steigern soll (1 [57], 2 [58], 3 [59]).

Die Kernel-Entwickler haben die Formeln angepasst, mit denen der bei vielen Distributionen standardmäßig verwendete Ondemand-Governor des Cpufreq-Subsystem entscheidet, auf welcher Geschwindigkeitsstufe der Prozessor läuft. Laut Messungen des zuständigen Entwicklers [61] soll das nicht nur die Performance manchmal ein klein wenig verbessern, sondern gelegentlich auch den Energieverbrauch leicht reduzieren, weil zu häufige Wechsel zwischen niedrigen und hohen Taktfrequenzen vermieden werden.

Der KVM- und Xen-Code von Linux 3.12 kann nun Paravirtual Ticketlocks [62] nutzen; das soll den Overhead beim Locking reduzieren und so die Performance beim Virtualisieren steigern (u. a. 1 [63], 2 [64], 3 [65], 4 [66]). KVM kann Intels Extended Page Tables (EPT) [67] nun auch bei Gastsystemen nutzen, die in einem anderen Gast gestartet wurden (u. a. 1 [68], 2 [69]); das verspricht schnelleres Arbeiten bei dieser "Nested Virtualization".

Durch die Eignung als SYN-Proxy wird Linux für Aufgaben interessant, die bislang oft BSD-Systeme erledigen. Wer Linux auf Desktop-PCs oder Notebooks einsetzt, kann sich über die besseren Grafiktreiber freuen; insbesondere das automatische Deaktivieren der GeForce-Chips in Optimus-Notebooks war mehr als überfällig.

Das Btrfs-Dateisystem macht durch die Daten-Deduplikation wieder einen kleinen Schritt vorwärts; zusammen mit dem RAID-5-Support in 3.9 [71] nähert es sich langsam dem Funktionsumfang, den sich die Entwickler von Anfang an vorgenommen hatten. Dadurch steigen die Chancen, dass Btrfs im nächsten Jahr endlich den experimentellen Status ablegt.

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

Die Neuerungen von Linux 3.12

Zur Aufnahme vorgesehen [75] sind unter anderem Nftables [76], die mittelfristig den Netfilter-Code im Kernel ersetzen sollen [77], mit dem Linux-Firewalls bislang Pakete filtern. Einfließen soll auch [78] der neue "Multi-queue Block IO Queueing Mechanism [79]", durch den PCIe-SSDs, NVMe-Devices und andere schnelle Datenträger mehr Leistung erzielen sollen.

Auf dem Plan für 3.13 steht auch das von einem Intel-Entwickler vorangetriebene Power Capping Framework [80], mit dem sich der Stromverbrauch moderner Systeme besser regulieren lassen soll. Zur Aufnahme bereit liegt auch ein Treiber [81] für die PCIe-Steckkarten mit dem 2012 vorgestellten Co-Prozessoren [82] Xeon Phi; diese laufen bei Intel unter dem Oberbegriff "Many Integrated Core (MIC) [83]". In den Kernel einziehen sollen ferner Treiber für die PCIe-SSD STEC S1120 von sTec [84] und das Synthetic Keyboard [85]; letzteres soll für Gastsysteme unter zukünftiger Generation der Hyper-V-Firmware von Microsoft erforderlich sein, weil sie eine Reihe von Legacy-Devices nicht mehr emulieren.

Die Phase zur Aufnahme der größten Änderungen beginnt diesmal nicht sofort nach der Freigabe von 3.12, sondern erst in einer Woche, weil Torvalds auf Reisen ist; das Merge Window soll daher nicht wie gewohnt zwei, sondern drei Wochen lang sein, wie Torvalds in der Freigabe-Mail erklärte [86]. Er denke auch darüber nach, bei der Versionsnummer mittelfristig auf 4.0 zu springen; als Zeitrahmen erwägt er "in einem Jahr" beziehungsweise "nach 3.19". Torvalds überlegt zudem, für diese Kernel-Version lediglich Fehlerkorrekturen anzunehmen. Auf der LinuxCon Europe hatte er einen Vorschlag für ein "Bug-Fixes-Only-Release" kürzlich noch zurückgewiesen [87], wie er selbst erwähnt – er überlege allerdings mittlerweile, ob es nicht doch eine gute Idee sei.

Sofern Torvalds und seine Mitstreiter trotz Reise, Weihnachtszeit und Neujahr im üblichen Tempo arbeiten, dürfte Linux 3.13 in den ersten beiden Januarwochen erscheinen. heise open 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 [89] 38566 15383860
(14370856)
63 Tage 10899 11086 files changed,
576156 insertions(+),
358369 deletions(-)
3.5 [90] 39096 15596378
(14556354)
62 Tage 10957 9631 files changed,
623277 insertions(+),
410757 deletions(-)
3.6 [91] 39733 15868036
(14811965)
71 Tage 10247 8296 files changed,
527247 insertions(+),
255597 deletions(-)
3.7 [92] 40905 16191690
(15108939)
71 Tage 11990 15886 files changed,
1567749 insertions(+),
1244085 deletions(-)
3.8 [93] 41520 16416874
(15310436)
70 Tage 12394 11701 files changed,
577188 insertions(+),
352003 deletions(-)
3.9 [94] 42423 16686879
(15563152)
69 Tage 11910 11120 files changed,
608436 insertions(+),
338439 deletions(-)
3.10 [95] 43016 16955489
(15803499)

63 Tage 13637
10471 files changed,
660572 insertions(+),
391966 deletions(-)
3.11 [96] 44002 17403279
(16225814)
63 Tage 10893 9692 files changed,
788982 insertions(+),
341196 deletions(-)
3.12 44586
17726872
(16529850)
62 Tage 10927 8636files changed,
587004 insertions(+),
263408 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 [97] bereit; bereits kurz nach der Veröffentlichung liefern auch viele Spiegelserver [98] 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

Einige Hinweise zur Einrichtung eines neuen Kernels finden Sie im Artikel "Linux-Kernel maßgeschneidert [99]", der die Einrichtung eines Kernels mit Hilfe des Make-Targets "localmodconfig" beschreibt.

(thl [100])


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

Links in diesem Artikel:
[1] http://article.gmane.org/gmane.linux.kernel/1589267
[2] http://www.spiegel.de/wissenschaft/weltall/frosch-im-sog-der-sonde-ladee-a-922309.html
[3] https://plus.google.com/u/0/+LinusTorvalds/posts/9Gjr58KUJcH
[4] 
[5] http://git.kernel.org/linus/0d69704ae348c03bc216b01e32a0e9a2372be419
[6] http://git.kernel.org/linus/5addcf0a5f0fadceba6bd562d0616a1c5d4c1a4d
[7] http://www.nvidia.com/object/optimus_technology.html
[8] http://www.heise.de/glossar/entry/Kernel-Log-397909.html
[9] https://www.heise.de/ct/artikel/Kernel-Log-Was-3-12-bringt-1-Dateisysteme-Storage-1973671.html
[10] https://www.heise.de/ct/artikel/Kernel-Log-Was-3-12-bringt-2-Netzwerk-1977964.html
[11] https://www.heise.de/ct/artikel/Kernel-Log-Was-3-12-bringt-3-Infrastruktur-1980667.html
[12] https://www.heise.de/ct/artikel/Kernel-Log-Was-3-12-bringt-4-Treiber-1980885.html
[13] http://git.kernel.org/linus/4d15c145a6234d999c0452eec0d275c1fbf0688c
[14] http://git.kernel.org/linus/651d794fae9b79237aae1c97f8a9d9f3817bd31d
[15] http://git.kernel.org/linus/22c775ce80ed921fe9490f3cc2ca66dcda44f572
[16] http://git.kernel.org/linus/cc8dbbb4f62aa53e604e7c61dedc03ee4e8dfed4
[17] http://git.kernel.org/linus/41a524abff2630dce0f9c38eb7340fbf2dc5bf27
[18] http://git.kernel.org/linus/7235711a43b6839f5759327d003fa334c4a703f2
[19] https://www.heise.de/ct/artikel/Kernel-Log-Was-3-11-bringt-4-Grafiktreiber-1944383.html
[20] http://git.kernel.org/linus/c8afe684c95cd17cf4f273d81af369a0fdfa5a74
[21] http://git.kernel.org/linus/7198e6b03155f6dadecadba004eb83b81a6ffe4c
[22] 
[23] http://git.kernel.org/linus/416161db9b63e353a8fb79d1369779175102fca1
[24] http://en.wikipedia.org/wiki/Data_deduplication
[25] http://git.kernel.org/linus/7869a4a6c5caa7b2e5c41ccaf46eb3371f88eea7
[26] http://git.kernel.org/linus/107a7bd31ac003e42c0f966aa8e5b26947de6024
[27] http://git.kernel.org/linus/ae67d9a888a000a9df43de10eb9950075e93508c
[28] http://git.kernel.org/linus/cf7eff4666629de006c5ed78de79e40f483c3b06
[29] http://git.kernel.org/linus/ad4eec613536dc7e5ea0c6e59849e6edca634d8b
[30] http://git.kernel.org/linus/d6970d4b726cea6d7a9bc4120814f95c09571fc3
[31] https://www.heise.de/ct/artikel/Kernel-Log-Was-3-8-bringt-2-Infrastruktur-1800418.html
[32] http://git.kernel.org/linus/1c55cece084aa4c9a3fa34ed4eecbdf18afbf05d
[33] http://git.kernel.org/linus/0cb97766f2928579f1029ea7b28ae946cdd6fbe1
[34] 
[35] https://www.heise.de/security/artikel/Tatort-Internet-Nach-uns-die-SYN-Flut-1285780.html?artikelseite=2
[36] https://www.heise.de/security/artikel/Tatort-Internet-Nach-uns-die-SYN-Flut-1285780.html
[37] http://git.kernel.org/linus/48b1de4c110a7afa4b85862f6c75af817db26fad
[38] http://git.kernel.org/linus/4ad362282cb45bbc831a182e45637da8c5bd7aa1
[39] http://thread.gmane.org/gmane.linux.network/278834
[40] http://git.kernel.org/linus/41c445ff0f482bb6e6b72dcee9e598e20575f743
[41] http://git.kernel.org/linus/56a62fc8689509fb86bcb20768d575b81d9c311e
[42] http://git.kernel.org/linus/1bff652941c4d94f97610c9a30473aad6f5b2fff
[43] http://git.kernel.org/linus/b63c05394f3fe9ae547e1fa9df30f1ba0bcdabb4
[44] http://git.kernel.org/linus/6ddfa35a4a98d28f9506c1bb25c82927dff9eff2
[45] 
[46] http://git.kernel.org/linus/40031da445fb4d269af9c7c445b2adf674f171e7
[47] http://thread.gmane.org/gmane.linux.kernel/1579112/focus%3D26122
[48] http://www.kroah.com/log/linux/hardware.html
[49] http://git.kernel.org/linus/1ea4c16120f529d811de0a35db6b252352268e95
[50] http://git.kernel.org/linus/22e04f6b4b04a8afe9af9239224591d06ba3b24d
[51] http://git.kernel.org/linus/f961bd3516e4f699bbacff5d7f5247d6d87c59f0
[52] http://git.kernel.org/linus/595e9276ce68791317484ec7f0f9f2e0457c3b34
[53] 
[54] http://git.kernel.org/linus/bc08b449ee14ace4d869adaa1bb35a44ce68d775
[55] http://lwn.net/Articles/565734/
[56] http://git.kernel.org/linus/fc6d0b037678f50014ef409c92c5bedc01208fcd
[57] http://git.kernel.org/linus/232d2d60aa5469bb097f55728f65146bd49c1d25
[58] http://git.kernel.org/linus/15570086b590a69d59183b08a7770e316cca20a7
[59] http://git.kernel.org/linus/0d98439ea3c6ffb2af931f6de4480e744634e2c5
[60] 
[61] http://git.kernel.org/linus/dfa5bb622555d9da0df21b50f46ebdeef390041b
[62] http://thread.gmane.org/gmane.linux.kernel.virtualization/20718
[63] http://git.kernel.org/linus/92b75202e5e8790905f9441ccaea2456cc4621a5
[64] http://git.kernel.org/linus/6aef266c6e17b798a1740cf70cd34f90664740b3
[65] http://git.kernel.org/linus/80bd58fef495d000a02fc5b55ca76d423400e748
[66] http://git.kernel.org/linus/816434ec4a674fcdb3c2221a6dffdc8f34020550
[67] http://en.wikipedia.org/wiki/Second_Level_Address_Translation
[68] http://git.kernel.org/linus/bfd0a56b90005f8c8a004baf407ad90045c2b11e
[69] http://git.kernel.org/linus/25d92081ae2ff9858fa733621ef8e91d30fec9d0
[70] 
[71] https://www.heise.de/ct/artikel/Kernel-Log-Was-3-9-bringt-1-Dateisysteme-und-Storage-1829979.html
[72] 
[73] http://www.heise.de/glossar/entry/Entwicklungszyklus-des-Linux-Kernels-397915.html
[74] http://www.heise.de/glossar/entry/Hauptentwicklungslinie-397933.html
[75] https://www.heise.de/meldung/Neuer-Firewall-Code-fuer-den-Linux-Kernel-1982608.html
[76] http://lwn.net/Articles/564095/
[77] http://netfilter.org/projects/nftables/
[78] http://thread.gmane.org/gmane.linux.kernel/1584415/
[79] http://thread.gmane.org/gmane.linux.kernel/1584415/focus%3D1584420
[80] http://thread.gmane.org/gmane.linux.power-management.general/39617/
[81] http://thread.gmane.org/gmane.linux.kernel.virtualization/20917/focus%3D20924
[82] https://www.heise.de/meldung/SC12-Intel-bringt-Coprozessor-Xeon-Phi-offiziell-heraus-1747942.html
[83] http://software.intel.com/en-us/mic-developer
[84] http://thread.gmane.org/gmane.linux.kernel/1553660/
[85] http://thread.gmane.org/gmane.linux.kernel.input/31980/
[86] http://article.gmane.org/gmane.linux.kernel/1589267
[87] https://www.heise.de/ct/artikel/LinuxCon-Europe-Torvalds-wuenscht-sich-Desktop-Erfolg-2035370.html
[88] 
[89] https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-3-4-1572878.html
[90] https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-3-5-1636890.html
[91] https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-3-6-1714142.html
[92] https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-3-7-1759317.html
[93] https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-3-8-1804113.html
[94] https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-3-9-1844759.html
[95] https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-3-10-1898006.html
[96] https://www.heise.de/ct/artikel/Die-Neuerungen-von-Linux-3-11-1944715.html
[97] http://www.kernel.org/pub/linux/kernel/v3.0/
[98] http://www.kernel.org/mirrors/
[99] https://www.heise.de/ct/artikel/Linux-Kernel-massgeschneidert-1402386.html
[100] mailto:thl%40ct.de