Die Neuerungen von Linux 4.7

Die neue Kernel-Version unterstützt AMDs neue Grafikchips. Ferner soll Linux 4.7 das Stromsparpotenzial moderner Prozessoren stärker ausschöpfen und Wartezeiten vermeiden, die bislang bei hoher Netzwerklast auftraten.

In Pocket speichern vorlesen Druckansicht 36 Kommentare lesen
Kernel-Log-Logo
Lesezeit: 21 Min.
Von
  • Thorsten Leemhuis
Inhaltsverzeichnis

Linus Torvalds hat Linux 4.7 freigegeben. Eine der wichtigsten Verbesserungen der neuen Kernel-Version: Der Amdgpu-Treiber unterstützt jetzt die Polaris-Grafikprozessoren von AMD (u. a. 1, 2, 3). Dabei handelt es sich um eine neue Generation von Radeon-GPUs, die AMD auf neuen Grafikkarten wie der Ende Juni eingeführten Radeon RX 480 einsetzt. Ein quelloffener OpenGL-3D-Treiber für die auch "Polaris10" und "Polaris11" genannten Chips steckt in Mesa 12.0.

Durch den mit 4.7 neuen Cpufreq-Governor Schedutil soll der Kernel in Zukunft besser beurteilen können, ob es für möglichst effizienten Betrieb gerade angebracht ist, den Prozessor in einen schnelleren oder sparsameren Betriebsmodus zu schalten. Dazu nutzt Schedutil einige bei Linux 4.6 eingeführte Schnittstellen zwischen Cpufreq-Subsystem und Prozess-Scheduler, um mit den so erreichbaren Daten bessere Entscheidungen treffen zu können. Der Betreuer des Power-Management-Codes hebt diesen Ansatz in seinem Haupt-Merge-Kommentar als wichtige Weiterentwicklung hervor. Diese bei LWN.net näher erläuterte Herangehensweise steckt aber noch in den Kinderschuhen und der Code ist fürs Erste bewusst einfach gehalten; weitere Verbesserungen sind bereits in Arbeit, wie auch der Merge-Kommentar des Power-Management-Codes erläutert.

Mehr Infos

Dies war ein laufend aktualisierter Artikel

Dieses Kernel-Log wurde mehrfach erweitert und hat so nach und nach die wichtigsten Neuerungen beschrieben, die es in den verschiedenen Funktionsbereichen des Kernels gibt. In der am 25. Juli zur Freigabe von Linux 4.7 veröffentlichten Artikelfassung haben wir die Absätze mit den wichtigsten Neuerungen nach vorn geholt. Von nun an wird der Text seine jetzige Form behalten. Details zur Versionshistorie des Artikels finden Sie am Artikelende.

Bei Linux 4.7 sollen nicht mehr so leicht kurze und sporadisch auftretende Wartezeiten (Latenzspitzen) entstehen, wenn der Kernel eine sehr große Zahl von Netzwerkpaketen verarbeiten muss. Das ist einigen Änderungen am TCP-Code zu verdanken, durch die es jetzt mehr Stellen gibt, wo der Kernel-Code die Verarbeitung von Netzwerkpaketen unterbrechen kann, um sich vorübergehend anderen Arbeiten zu widmen (u. a. 1, 2, 3).

Über eine neue Gerätedatei können Programme nun im EFI-Speicherbereich ein Firmware-Update hinterlegen, das die Firmware bei einem Neustart selbst installiert (1, 2, 3). Details zu diesem Firmware-Update per "UEFI Capsules" erläutert ein Beitrag in einem Intel-Blog. Allerdings implementiert bislang kaum eine UEFI-Firmware diese Funktion.

