zurück zum Artikel

Die Neuerungen von Linux 4.5

| Thorsten Leemhuis

Einige aktuelle Radeon-Grafikkarten können mit dem neuen Linux-Kernel deutlich mehr 3D-Performance liefern. Die neue Version unterstützt den Raspberry Pi besser und schützt vor Hardware-Defekten durch unbedachte Löschbefehle. Eine ganze Latte neuer und weiterentwickelter Treiber verbessert die Hardware-Unterstützung.

Linus Torvalds hat Linux 4.5 veröffentlicht. Diese Kernel-Version kann den Radeon-R9-Grafikkarten 285, 380, Nano und Fury deutlich mehr 3D-Performance entlocken. Das ist der Unterstützung für AMDs "PowerPlay"-Technik zu verdanken, denn durch sie kann der Amdgpu-Treiber diese Grafikkarten nun in schnelle oder sparsame Betriebsmodi schalten (u. a. 1 [1], 2 [2], 3 [3], 4 [4], 5 [5], 6 [6], 7 [7]).

Bislang können diese und anderen Grafikkarten mit "Volcanic Islands"-GPUs ihr Leistungspotenzial nicht ausspielen, weil sie mit einem niedrigen bis mittleren Standardtakt laufen, den die Firmware beim Booten setzt. Das wird aber auch bei 4.5 standardmäßig so bleiben, denn der PowerPlay-Support ist noch nicht ausgereift und daher in der Voreinstellung lahmgelegt. Sie müssen ihn daher beim Bau des Kernels über die Option CONFIG_DRM_AMD_POWERPLAY aktivieren und im Betrieb explizit freigeben, indem Sie den Kernel mit dem Parameter amdgpu.powerplay=1 starten. Die PowerPlay-Unterstützung soll so erste Feldtests absolvieren, bevor der Kernel sie dann irgendwann automatisch aktiviert. [Update, 14.03.16, 16:30]Der Boot-Parameter ist nur bei den Carzzizo- und Stoney-Prozessoren von AMD nötig; bei den Tonga- und Fiji-Chips, die auf den eingangs erwähnten Grafikkarten sitzen, aktiviert der Treiber die PowerPlay-Unterstützung automatisch [8].[/Update]

Zusammen mit aktuellen Mesa-Versionen lässt sich jetzt die 3D-Beschleunigung der Grafikprozessoren in den verschiedenen Ausführungen des Raspberry Pi nutzen. Das ist der 3D-Unterstützung im Kernel-Grafiktreiber vc4 zu verdanken, der zu den großen Neuerungen von Linux 4.4 [9] zählte. Einen OpenGL-Treiber namens vc4 zur Verwendung der 3D-Beschleunigung bringt Mesa ab der Version 11.1 [10] mit. In aktuellen Versionen der Linux-Distribution Raspbian [11] lässt sich der neue Grafikstack bereits testen. Die bislang auf dem Raspi eingesetzten Grafiktreiber haben die meisten Aufgaben an einen Grafiktreiber in der proprietären Firmware weitergereicht.

Linux 4.5 soll zudem alles mitbringen, um auf dem Raspberry Pi 2 starten zu können (u.a. 1 [12], 2 [13] 3 [14], 4 [15]). Der Out-of-the-Box-Support für den beliebten Kleinstcomputer soll aber noch nicht richtig rund laufen – Besserung ist für 4.6 versprochen. Mindestens bis dahin fährt man daher besser mit den Linux-Quellen der Raspberry Pi Foundation [16], die einige Hardware-spezifische Änderungen am Linux-Code enthalten.

Linux 4.5 schützt einige Dateien mit Efi-Variablen vor unachtsamen Entfernen, um Hardware-Defekte beim Löschen aller Dateien mit rm -rf / zu verhindern. Dieses Kommando kann bislang einige per UEFI bootende PCs und Notebooks zum Reparaturfall machen, weil es alle im nichtflüchtigen Speicher (NVRAM) des Mainboards abgelegten EFI-Variablen löscht. Eine Firmware sollte solche Situationen eigentlich handhaben können; manche schafft das allerdings nicht und kann das System dann nicht mehr starten.

