Die Neuerungen von Linux 3.17
Die Linux-Entwickler schaffen Probleme beim Ausliefern von Zufallszahlen aus der Welt. Thunderbolt funktioniert nun auch bei Apple-Rechnern. Zwei neue Funktionen legen Grundlagen zur effizienten Interprozess-Kommunikation mit Kdbus.
- Thorsten Leemhuis
Linus Torvalds hat den Linux-Kernel 3.17 freigegeben. Zu dessen wichtigsten Neuerungen gehört die Unterstützung für den Multi-Stream Transport (MST), wie ihn DisplayPort 1.2 spezifiziert – eine Technik, mit der Grafikchips über eine DisplayPort-Verbindung mehrere Monitore ansprechen können. Sie ist zur besseren Unterstützung von 4K-Monitoren wichtig, denn manche von ihnen gaukeln dem Betriebssystem vor, sie seien zwei per MST angesprochene Displays. Bislang implementiert aber nur der Intel-Grafiktreiber MST.
Bessere Zufallszahlenausgabe
Programme können nun über den Funktionsaufruf getrandom() Zufallszahlen beim Kernel abrufen. Das vermeidet ein Problem bei Zufallszahlenabruf via /dev/random und /dev/urandom, denn dabei erhält ein Prozess manchmal Zufallszahlen, die zuvor schon ein anderer Prozess erhalten hat. Dieses schon länger bekannte Verhalten spielt Angreifern in die Hände, daher hatten die LibreSSL-Entwickler darum gebeten, es zu beseitigen.
Ferner liefert der neue Syscall beim Setzen eines Flags erst Zufallszahlen, nachdem der Zufallszahlengenerator mit mindestens 128Â Bit an Entropie initialisiert wurde. Bei x86-Systemen ist das normalerweise schon sehr frĂĽh im Boot-Prozess der Fall, nicht aber bei Embedded-CPUs, was hier zu schwacher Kryptographie fĂĽhren kann.
Im Detail
Bereits in den vergangenen Wochen hat die Kernel-Log-Artikelserie "Was 3.17 bringt" detailliert über die Änderungen von Linux 3.17 berichtet. Das war möglich, weil die Hauptentwicklungsphase dieser Version bereits Mitte August endete:
Der nebenstehende Text fasst die wichtigsten Neuerungen dieser Artikel zusammen und gibt einen Ausblick auf einige Neuerungen, die in 3.18 einflieĂźen dĂĽrften.
Versiegelte Weitergabe
Über den neuen Funktionsaufruf memfd_create() können Programme jetzt einen File Descriptor anlegen, der auf einen anonymen Arbeitsspeicherbereich verweist. Das ebenfalls neue File Sealing versiegelt einen File Descriptor, was Änderungen an den darüber referenzierten Speicherbereichen unterbindet. Diese Funktionen wurden vornehmlich für den designierten D-Bus-Nachfolger Kdbus entwickelt, damit der Dienst zur Interprozesskommunikation (IPC) Daten nicht im Arbeitsspeicher hin und her kopieren muss. Es ist allerdings weiter unklar, ob und wann Kdbus in den Kernel einfließt.
Barrieren
Erheblich umgebaut haben die Kernel-Entwickler das bei 3.4 integrierte Dma-Buf, das Buffer zum Direct Memory Access (DMA) einrichtet, die mehrere Hardware-Bausteine und deren Treiber verwenden. Durch die Umbauten unterstützt der Code nun "Fences". Mit ihnen kann ein Treiber sicherstellen, dass etwa eine Webcam ein Einzelbild eines gerade aufgezeichneten Videos vollständig in einen Buffer schreibt, bevor der Grafikchip mit der Ausgabe der dort enthaltenen Daten beginnt. Solch eine Barriere vermeidet Bildstörungen, denn der Grafikchip gibt Müll aus, wenn er den Bildbuffer schneller liest, als ihn die Webcam füllt.
Die Fences haben aber auch noch andere Einsatzgebiete. Bei PC-Hardware sind sie beispielsweise fĂĽr moderne Hybridgrafiksysteme interessant, wo der Grafikkern des Prozessors ein Bild ausgibt, das ein zugeschalteter Grafikchip von AMD oder Nvidia berechnet hat.