Bislang konnte es zu größeren Performance-Einbrüchen kommen, wenn mehrere Prozesse gleichzeitig abfragten, was in einem Verzeichnis zu finden ist. Dank einiger Änderungen am Locking und Caching des VFS (Virtual File System), die nach langer Entwicklungsphase jetzt in den Kernel eingeflossen sind, soll damit nun Schluss sein. Linus Torvalds hat die Änderungen in einem Google+-Beitrag geradezu bejubelt. In den zugehörigen Kommentaren erwähnt er aber auch, größere Vorteile zeige das Ganze vermutlich nur unter bestimmten Umgebungsbedingungen; solche sollen ihm zufolge mit viele Jahre alten Samba-Versionen häufiger aufgetreten sein, könnten aber womöglich auch mit aktuellen Versionen entstehen.

Der im Kernel enthaltene Code zum Zugriff auf NFS-Server unterstützt jetzt die bei Linux 4.5 eingeführte Funktion, die Kopiervorgänge erheblich beschleunigen kann. Letztlich kann der NFS-Client einem NFS-4.2-Server dadurch jetzt mitteilen, welche Daten kopiert werden müssen; der macht das dann autark und damit schneller, denn die kopierten Daten müssen nicht vom Server zum Client und wieder zurück fließen.


Mehr Infos

Die folgenden Absätze wurden am 6.7.2016 publiziert.

Ein Dokument in den Kernel-Quellen erläutert jetzt Hintergründe zu Eigenschutzmaßnahmen, die den Kernel robuster gegen Angriffe machen. Die Datei enthält nicht nur Details zu den bereits verwendeten "Self Protection"-Funktionen, sondern nennt auch einige Techniken und Ideen, auf deren Implementierung das im letzten Herbst gegründete Kernel Self Protection Project hinarbeitet. Die Entwickler um Google-Mitarbeiter Kees Cook wollen Linux dadurch so abdichten, dass idealerweise selbst ein Angreifer ein System nicht übernehmen kann, der über irgendeine Kernel-Lücke an beliebige Stellen des Arbeitsspeichers schreiben kann.

Die Kernel-Entwickler reagieren damit auf Kritik von innen und außen, Linux müsse robuster werden. Konstantin Ryabitsev, der sich als Netzwerk- und System-Administrator bei der Linux Foundation um Kernel.org kümmert, verglich die aktuelle Situation in einem viel diskutierten Vortrag mit einem Chevrolet Bel Air von 1957 (Präsentationsfolien, LWN.net-Bericht). Solch ein Auto habe Komfort, Platz und viele nette Funktionen geboten. Bei einem Unfall kam man darin aber leicht zu Tode, da Autos damals nicht für solche Situationen gerüstet waren, wie es heutzutage üblich ist. Heutige Computer seien wie der 57er Bel Air: Nicht ausgelegt für Menschen und die Fehler, die sie machen. Ryabitsevs Appell: Von der Autoindustrie lernen und Computersysteme bauen, wo Fehler nicht zu katastrophalen Folgen führen.

Die Entwickler des Kernel Self Protection Project wollen Linux resistenter gegen Angriffe machen.

(Bild: Kernel Self Protection Project )

Die Diskussionen um Kernel-Sicherheit und die Bemühungen des Kernel Self Protection Project machen sich durch eine jüngst gestiegenen Anzahl von Änderungen bemerkbar, die die Sicherheit zu verbessern versuchen. Bei 4.7 stieß beispielsweise die optionale "SLAB freelist randomization" zum Kernel, die mit Heap Overflows arbeitende Angriffe erschweren soll.

Um die Angriffsfläche zu verringern, kann die Build-Infrastruktur jetzt alle externen Einsprungpunkte (Exported Symbols) aus dem kompilierten Kernel-Image entfernen, die beim Kernel-Bau übersetzte Module nicht verwenden (u. a. 1, 2).

Das neue Linux Security Module (LSM) LoadPin kann sicherstellen, dass vom Kernel geladene Dateien (Module, Firmware, …) von einem vertrauenswürdigen und gegen ungewollte Modifikationen geschützten Datenträger kommen; das kann ein nicht beschreibbares Medium wie eine DVD sein, oder ein Datenträger, bei dem das bei Linux 3.4 eingeführte Dm-Verity die Integrität gewährleistet. Details dieser für Smartphone oder resistente Live-Linuxe interessanten Funktion erläutert LWN.net.