Dem Kernel-Entwickler Matthew Garrett zufolge lässt sich das Problem auch unter Windows auslösen, wo man alle UEFI-Variablen mit lediglich zwanzig Zeilen Code entfernen könne. Unter Linux passiert das beim erwähnten rm -rf /, weil der Befehl bis in /sys/firmware/efi/efivars/ vordringt; dort hängen Linux-Distributionen das virtuelle Dateisystem Efivarfs ein, über das der Root-Anwender EFI-Variablen anlegen, modifizieren oder löschen kann. Linux 4.5 erschwert Letzteres, denn es verleiht Dateien mit unbekannten EFI-Variablen das Attribut "Immutable", damit sie das rm -rf / unangetastet lässt.

Diesen Befehl sollte man aber auch in Zukunft besser nie absetzen, denn er kann nach wie vor die Boot-Einträge und -Loader aller installierten Betriebssysteme entfernen. Weitere Details hierzu liefert die heise open-Meldung 'Linux: "rm -rf /" soll keine UEFI-Systeme mehr kaputt machen [18]'.

Durch Änderungen am TCP-Code können Anwendungen jetzt zeitnah auf einen Wechsel der Internet-Anbindung reagieren. Dadurch sollen beispielsweise Notebooks oder Smartphones einen Video-Stream ungestört wiedergegeben können, wenn sie die Reichweite des WLANs verlassen und auf eine Mobilfunk-Datenverbindung umschalten.

Bislang bemerkten Anwendungen einen Wechsel der Internet-Anbindung manchmal erst nach Minuten, wenn die bestehenden TCP-Verbindungen in einen Timeout laufen. Das können Admins und Programme wie der NetworkManager mit der neuen Infrastruktur jetzt vermeiden, denn über die neue SOCK_DESTROY-Operation können sie den Kernel jetzt zum Schließen aller offenen TCP-Sockets auffordern (1 [19], 2 [20], 3 [21]). Der Kernel beendet diese mit dem Fehlercode ECONNABORTED; Video-Streaming-Anwendungen erfahren so vom Abschuss und können im Idealfall eine neue Verbindung aufbauen, bevor ihr Puffer leer läuft.

Die Idee ist nicht neu, der Fehlercode stammt von FreeBSD. Zudem bietet der Android-Kernel schon länger eine solche Abschussfunktion. Deren Entwickler haben den Code jetzt so verbessert, dass die Kernel-Entwickler ihn akzeptabel fanden. Weitere Details zum Ganzen liefert ein Artikel bei LWN.net [22].

Programme wie cp können das Kopieren von Daten jetzt an den Kernel delegieren. Das kann den Kopiervorgang erheblich beschleunigen – ob das der Fall ist, hängt vorerst vom eingesetzten Dateisystem ab.

Btrfs etwa kann selbst große Datenmengen in Sekundenbruchteilen kopieren. Das gelingt, weil es lediglich eine neue Referenz auf die Daten zu erzeugen braucht. Das Vervielfältigen der Nutzdaten kann sich Btrfs sparen, weil es mit Copy-on-Write (COW) arbeitet; eine spätere Änderung an Original-Datei oder Kopie wirkt sich daher auf das jeweils andere nicht aus. Btrfs bietet daher schon länger eine von cp --reflink direkt unterstützte Funktion, um beim Kopiervorgang ein Duplizieren der Daten zu vermeiden.

Aus der dazu verwendeten Btrfs-Funktion haben die Kernel-Programmierer eine generische Schnittstelle entwickelt, die sich universell über das Virtual File System (VFS) nutzen lässt ( 1 [23], 2 [24], 3 [25]). Der NFS-Server des Kernels [26] unterstützt sie bereits. Gerade für Netzwerkdateisysteme ist diese Funktion interessant, denn dadurch können sie Daten direkt auf dem Server kopieren, statt sie zum Client und wieder zurück übertragen zu müssen. Details dazu liefert ein Artikel bei LWN.net [27].

Die neue Funktion soll auch ein Delegieren des Kopiervorgangs an Storage-Controller ermöglichen, die Daten selbst duplizieren können; das entlastet Prozessor und Hauptspeicher, weil die vervielfältigten Daten den Controller gar nicht verlassen müssen.

Die Btrfs-Entwickler gehen mit 4.5 ein Problem an, das bei mehreren Terabyte großen Dateisystemen hin und wieder zu störenden Wartezeiten führt. Diese Latenzen entstehen durch einen Cache, in dem Btrfs die Lage ungenutzter Speicherbereiche verzeichnet. Ein komplett neuer Cache [28] hat das Problem nicht und soll darüber hinaus auch noch schneller arbeiten. Er ist aber optional, denn er gilt noch nicht als produktionsreif; das wollen die Entwickler in den kommenden Monaten ändern [29].

