Menü
c't Magazin

Linux-Kernel 5.1 mit neuen Speicher- und Diagnosetechniken

Linux soll endlich eine moderne Infrastruktur für Asynchronous I/O erhalten. Das viel diskutierte Wireguard schafft es wohl nicht in den nächsten Kernel.

vorlesen Drucken Kommentare lesen 48 Beiträge

Mit der Montagfrüh erfolgten Freigabe von Linux 5.0 hat das zweiwöchige "Merge Window" begonnen, in dem Linus Torvalds das Gros der Änderungen für Linux 5.1 zusammenfügt. Eine der meistdiskutierte Änderungen, die zur Aufnahme in den Nachfolger von Linux 5.0 bereit liegt, ist eine modernere Infrastruktur zum asynchronen Laden und Speichern von Daten (Asynchronous I/O, kurz AIO). Bei diesem Verfahren kann ein Prozess eine Übertragung initiieren und dann andere Dinge erledigen, während der Kernel die I/O-Operation im Hintergrund ausführt.

Unter Windows arbeiten Programme häufig auf diese Weise. Unter Linux ist das eher die Ausnahme. Das liegt unter anderem an der bisherigen AIO-Infrastruktur von Linux, die allerlei Tücken aufweist und immer mal wieder kritisiert wird.

Die neue Infrastruktur namens "io_uring" soll Linux in diesem Bereich endlich nach vorne bringen und dabei das Performance-Potenzial moderner Hardware durch regelmäßiges Abfragen der Hardware (Polling) besser ausschöpfen können. Damit wollen die Kernel-Entwickler sich auch gegen Lösungen wie das Storage Performance Development Kit (SPDK) positionieren; das umgeht den Kernel bei I/O-Operationen, ähnlich, wie das bekanntere Data Plane Development Kit (DPDK) den Netzwerkstack des Kernels ausbootet.

Die neue AIO-Infrastruktur ist nur eine von vielen tausend Änderungen, die zur Integration in Linux 5.1 bereit liegen. Eine weitere ist der von Google eingebrachte PSI Monitor, mit dem Android-Geräte zügiger erkennen und Abhilfe schaffen sollen, wenn ein Prozess den Arbeitsspeicher übermäßig belastet und so Vordergrundprogramme womöglich spürbar verlangsamt. Die Technik setzt auf das bei Linux 4.20 integrierten PSI (Pressure-Stall Information) auf, mit dem Administratoren leichter als bei /proc/loadavg eingrenzen können, wie stark das System ausgelastet ist oder warum es plötzlich langsamer als gewohnt arbeitet.

Außerdem liegen wieder zahlreiche Änderungen bereit, um die Hardware-Unterstützung zu verbessern. So soll der Kernel einen Treiber für die Mediatek-WLAN-Bausteine MT7603E, MT7628 und MT7688 erhalten; er gesellt sich zum im Herbst bei Linux 4.19 integrierten Treiber für verschiedene Mediatek-Chips, durch den Linux endlich einige AVM-WLAN-Sticks der Fritz-Reihe anzusprechen gelernt hat.

Diese Linux-Version erhielt zudem einige Änderungen, die einen deutlich schickeren und weitgehend flackerfreien Boot-Vorgang bei Systemen mit Intel-Chips ermöglichen. An einer Stelle flackert es aber derzeit noch – das soll sich jetzt bei Linux 5.1 ändern. Nach jahrelangen Vorarbeiten wollen die Linux-Entwickler jetzt auch einige der wichtigsten Änderungen vornehmen, um das bei 32-Bit-Systemen auftretende Jahr-2038-Problem (Y2K38) im Kernel zu beseitigen.

Die vieldiskutierte und in der aktuellen c't 5/2019 vorgestellte VPN-Lösung Wireguard ist nicht zur Aufnahme in Linux 5.1 vorgesehen. Von Bemühungen zur Integration war öffentlich in den letzten Wochen nichts mehr zu sehen, seit es im Herbst Unstimmigkeiten rund um die Krypto-Infrastruktur "Zinc" gab, die die Wireguard-Entwicklern extra für die VPN-Lösung geschaffen haben.

Nicht für Linux 5.1, sondern für 5.2 sind zudem Patches vorgesehen, durch die AMDs Kernel-Treiber Amdgpu die nächste Generation von Radeon-GPUs unterstützen soll, die unter dem Codenamen "Navi" entwickelt wird.

Der Nachfolger von Linux 5.0 dürfte am ersten oder zweiten Montag im Mai erscheinen, denn die Linux-Entwicklung verläuft fast immer gleich: Die Entwicklung einer neuen Version beginnt mit dem Merge Window, das Linus Torvalds typischerweise nach zwei Wochen beendet, indem er die ersten Vorabversion des nächsten Kernels veröffentlicht; zumeist fügt Torvalds in dieser Phase rund 12.000 Änderungen zusammen.

Die erste Vorabversion läutet zugleich die Stabilisierungsphase ein, die derzeit fast immer sieben oder acht Wochen dauert. Hin und wieder sind es auch mal nur sechs oder neun Wochen, aber zumeist dauert die Entwicklung einer Versionen der Hauptentwicklungslinie von Linux somit 63 oder 70 Tage. (thl)