Der Berkeley Packet Filter (BPF) kann durch "Constant Blinding" jetzt die bei BPF-Programmen verwendete Konstanten verwürfelt. Das soll es es Angreifern erschweren, über solche Programme beliebige Instruktionen in den Adressraum des Kernels zu schreiben (u. a. 1, 2, 3, 4).

Wie üblich verbessert die neue Kernel-Version den Hardware-Support, denn sie bringt wieder eine ganze Reihe neuer und erweiterter Treiber mit. Laut den Skripten der Linux Kernel Driver DataBase (LKDDb) enthalten die Kernel-Quellen jetzt Treiber für 26.300 verschiedene Geräte oder Geräteklassen, die über Identifikationsbezeichner wie ACPI-, PCI- und USB-IDs erkannt werden. Damit unterstützt Linux 4.7 rund 500 Hardware-Komponenten mehr als 4.6; rund 180 davon sind PCIe/PCI- oder USB-Geräte.

In Wirklichkeit unterstützt der Kernel noch mehr Hardware, da die LKDDb nicht alles erfasst; es fehlen unter anderem Einträge für viele Audio-Codecs und manche Hardware-Monitoring-Chips. Zugleich sind einige der Einträge aber lediglich Informationen, wie eine bereits unterstützte Komponente auf einem bestimmten Single-Board Computer (SBC) oder dessen System on Chip (SoC) anzusprechen ist.

Unter zahlreichen neuen Treibern ist einer für die Thunderbolt-Controller älterer Macs.

Unter den neuen Treibern ist einer, der Unterstützung für die Thunderbolt-Controller nachrüstet, die Apple bei einigen 2011 und 2012 gebauten Modellen von iMAC, MacMini und MacBookPro verbaut hat (u.a. 1, 2). Neu ist auch Support für den Xbox One Elite Controller von Microsoft oder Intels WLAN-Chip 9260. Auch ein Treiber für iSCSI Target Offload Controller von Chelsio ist erstmals dabei. Ferner weiß der Kernel jetzt auch die auf PC- und Notebook-Mainboards verbauten HD-Audio-Codecs anzusprechen, die Realtek als ALC234, ALC274 und ALC294 sowie ALC700, ALC701 und ALC703 vertreibt. Über den neuen Usbip-Vudc-Treiber und passende Usbip-Tool-Erweiterungen kann man auf einem System ein USB-Gadget emulieren, das ein anderer PC via Netzwerk ansprechen kann (u.a. 1, 2, 3); das ist etwa zum Lernen von USB-Interna oder für Tests bei der Entwicklung neuer Produkte (etwa Smartphones) interessant. Ebenfalls neu: Ein Treiber für einen Power Management Controller, den Intel in den Chipsätzen (Platform Controller Hubs/PCHs) für einige seiner SOCs verbaut.


Mehr Infos

Die folgenden Absätze wurden am 30.5.2016 publiziert.

Im i915-Treiber für moderne Intel-GPUs steckt jetzt ein Color Manager, mit dem sich eine realistischere Farbwiedergabe konfigurieren lässt. Dieser Kernel-Treiber beherrscht das Farbmanagement aber nur bei GPUs, die in einigen der neuesten Prozessorfamilien stecken; darunter sind die Broadwell- und Skylake-Prozessoren, zu denen die Core-i-Modelle der 5000- und 6000er-Serie gehören.

Ferner haben die Entwickler einige Probleme beseitigt, durch die sich die GT3- und GT4-Varianten der GPU von Skylake-Prozessoren (Core-i-6000er-Serie) gelegentlich aufgehängt haben; dabei handelt es sich um die leistungsstärksten Varianten der Skylake-GPU, die Intel als "Iris Graphics" vermarktet. Details zu diesen und weiteren Änderungen am i915-Treiber liefert dessen Betreuer in einem Blog-Beitrag.