Das Ext4-Dateisystem unterstützt neben User- und Gruppen-Quotas nun auch Projekt-Quotas [30]. Mit dieser Funktion lässt sich die Menge der Daten begrenzen, die einem "Projekt" zugeordnete Dateien belegen dürfen. Das Feature lässt sich nutzen, um einzelne Verzeichnishierarchien zu limitieren; alternativ kann man darüber auch den Platz begrenzen, den über mehrere Verzeichnisse verstreute Dateien belegen dürfen.

Hintergründe zur der nur spärlich dokumentierten Funktion finden Sie in zwei der Mail-Diskussionen, in der die Entwickler ihre Lösung zur Begutachtung vorgelegt haben (1 [31], 2 [32]). Das Ganze funktioniert offenbar ähnlich wie die Projekt-Quotas von XFS [33]. Das Interface zum Setzen und Abfragen [34] der Projekt-Attribute hat Ext4 sogar von XFS übernommen [35], daher ist es kompatibel. Ob eine Datei Projekt-Quotas unterliegt, wird in ihrer Inode gespeichert.

Das Overlay-Dateisystem kennt jetzt die Mount-Option [36] default_permissions, mit der sich Verzeichnisse über per NFS angesprochene Freigaben [37] schichten lassen.

Die Lseek-Implementation von Fuse implementiert nun auch SEEK_HOLE und SEEK_DATA [38]; das verspricht die Performance beim Zugriff auf Images virtueller Maschinen zu steigern, die in einem per Fuse eingehängten Dateisystem (etwa GlusterFS) liegen.

XFS prüft jetzt die Checksummen der im Dateisystem-Log [39] gespeicherten Daten, damit es beim Recovery nach einem Absturz keine beschädigten Metadaten ins Dateisystem schreibt.

Der für moderne Grafikprozessoren von Intel zuständige Treiber i915 bietet nun eine Funktion [41], um die Bildausgabe mit der eines zuschaltbaren Grafikchips zu synchronisieren, der fertige Bilddaten per DMA-BUF zuliefert; das ist für die störungsfreie Bildwiedergabe bei modernen Optimus-Notbooks wichtig, denn sonst kann es bei der Ausgabe der vom zuschaltbaren GeForce-Chip gerenderten Bildern zu Tearing kommen. Passende Erweiterungen, um diese Funktion mit dem X-Server von X.org zu nutzen, sind noch in Arbeit [42].

Der Grafiktreiber unterstützt jetzt auch die in manchen Skylake-Prozessoren verbaute GT4-GPU [43]. Das ist die leistungsstärkste Ausbaustufe der Skylake-GPU, die Intel unter Produktnamen wie Iris Pro 580 oder P580 vertreibt. Der Grafikprozessor steckt beispielsweise in den kürzlich vorgestellten Core-i7-Prozessoren 6770HQ, 6870HQ und 6970HQ oder dem Xeon E3-1575M.

In den Kernel ist zudem erster Code zur Unterstützung der GPU in Kaby-Lake [44]-Prozessoren eingezogen (1 [45], 2 [46]); dieser Nachfolger der Skylake-Baureihe soll im zweiten Halbjahr erscheinen und wahrscheinlich in Core-i-Prozessoren der 7000er-Reihe zum Einsatz kommen. Auch die Audio-Treiber haben schon Unterstützung für Kaby Lake [47] erhalten.

Einige weitere Änderungen listet der Betreuer des i915-Treibers in einem Blog-Eintrag [48].

Der Kernel-Treiber nouveau kann bei Tesla-, Fermi- und Kepler-GPUs [50] jetzt die Geschwindigkeit der PCIe-Verbindung ändern, über die Haupt- und Grafikprozessor miteinander kommunizieren (1 [51], 2 [52], 3 [53]); das kann die Grafikperformance steigern, wenn die Geschwindigkeit dieser Verbindung einen Flaschenhals bildet. Tesla, Fermi-, Kepler-GPUs stecken auf nahezu allen in den letzten Jahren gefertigten Nvidia-Chips, wenn man von der GeForce 750 und den Modellen der GeForce-900er-Reihe absieht, auf denen Maxwell-GPUs stecken.