AMDs neuer proprietärer Grafiktreiber wird weiterhin einen geringeren Funktionsumfang aufweisen, wenn man ihn mit dem Amdgpu-Treiber des offiziellen Linux-Kernels kombiniert. Letzterem fehlt nämlich nach wie vor die Display Abstraction Layer (DAL), die der proprietäre und noch in der Beta-Phase steckende Grafiktreiber für einigen Funktionen braucht.

AMD hat schon vor Monaten Änderungen veröffentlicht, die den Amdgpu-Kernel-Treiber um die Abstraktionsschicht erweitern, mit der AMD einige bislang mit Linux nicht nutzbare GPU-Funktionen unterstützen will. Wichtige Kernel-Entwickler haben sich aber aus Qualitätsgründen gegen eine Integration ausgesprochen – unter anderem, weil sie DAL als unnötige Zwischenschicht ansehen. Mit der Aufnahme des Polaris-Supports hatten AMDs Entwickler kürzlich abermals versucht, DAL in den offiziellen Linux-Kernel zu bekommen, ernteten aber erneut Ablehnung.

Weitere Neuerungen am Kernel-Treiber für Radeon-GPUs nennt der zuständige Entwickler in seinen beiden Haupt-Pull-Requests (1, 2).

Unter den Änderungen am Nouveau-Treiber waren einige, durch die der Treiber für Nvidia-GPUs jetzt die GeForce 830M (GPU-Codename: GM108) ansprechen kann, die unter anderem in einigen Lenovo-Notebooks steckt.

Der VC4-Treiber, der für die Grafikkerne der verschiedenen Raspberry-Pi-Modelle zuständig ist, unterstützt jetzt per Display Parallel Interface (DPI) angebundene Bildschirme. Diese Erweiterungen legen nebenbei auch Grundlagen zum in Arbeit befindlichen Support für Panels mit Display Serial Interface (DSI).

Der Kernel kann jetzt mit Dells 5K-Display besser umgehen. Bislang gab es Probleme, weil der Kernel die Informationen zur korrekten Ansteuerung des Bildschirms aus den Extended Display Identification Data (EDID) nicht recht interpretieren konnte.

Der Kommentar eines Git-Merge listet weitere Änderungen, welche die Kernel-Entwickler am Direct Rendering Manager (DRM) und den darauf aufbauenden Grafiktreibern vorgenommen haben. Mit diesen Änderungen sind auch fünf Treiber für Grafikprozessoren in das DRM-Subsystem eingeflossen, die bei System-on-a-Chip-Bausteinen (SoCs) zum Einsatz kommen. Der schon lange für PC-Grafikchips verwendete DRM löst damit mehr und mehr das Subsystem Fbdev ab, das lange für SoC-GPU-Treiber bevorzugt wurde. Der Betreuer dieses Subsystems hat im Herbst letzten Jahres allerdings darum gebeten, von nun an DRM-Treiber zu entwickeln und keine neuen Fbdev-Treiber mehr zur Aufnahme einzusenden.


Mehr Infos

Die folgenden Absätze wurden am 15.6.2016 publiziert.

Das für SATA-Geräte zuständige Libata-Subsystem unterstützt nun Zone ATA Commands (ZAC), die für Festplatten mit Shingled Magnetic Recording (SMR) geschaffen wurden (u. a. 1, 2, 3). Solchen Platten sind in Zonen unterteilt, bei denen eine neu geschriebene Spur die zuvor geschriebene ein wenig überlappt, wie man es von Dachschindeln (englisch "Shingle") kennt. Dadurch lassen sich mehr Daten auf der Plattenfläche unterbringen; durch den Ansatz muss aber die komplette Zone neu geschrieben werden, um ein geschriebenes Bit zu ändern.

Im Einzelhandel gibt es schon länger einige für Desktop-PCs oder Notebooks gemachte Platten, die SMR verwenden. Sie sind "Device Managed", daher kümmert sich ihre Firmware um die Handhabung der Zonen. Die Hersteller arbeiten allerdings auch an "Host Managed"-Platten, bei denen das Betriebssystem sicherstellen muss, dass jede Zonen sequenziell befüllt wird. Ein wenig von beiden Ansätzen findet sich bei "Host Aware"-Platten, bei denen sich das Betriebssystem nicht um die korrekte Befüllung kümmern muss, aber es besser tun sollte, um ordentliche Performance sicherzustellen.

Mehr Infos

Den neuen Linux-Kernel herunterladen und einrichten

Die neue Linux-Version steht wie gewohnt über Kernel.org zum Download bereit. Hinweise zur Einrichtung eines eigenen Kernels finden Sie im heise open-Artikel "Linux-Kernel maßgeschneidert". Das darin beschriebene Make-Target make localmodconfig erzeugt weitgehend automatisch eine auf Ihr System zugeschnittene Kernel-Konfiguration, mit der Sie in wenigen Minuten eine neue Linux-Version einrichten können.

Fedora und Rolling-Release-Distributionen wie Arch, Gentoo und OpenSuse Tumbleweed dürften die neue Kernel-Version in den nächsten Wochen als reguläres Update erhalten. Bei OpenSuse Leap, Ubuntu und vielen anderen klassisch gewarteten Distributionen wird das nicht passieren, denn dort macht der Kernel nur beim Upgrade auf eine neue Distributionsversion einen Sprung.

Host-Managed- und Host-Aware-Platten sind bislang nicht im Einzelhandel erhältlich. Damit Linux diese Ansätze sauber unterstützen kann, müssten Storage-Layer (etwa der Device Mapper) oder Dateisysteme angepasst werden. Davon ist bislang noch nicht viel zu sehen, obwohl darüber bereits seit drei Jahren diskutiert wird; Details erläutern ältere Artikel bei LWN.net (1, 2, 3, 4).

Der Kernel-Code für das SSD-Caching-Framework Bcache gilt jetzt als "verwaist", weil sich der Bcache-Erfinder nicht mehr darum kümmert; offenbar konzentriert er sich voll darauf, aus dem Bcache-Code ein Bcachefs genanntes Dateisystem zu entwickeln, das mit Btrfs, Ext4, XFS & Co. konkurrieren soll.

Über das Ceph Filesystem (CephFS) des Kernels lässt sich nun auf verschiedene Dateisysteme eines Ceph-Clusters zugreifen; solche "Multiple Independent CephFS filesystems" innerhalb eines Clusters beherrscht Ceph seit der Version Jewel, die im April erschienen ist.

Einige weitere Detailverbesserungen an CephFS nennen die Kommentare zweier Merge-Commits (1, 2). Auch bei vielen anderen Dateisystemen gab es kleinere Verbesserungen, die die wichtigsten Merge-Commits von Btrfs (1, 2), Ext4 F2FS, NFS, NFSd oder XFS nennen. Unter einigen erst zur fünften Vorabversion eingepflegten Änderungen an Btrfs waren ferner zwei, die die Performance in bestimmten Situationen verbessern (1, 2).

Unter den Änderungen am Code für persistente Speichermedien waren einige durch die man jetzt direkt über Gerätedateien (/dev/dax) auf Persistent Memory (Pmem) zugreifen kann (1, 2). Das vermeidet den Overhead von Dateisystemen, die bislang erforderlich waren, um nichtflüchtige Speichermedien wie NV-DIMMs zu verwenden.

Darüber hinaus gab es eine Reihe kleinerer Verbesserungen an der für Storage-Funktionen zuständigen Subsystemen Block-Layer, Block-Driver, Device Mapper und MD (aka Software-RAID). Darunter ist etwa eine Änderung an den Locking-Mechanismen von Device Mapper Multipathing (DM Mpath), welche die Performance auf Mehrprozessor-Systemen deutlich verbessern kann.


Mehr Infos

Die folgenden Absätze wurden am 9.6.2016 publiziert.