Beim Einsatz des Grafiktreibers radeon, der bei der 2D-, 3D- und Video-Beschleunigung vieler Radeon-GPUs involviert ist, muss man jetzt auch KMS (Kernel-based mode-setting) nutzen: Die Kernel-Entwickler haben die Unterstützung für UMS (Userspace mode-setting) entfernt [54], mit dem sich der X-Server-Treiber radeon bis vor einigen Jahren selbst um die Bildschirmkonfiguration kümmern konnte. Dieser Schritt dürfte allenfalls auf ziemlich alten Linux-Distributionen zu Problemen führen: KMS wird schon seit vielen Jahren standardmäßig verwendet und der Radeon-Treiber für den X.org-X-Server beherrscht bereits seit drei Jahren kein UMS mehr.

Neu dabei ist der Grafiktreiber etnaviv [55]. Er spricht ­Vivante-Grafikkerne an, die unter anderem in Freescale-Prozessoren der Serie i.MX6 stecken, die häufig im Industrie- und Automotive-Bereich anzutreffen sind. Passende 2D- und 3D-Treiber zum Betrieb von X-Server, Wayland und OpenGL-Anwendungen befinden sich in Entwicklung. Der so entstehende Treiberstack soll flexibler und besser wartbar werden als der proprietäre Treiber des Herstellers, der nur zu alten Kernel-Versionen passt.

Weitere Details zur Motivation finden sich in den Präsentationsfolien von Vorträgen, die einer der Hauptentwickler des Treibers im November auf der Embedded Linux Conference Europe (ELCE) [56] und im Januar auf der Fosdem [57] gehalten hat. Vom ELCE-Vortrag gibt es auch eine Video-Aufzeichnung, die von der Fosdem [58] ist bislang nicht online.

Empfohlener redaktioneller Inhalt

Mit Ihrer Zustimmmung wird hier ein externes YouTube-Video (Google Ireland Limited) geladen.

Ich bin damit einverstanden, dass mir externe Inhalte angezeigt werden. Damit können personenbezogene Daten an Drittplattformen (Google Ireland Limited) übermittelt werden. Mehr dazu in unserer Datenschutzerklärung [59].

Zahlreiche neue oder überarbeitete Treiber verbessern die Hardware-Unterstützung. So kann Linux jetzt mehr der WLAN-Module ansprechen, die Intel unter den Markennamen 3168 (1 [61], 2 [62]), 7265 [63], 8165 [64], 8265 [65] sowie 5165 und 9260 [66] vertreibt.

Neu ist ein Treiber für eine von Intel definierte Schnittstelle, die Notebook-Hersteller zur Handhabung der Funktionstasten einsetzen können. Dell nutzt diese Schnittstelle in der neuesten Ausführung des Dell XPS 13, daher kann derTreiber [67] intel_hid [68] dort jetzt den NetworkManager informieren, wenn der Nutzer die WLAN-Ein/Aus-Taste betätigt.

Linux 4.5 verbessert die Unterstützung [69] für die Force-Feedback-Funktion des Game-Controllers der Xbox One.

Manche Systeme wechseln jetzt schneller in und aus den Bereitschaftsmodus (ACPI S3, Suspend-to-RAM), denn der Kernel weckt bereits schlafen gelegte USB-Geräte dabei nicht mehr auf [70].

Einige Android-Entwickler haben auch Verbesserungen an der Adressverwürfelung mit ASLR (Address Space Layout Randomization) vorgenommen, die ein Ausnutzen von Sicherheitslücken erschweren. Die zuständigen Google-Entwickler rechnen im einem Kommentar zu den Änderungen [71] vor, Schadcode hätte die viel beachtete Stagefright-Lücke [72] von Android bislang in durchschnittlich 10 Minuten ausnutzen können; durch die Verbesserungen soll es auf typischen Smartphone-Prozessoren jetzt im Mittel 45 Stunden dauern. Der Angriff sei dadurch erheblich weniger praktikabel und werde von Anwendern leichter bemerkt. Weitere Details zu den Änderungen und den mit ihnen eingeführten Konfigurationsoptionen erläutert ein LWN.net-Artikel [73]

Bei knapp werdendem Arbeitsspeicher wird der Kernel Teile des Speicher von Anwendungen freigeben und anders nutzen können, sofern diese Speicherbereiche nur noch alloziert halten, um ihn später womöglich erneut zu nutzen. Windows und alle wichtigen BSD-Derivate unterstützen diese Funktion schon länger, für die Anwendungen den Speicher mit madvise(MADV_FREE) auszeichnen müssen. Laut Kommentar zur Änderung [74] hat Facebook einen ähnliche Linux-Erweiterung vor Jahren in seinen Rechenzentren getestet und dadurch den Durchsatz um fünf Prozent steigern können; wie viel das Ganze letztlich bringt, hängt stark von den jeweiligen Umgebungsbedingungen ab. Weitere Hintergründe zur Unterstützung von madvise(MADV_FREE) liefert der zweite Abschnitt eines LWN.net-Artikels [75].

Die Kernel-Entwickler haben weitere Schutzmaßnahmen integriert [77], um ein direktes Verändern des Arbeitsspeichers über das Device /dev/mem einzuschränken. Das ist schon länger limitiert; der neue Schutzmechanismus soll den Zugriff noch weiter einschränken, weil eine unbedarfte Nutzung leicht zum Verfälschen von Daten führen kann, die in persistenten Speichermodulen (NVDIMMs) liegen. Dabei zeigten sich aber Kompatibilitätsprobleme, daher wird der neue Schutzmechanismus nicht wie geplant standardmäßig eingebaut, sondern muss bei der Kernel-Konfiguration explizit aktiviert werden [78].

Der Kernel bietet jetzt eine grundlegend neue Infrastruktur [79] zur Steuerung des Ressourcenverbrauchs über Control Groups (Cgroups). Sie beseitigt Probleme und Inkonsistenzen, die Entwickler und Administratoren bislang plagen, wenn sie die Nutzung von Prozessorzeit, Arbeitsspeicher oder Storage- und Netzwerk-Ressourcen limitieren.

Die "Cgroups v2" lassen sich parallel mit der alten, jetzt "cgroup legacy" genannten Infrastruktur [80] nutzen. Das ist auch nötig, denn über die neue Cgroups-Infrastruktur lässt sich vorerst nur der Verbrauch von Arbeitsspeicher und Storage regeln. Die Limitierung der CPU-Zeit wurde nicht für 4.5 fertig und soll bald folgen. Systemd unterstützt die neue Infrastruktur bereits und versucht, lästige Details bei der Cgroup-Konfiguration vor Anwendern zu verbergen.

Die Gründe für das Redesign erläutert eine Datei [81], die nach drei Entwicklungsjahren mit der Fertigstellung der Cgroups v2 nun entfernt wurde. Weitere Hintergründe liefern die Dokumentation zu den renovierten Cgroups [82] und einige in den letzten drei Jahren erschienene LWN.net-Artikel [83].

Die "Multiplatform"-Kernel-Images, die auf verschiedensten ARM-Platformen booten können, starten jetzt auch auf vielen der älteren oder weniger gängigen Plattformen [85] mit ARMv6- oder ARMv7-SoC, für die man bislang individuelle Kernel-Images kompilieren musste. Das ist dem vor über vier Jahren gestarteten [86] "Multi-Platform"-Vorhaben zu verdanken, für das enorm viele Umbauten am Kernel vorgenommen wurden.

Nvidia hat Code beigesteuert [87], durch den der Kernel jetzt Nvidias ARM64-SoCs Tegra K1 (Codename: Tegra132) und Tegra X1 (Tegra210) sowie einige damit gebaute Plattformen unterstützt.

Dank UEFI-Stub-Support für ARM64-Kernel lassen sich diese jetzt ohne Bootmanager direkt aus der Firmware starten (u.a. 1 [88], 2 [89]).

Mit der Freigabe von Linux 4.5 [91] beginnt zugleich die Phase, in der Linus Torvalds das Gros der Änderungen für Linux 4.6 aufnimmt; dieses "Merge Window" beendet er typischerweise nach zwei Wochen, wenn er die erste Vorabversion der nächsten größeren Kernel-Überarbeitung veröffentlicht.

Zahlreiche neue Funktionen liegen zur Aufnahme in Linux 4.6 bereits bereit. Dazu gehört Kcov [92], das eine Infrastruktur stellt, um die Testreichweite von Fehler-Suchwerkzeugen wie Syzkaller [93] zu verbessern. Dabei handelt es sich um ein von Google entwickeltes Fuzzing-Testprogramm, mit dem die Entwickler in den vergangenen Monaten über 160 Fehler im Kernel-Code [94] finden konnten; darunter eine ganze Reihe von Bugs, die sich als Sicherheitslücken entpuppten und einen CVE-Bezeichner erhalten haben.