Ein Mitarbeiter der Airbus Group hat Unterstützung für die 2013er-Variante des "High-availability Seamless Redundancy" (HSR) Protokolls in den Netzwerkstack integriert. Dabei handelt es sich um ein Ethernet-Protokoll, das niedrige Latenzen und zugleich Hochverfügbarkeit bieten soll und dazu Geräte über zwei Netzwerkverbindungen anbindet. Die erste, 2010 publizierte Variante des unter anderem in der Industrie verwendeten Protokolls hat der Kernel schon länger unterstützt.

Der Kernel beherrscht nun auch die GPT-U-Variante des GPRS Tunneling Protocol (GTP); das ist ein Protokoll zum Tunneln von Datenpaketen in Mobilfunknetzen, die mit GSM, UMTS oder LTE arbeiten. Das Osmocom-Projekt, in dem Harald Welte und andere Programmierer Open-Source-Software zum Betrieb von Mobilfunknetzen entwickeln, setzt das GPT-U bei OpenGGSN ein.

Unter den Änderungen am Netzwerk-Subsystem war ferner "Partial Segmentation Offload", durch das Intels 40-Gigabit-Ethernet-Controller der XL710-Serie bei Tests von 12 auf 20 Gbit/s zulegte. Das behauptet zumindest der für die Technik zuständige Entwickler im Commit-Kommentar einer Änderung, durch die der zuständige Treiber den Partial Segmentation Offload lernt. Ziel dieser Technik: Mehr Aufgaben beim Tunneln von Daten an den Netzwerkchip delegieren, die für solche Aufgaben ausgelegt sind und sie dadurch effizienter erledigen als der Hauptprozessor.

Performance-Verbesserungen beim Tunneln gibt es auch beim Treiber für die QLogic-Netzwerkchips der FastLinQ-4xxxx-Serie, denn der kann jetzt beim Tunneln mit VXLAN, GRE und GENEVE auf Hardware-Unterstützung zurückgreifen (u.a. 1, 2). Ferner beherrscht der Qed genannte Treiber jetzt SR-IOV (Single Root I/O Virtualization); damit lassen sich Teilfunktionen des Netzwerkchips an virtuelle Maschinen (VMs) überstellen, die sie wie einen eigenen Netzwerkadapter nutzen können (u. a. 1, 2, 3).


Mehr Infos

Die folgenden Absätze wurden am 28.6.2016 publiziert.

Der Cpufreq-Treiber zum Wechsel der Prozessor-Geschwindigkeit via ACPI beherrscht jetzt eine Technik, die einen schnelleren Wechsel des Betriebsmodus ermöglicht. Unter den Änderungen am ACPI-Code war auch Unterstützung für ACPI 6.1 (u. a. 1, 2, 3, 4, 5). Ferner wurde die Funktion zum Einbinden eigener ACPI-Tabellen überarbeitet, um den Einsatz aktualisierter Tabellen zu erleichtern, die neuere oder korrigierte Angaben zur korrekten Hardware-Ansteuerung liefern.

Mit Hist Triggers erzeugtes Kmalloc-Histogram.

(Bild: Screenshot der Kernel-Dokumentation)

Die Event-Tracing-Infrastruktur von Ftrace kann durch die neuen Histogram Trigger (kurz: Hist Trigger) jetzt autonom Analysedaten akkumulieren (u. a. 1, 2). Darüber kann der Kernel über Sysfs auffordern zu beobachten, welche Kernel-Funktion wie viel Arbeitsspeicher per kmalloc() anfordert; diese Angaben bereitet der Kernel zu einem Histogramm auf, das man nach einer Beobachtungsphase via Sysfs auslesen kann. Die Hist Trigger erleichtern so Analysen; zugleich vermeiden sie Performance-drückenden Overhead, den eine Userspace-Auswertung häufig auftretender Ftrace-Events mit sich bringt. Einige Hintergründe zu den Hist Triggers liefert ein LWN.net-Artikel; weitere Details enthält die Dokumentation, die zahlreiche Einsatzbeispiele enthält.

Der BPF (Berkeley Packet Filter) kann nun Messdaten vorverarbeiten, die durch Prüfpunkte im Code erzeugt wurden (u. a. 1, 2, 3). Dadurch kann man etwa einen BPF-Programm schreiben und in den Kernel laden, das aufsummiert, wie häufig ein bestimmter Tracepoint während eines Beobachtungszeitraums angetroffen wurde. Solch eine frei programmierbare und Kernel-interne Vorverarbeitung von Messwerten kann Overhead vermeiden und bietet so eine dynamische Tracing-Funktion, wie sie sich auch bei Dtrace oder Systemtap findet. Einige Einsatzbeispiele zu den BPF-Filtern für Tracepoints liefert die Kernel-Dokumentation (1, 2, 3); Hintergründe zum Ansatz erläutert ein LWN.net-Artikel.

Der Kernel soll Speicherknappheit (Out-of-Memory/OOM) verlässlicher erkennen und zuverlässiger reagieren, wenn er in solch einer Situation einen Prozess abschießt, damit sich das System nicht komplett festfährt. Das ist einigen Umbauten am OOM-Code zu verdanken (u. a. 1, 2), die ein LWN.net-Artikel näher erläutert.

Unter den Neuerungen an KVM (u. a. 1, 2) war Support für AMDs Advance Virtual Interrupt Controller (AVIC), der die Virtualisierungsperformance steigern kann (u. a. 1, 2). Änderungen am IOMMU-Code sollen Performance-Einbußen weitgehend beseitigen, die bei Kerneln mit aktiver Unterstützung für Intels VT-d (Virtualization Technology for Directed I/O) auftreten, selbst wenn man die Funktion nicht nutzt. Das soll es für Distributoren attraktiver machen, den VT-d-Support bei ihren Kerneln standardmäßig zu aktivieren.

Die Kernel-Entwickler haben Infrastruktur integriert, um zukünftig reStructuredText (RST) für die Kernel-Dokumentation zu nutzen. Das unter anderem bei der Entwicklung von Python verwendete Format soll einige Probleme beseitigen, die die Kernel-Entwickler schon länger plagen.

Der Kernel unterstützt jetzt die nächste, UV4 genannte Generation der "Ultraviolet"-Supercomputer-Serie von SGI. Der ARM64-Code beherrscht jetzt NUMA (Non-Uniform Memory Access), bei dem Arbeitsspeicher an unterschiedlichen Prozessoren eines Multiprozessorsystems hängt, wie es bei x86-Servern mit mehreren Prozessoren heute die Regel ist.

Der ARM-Code enthält jetzt Basis-Support für die zur "Aspeed Platform" zählenden Chips ast2400 und ast2500. Dabei handelt es sich um Baseboard Management Controller (BMC), die auf vielen Server-Boards für Fernwartungsfunktionen zuständig sind; diese Chips stehen im Fokus der Entwicklung des maßgeblich von Facebook vorangetriebenen Projekts OpenBMC, das eine quelloffene Firmware für solche Fernwartungschips entwickelt; OpenBMC soll auch bei der POWER8-Workstation mit offener Firmware und Linux zum Einsatz kommen.

Neu ist auch Basis-Support für MIPS-Prozessoren der R2-Revision des Loongson-3A. Der ARC-Architektur-Code unterstützt nun auch den NPS-400 Network Prozessor von Mellanox (vormals EZChip) (1, 2). Details zu den Änderungen an weiteren Architekturen finden sich in den wichtigsten Merge-Commits der Subsysteme ARM (1, 2, 3, 4, 5, 6, 7), ARM64 (1, 2, 3), MIPS, s390 und PowerPC und x86 (u. a. 1, 2). Ferner gab es weitere Grundlagen zur Jahr-2038-Kompatibilität mit 32-Bit-Linux.