Sofern Torvalds und seine Mitstreiter im gewohnten Tempo arbeiten, sollte der Linux-Kernel 4.6 Mitte Mai erscheinen.

Die neue Linux-Version steht über Kernel.org zum Download [95] bereit. Hinweise zur Einrichtung eines eigenen Kernels finden Sie im heise open-Artikel "Linux-Kernel maßgeschneidert [96]"; er beschreibt den Einsatz von make localmodconfig, das weitgehend automatisch eine auf Ihr System zugeschnittene Kernel-Konfiguration erzeugt, mit der Sie eine neuen Kernel-Version in wenigen Minuten einrichten können.

Fedora und Rolling-Release-Distributionen wie Arch, Gentoo und OpenSuse Tumbleweed sollten die neue Kernel-Version in den nächsten Wochen als reguläres Update erhalten. Bei Releases von Ubuntu, OpenSuse Leap und vielen anderen Distributionen macht der Kernel normalerweise keine solchen Versionssprünge. Der Kernel des für die zweite Aprilhälfte angekündigten Ubuntu 16.04 wird aktuellen Planungen zufolge auf Linux 4.4 aufbauen.

Kernel-
Version
Anzahl
Dateien¹
Zeilen
Quelltext
(Ohne Doku)²
Entwick-
lungs-
zeitraum
Anzahl
Commits³
Diffstat⁴
Linux 3.19 [98] 48440 19130604
(17692109)
63 Tage 13652 10739 files changed,
483355 insertions(+),
346843 deletions(-)
Linux 4.0 [99] 48957
19312370
(17847304)
63 Tage
11306
9489 files changed,
 508686insertions(+),
 326917 deletions(-)
Linux 4.1 [100] 49457 19512485
(18004436)
70 Tage 12965 10094 files changed,
 453375 insertions(+),
 253259 deletions(-)
Linux 4.2 [101] 50795 20311717
(18755735)
70 Tage 14750 10926 files changed,
 1079245 insertions(+),
 280008 deletions(-)
Linux 4.3 [102] 51570 20621444
(19031051)
63 Tage 13282 10385 files changed,
 642760 insertions(+),
 333026 deletions(-)
Linux 4.4 [103] 52221 20862115
(19243827)
70 Tage 14082 10604 files changed,
 713754 insertions(+),
 470774 deletions(-)
Linux 4.5 52916 21154545
(19489725)
63 Tage 13173 11590 files changed,
 1146355 insertions(+),
 854286 deletions(-)
¹ git ls-tree -r --name-only HEAD | 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 --pretty=oneline vx.(y-1)..vx.(y) | wc -l
⁴ git diff --shortstat vx.(y-1)..vx.(y)

(thl [104]) (thl [105])


URL dieses Artikels:
https://www.heise.de/-3132326

Links in diesem Artikel:
[1] https://git.kernel.org/torvalds/c/1f7371b2a5faf139465f0af386cccbb54b832534
[2] https://git.kernel.org/torvalds/c/e61710c59dd205b48413762b2aedd46e86df3c45
[3] https://git.kernel.org/torvalds/c/3a74f6f27328ff4b9784a6d16f2aafa62081d9c7
[4] https://git.kernel.org/torvalds/c/bdecc20a986bbe527cea0775f265d1927083410e
[5] https://git.kernel.org/torvalds/c/aabcb7c11e3d9d8a5c28fb5b3aa60ec1cec58e64
[6] https://git.kernel.org/torvalds/c/c82baa28184356a75c0157129f88af42b2e7b695
[7] https://git.kernel.org/torvalds/c/601038142fdab3750f26c0f7bda8c7f4805cbe1d
[8] https://git.kernel.org/torvalds/c/3466904d38ff1e63f0a19cb31166db67f2d05c61
[9] https://www.heise.de/hintergrund/Die-Neuerungen-von-Linux-3-12-3053832.html
[10] https://www.heise.de/news/Aktualisierte-3D-Treibersammlung-fuer-Linux-ermoeglicht-3D-in-KVM-VMs-3044636.html
[11] https://www.heise.de/news/Umgeruestet-Raspbian-mit-experimenteller-OpenGL-Unterstuetzung-3098374.html
[12] https://git.kernel.org/torvalds/c/5234c34e4cd7695647ccc1cabb50c3e7720dd3fb
[13] https://git.kernel.org/torvalds/c/80534f095f182d9067a9ea02073b37f771f77d40
[14] https://git.kernel.org/torvalds/c/41f4988cc287e5f836d3f6620c9f900bc9b560e9
[15] https://git.kernel.org/torvalds/c/57e5c6d95b2cde884634586d833b02f54ba1c79d
[16] https://www.raspberrypi.org/documentation/linux/kernel/
[17] 
[18] https://www.heise.de/news/Linux-rm-rf-soll-keine-UEFI-Systeme-mehr-kaputt-machen-3113433.html
[19] https://git.kernel.org/torvalds/c/64be0aed59ad519d6f2160868734f7e278290ac1
[20] https://git.kernel.org/torvalds/c/c1e64e298b8cad309091b95d8436a0255c84f54a
[21] https://git.kernel.org/torvalds/c/6eb5d2e08f071c05ecbe135369c9ad418826cab2
[22] http://lwn.net/Articles/666220/
[23] https://git.kernel.org/torvalds/c/04b38d601239b4d9be641b412cf4b7456a041c67
[24] https://git.kernel.org/torvalds/c/fce205e9da8e063aa1cf3d6583c1a9ed2b82f3f0
[25] https://git.kernel.org/torvalds/c/29732938a6289a15e907da234d6692a2ead71855
[26] https://git.kernel.org/torvalds/c/ffa0160a103917defd5d9c097ae0455a59166e03
[27] http://lwn.net/Articles/659523/
[28] https://git.kernel.org/torvalds/c/a5ed91828518ab076209266c2bc510adabd078df
[29] https://git.kernel.org/torvalds/c/c1a198d9235b9e7d6942027374e44f78ebdcb455
[30] https://git.kernel.org/torvalds/c/689c958cbe6be4f211b40747951a3ba2c73b6715
[31] http://thread.gmane.org/gmane.linux.kernel.api/14088/
[32] http://thread.gmane.org/gmane.comp.file-systems.ext4/51512/
[33] http://linux.die.net/man/8/xfs_quota
[34] https://git.kernel.org/torvalds/c/9b7365fc1c82038faa52d56173b20221cf422cbe
[35] https://git.kernel.org/torvalds/c/334e580a6f97e2e84d1c19a8679603956acaa622
[36] https://git.kernel.org/torvalds/c/8d3095f4ad47ac409440a0ba1c80e13519ff867d
[37] https://git.kernel.org/torvalds/c/e9f57ebcba563e0cd532926cab83c92bb4d79360
[38] https://git.kernel.org/torvalds/c/0b5da8db145bfd44266ac964a2636a0cf8d7c286
[39] https://git.kernel.org/torvalds/c/7088c4136fa1cba26531fde40bdcfcf3d2ccd533
[40] 
[41] https://git.kernel.org/torvalds/c/3c28ff22f6e20cc946cb5a2b77d14862999f7ba0
[42] http://thread.gmane.org/gmane.comp.freedesktop.xorg.devel/48348
[43] https://git.kernel.org/torvalds/c/15620206ae87ba9643ffa6f5ddb5471be7192006
[44] https://www.heise.de/news/Intel-plant-dritte-Core-i-Variante-mit-14-nm-Technik-2725443.html
[45] https://git.kernel.org/torvalds/c/d97044b661d0d56b2a2ae9b2b95ab0b359b417dc
[46] https://git.kernel.org/torvalds/c/8b10c0cf21ec84618d4bf02c73c0543500ece68d
[47] https://git.kernel.org/torvalds/c/91815d8aa7e2f45d30e51caa297061ad893628d9
[48] http://blog.ffwll.ch/2016/01/neat-drmi915-stuff-for-45.html
[49] 
[50] https://nouveau.freedesktop.org/wiki/CodeNames/#NVC0
[51] https://git.kernel.org/torvalds/c/5cca4bdc0d0518b31c7bf8f5e8a895af01c4c90a
[52] https://git.kernel.org/torvalds/c/7c923844bf618d8d9cbe49901089915afba86f2e
[53] https://git.kernel.org/torvalds/c/3aba825ffa6615971bb5feae57806288c14d4096
[54] https://git.kernel.org/torvalds/c/8333f607a6317565a71f286728cf6a1f08e56004
[55] https://git.kernel.org/torvalds/c/a8c21a5451d831e67b7a6fb910f9ca8bc7b43554
[56] http://elinux.org/images/7/74/ELCE2015-Etnaviv.pdf
[57] https://fosdem.org/2016/schedule/event/etnaviv/attachments/slides/1206/export/events/attachments/etnaviv/slides/1206/FOSDEM2016_Etnaviv.pdf
[58] https://fosdem.org/2016/schedule/event/etnaviv/
[59] https://www.heise.de/Datenschutzerklaerung-der-Heise-Medien-GmbH-Co-KG-4860.html
[60] 
[61] https://git.kernel.org/torvalds/c/c4836b056d8316faf40ae94ac01557e6ee12c643
[62] https://git.kernel.org/torvalds/c/7b08c67fa5ae66c2d07fd506de57de67b7a7e5d6
[63] https://git.kernel.org/torvalds/c/006bda75d81fd27a583a3b310e9444fea2aa6ef2
[64] https://git.kernel.org/torvalds/c/abf10f868f70e8e7c62ac4bc61ff4ab94a09eda1
[65] https://git.kernel.org/torvalds/c/9baa03982b06a62ac817b4983f2da7ca66d4f331
[66] https://git.kernel.org/torvalds/c/89374fe60bfb481a81b941adaa5e834ace2cc9df
[67] https://git.kernel.org/torvalds/c/ecc83e52b28c707da3e7fb8aa471417d9c0d1ec7
[68] https://git.kernel.org/torvalds/c/ecc83e52b28c707da3e7fb8aa471417d9c0d1ec7
[69] https://git.kernel.org/torvalds/c/2a6d7527b35cf987260800807e328d167aef22ac
[70] https://git.kernel.org/torvalds/c/e3345db85068ddb937fc0ba40dfc39c293dad977
[71] https://git.kernel.org/torvalds/c/d07e22597d1d355829b7b18ac19afa912cf758d1
[72] http://www.heise.de/thema/Stagefright
[73] http://lwn.net/Articles/667790/
[74] https://git.kernel.org/torvalds/c/854e9ed09dedf0c19ac8640e91bcc74bc3f9e5c9
[75] http://lwn.net/Articles/590991/
[76] 
[77] https://git.kernel.org/torvalds/c/90a545e981267e917b9d698ce07affd69787db87
[78] https://git.kernel.org/torvalds/c/19a3dd7621af01b7e44a70d16beab59326c38824
[79] https://git.kernel.org/torvalds/c/34a9304a96d6351c2d35dcdc9293258378fc0bd8
[80] https://git.kernel.org/torvalds/c/0d942766453f3d23a51e0a2d430340a178b0903e
[81] https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/plain/Documentation/cgroup-legacy/unified-hierarchy.txt?id=0d942766453f3d23a51e0a2d430340a178b0903e
[82] https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/plain/Documentation/cgroup.txt?id=6c2920926b10e8303378408e3c2b8952071d4344
[83] http://lwn.net/Kernel/Index/#Control_groups
[84] 
[85] https://git.kernel.org/torvalds/c/6b5a12dbca7a8681ecb78dbebaedc1f8364ebd10
[86] https://lwn.net/Articles/496400/
[87] https://git.kernel.org/torvalds/c/79d245327f61ff21e7b9427c61fded5442734233
[88] https://git.kernel.org/torvalds/c/81a0bc39ea1960bbf8ece6a895d7cfd2d9efa28a
[89] https://git.kernel.org/torvalds/c/da58fb6571bf40e5b2287d6aa3bbca04965f5677
[90] 
[91] http://article.gmane.org/gmane.linux.kernel/2175995
[92] http://thread.gmane.org/gmane.linux.kernel/2144959
[93] https://github.com/google/syzkaller
[94] https://github.com/google/syzkaller/wiki/Found-Bugs
[95] https://kernel.org
[96] https://www.heise.de/tests/Linux-Kernel-massgeschneidert-1402386.html
[97] 
[98] https://www.heise.de/hintergrund/Die-Neuerungen-von-Linux-3-12-2541595.html
[99] https://www.heise.de/hintergrund/Die-Neuerungen-von-Linux-3-12-2600242.html
[100] https://www.heise.de/hintergrund/Die-Neuerungen-von-Linux-3-12-2715850.html
[101] https://www.heise.de/hintergrund/Die-Neuerungen-von-Linux-3-12-2789351.html
[102] https://www.heise.de/hintergrund/Die-Neuerungen-von-Linux-3-12-2860564.html
[103] https://www.heise.de/hintergrund/Die-Neuerungen-von-Linux-3-12-3053832.html
[104] mailto:thl%40ct.de
[105] mailto:thl@ct.de