Mit der Freigabe von Linux 4.7 beginnt jetzt die Phase, in der Linus Torvalds das Gros der Änderungen für Linux 4.8 aufnimmt; dieses "Merge Window" schließt der Linux-Erfinder typischerweise nach zwei Wochen mit der Veröffentlichung einer ersten Vorabversion.

Zahlreiche neue Funktionen liegen zur Aufnahme in Linux 4.8 bereits bereit. Sofern Torvalds und seine Mitstreiter im gewohnten Tempo arbeiten, sollte der Linux-Kernel 4.8 in der zweiten Septemberhälfte erscheinen.

Kernel-
Version
Anzahl
Dateien¹
Zeilen
Quelltext
(Ohne Doku)²
Entwick-
lungs-
zeitraum
Anzahl
Commits³
Diffstat⁴
Linux 3.19 48440 19130604
(17692109)
63 Tage 13652 10739 files changed,
483355 insertions(+),
346843 deletions(-)
Linux 4.0 48957
19312370
(17847304)
63 Tage
11306
9489 files changed,
 508686insertions(+),
 326917 deletions(-)
Linux 4.1 49457 19512485
(18004436)
70 Tage 12965 10094 files changed,
 453375 insertions(+),
 253259 deletions(-)
Linux 4.2 50795 20311717
(18755735)
70 Tage 14750 10926 files changed,
 1079245 insertions(+),
 280008 deletions(-)
Linux 4.3 51570 20621444
(19031051)
63 Tage 13282 10385 files changed,
 642760 insertions(+),
 333026 deletions(-)
Linux 4.4 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(-)
Linux 4.6 53660 21422694
(19724413)
63 Tage 14618 10250 files changed,
 606023 insertions(+),
 337875 deletions(-)
Linux 4.7 54400 21712846
(19963730)
70 Tage 13433 9909 files changed,
 575816 insertions(+),
 277305 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)

Mehr Infos

Versionshistorie dieses Artikels

Dieser Artikel wuchs zwischen Erstveröffentlichung und Freigabe des neuen Kernels, um nach und nach alle wichtigen Änderungen von Linux 4.7 zu erläutern. Abschnitte, die Neuerungen beschreiben, werden wir nach dem Publizieren normalerweise nicht mehr verändern. Nur in Ausnahmefällen kann es doch passieren, beispielsweise wenn Linus Torvalds in der Stabilisierungsphase der Entwicklung doch mal eine bedeutsame Änderung annimmt.

  • Version 2.0 zum Release von Linux 4.7: Die Absätze mit den wichtigsten Neuerungen an den Textanfang gestellt und die Reihenfolge der Abschnitte geändert. Die in einem Nachtrag erwähnten Abschnitte zu Bcache und Btrfs an die passenden Stellen verschoben.
  • 2016-07-14, 14:00 – v1.5: Finetuning. Dabei wurden einige Zeitbezüge korrigiert und Links eingebaut, weil etwa Radeon RX 480 und Mesa 12.0 zwischenzeitlich erschienen sind. Ferner den DAL-Abschnitt angepasst, um klarzustellen, dass der proprietäre Treiber mit dem Amdgpu-Treiber des Kernels weniger Funktionen unterstützt.
  • 2016-07-06, 10:30 – v1.4: Beschreibung der Änderungen an Sicherheitstechniken und Treibern am Textanfang integriert.
  • 2016-06-28, 09:30 – v1.3: Beschreibung der Änderungen an Architektur-Code und allgemeiner Infrastruktur am Textanfang integriert.
  • 2016-06-15, 11:30 – v1.2: Beschreibung der Änderungen an Dateisystemen und Storage-Unterstützung am Textanfang integriert.
  • 2016-06-09, 16:00 – v1.1: Beschreibung der Netzwerkänderung integriert und Texteinstieg aktualisiert; Teile des alten Einstiegs im neuen Textkasten "Kernel-Log zu 4.7" wiederverwendet.
  • 2016-05-30, 07:30 – v1.0: Erste Version, die sich auf die Neuerungen bei den Grafiktreibern konzentriert.

(thl)