Zum Hauptinhalt Zur Navigation

Betriebssysteme: Linux 4.13 optimiert Dateizugriffe und kann jetzt TLS

Linux 4.13 ist freigegeben worden. Viele Änderungen in dieser Ausgabe des Kernels betreffen diverse Dateisysteme und bislang noch nicht erhältliche Grafikchips . Der Kernel-Linux kann künftig TLS-Verbindungen selbst übernehmen.
/ Jörg Thoma
15 Kommentare News folgen (öffnet im neuen Fenster)
Linux 4.13 ist fertig. (Bild: Ville Miettinen)
Linux 4.13 ist fertig. Bild: Ville Miettinen

Die integrierte Grafikeinheit in AMDs mobilem Prozessor Raven Ridge gehört ebenso dazu wie dessen Grafikchip mit dem Codenamen Vega: Der Code für die Unterstützung dieser Hardware macht den größten Teil der eingereichten Änderungen für Linux 4.13 aus. Aber auch Intels Prozessoren der nächsten Generation mit den Namen Coffee Lake und Cannon Lake erhalten Patches. Das bereits als Treiber integrierte Windows Management Instrumentation (WMI) bekommt seinen eigenen Bus und der Kernel kann TLS-Verbindungen selbst übernehmen. Linus Torvalds hat den Code von Linux 4.13 jetzt freigegeben(öffnet im neuen Fenster) .

Wichtigste Änderung für Torvalds: Standardmäßig wird Version 3 des Netzwerkprotokolls Windows Server Message Block (SMB/CIFS) verwendet, statt wie bisher Version 1. Damit folgt Torvalds dem dringenden Rat Microsofts, denn die veraltete Version SMB1 hat schwer behebbare Schwächen, die unter anderem für die Verbreitung des Erpressungstrojaners Wanna Cry genutzt wurden. Wer die älteren Versionen unbedingt nutzen will, kann vers=1.0 oder vers=2.1 als Mount-Option hinzufügen.

Was der ordentlichen Unterstützung für AMDs Vega aber immer noch fehlt, ist der DC-Code (Display Core), dessen Aufnahme nach wie vor von der Linux-Community verweigert wird . Nur damit lassen sich HDMI-Audio, kernelgesteuerte Bildschirmauflösungen und überhaupt die Ausgabe auf dem Bildschirm realisieren. In der Beschreibung des jetzt eingereichten Codes(öffnet im neuen Fenster) fehlt weiterhin jeglicher Hinweis, ob und wann das geschehen wird. Nebenbei wurden einige Funktionen im Treiber verbessert, etwa im Direct Rendering Manager (DRM). Es gibt aber eine Todo-Liste(öffnet im neuen Fenster) , in dem AMD-Entwickler eine Liste der streitbaren Code-Teile auflisten, an denen sie noch arbeiten wollen.

Stereoskopie für Nvidia

Der Treiber für Intels Grafikeinheiten bekommt größtenteils nur kleine Korrekturen für aktuelle Chips, aber auch Code für die kommenden Prozessoren Coffee Lake, die in den nächsten Monaten erwartet werden . Auch die Grafikeinheit des für Ultrabooks und 2-in-1-Geräte gedachten Prozessors Cannon Lake bekommt unterstützenden Code. Die Unterstützung beider Grafikeinheiten ist jedoch noch nicht vollständig. Im Gegensatz zu Coffee Lake, dessen Grafikeinheit Gen9 denen ähnelt, die bereits in den Prozessoren Skylake und Kaby Lake enthalten sind und deswegen nur noch wenige Änderungen zur vollständigen Unterstützung benötigen, braucht es für den Grafikchip Gen10 in den Cannon-Lake-Prozessoren aber noch einige Anpassungen, bis auch diese funktionieren.

Wer es braucht, darf sich über die Unterstützung von stereoskopischem 3D im freien Treiber Nouveau für neuere Grafikchips von Nvidia freuen. Um die Unterstützung für die Vulkan-API zu verbessern, erhält der DRM-Kern die Möglichkeit, die Aktivitäten zwischen GPU und Anwendungen zu synchronisieren. Zudem wurde der VC4-Treiber für das Raspberry Pi um einige Funktionen erweitert, etwa, um die Steuerung des Energieverbrauchs über HDMI zu verbessern.

Der Kernel kann TLS

Künftig werden TLS-Verbindungen vom Kernel selbst verschlüsselt(öffnet im neuen Fenster) . Das soll den Datendurchsatz von verschlüsselten Verbindungen per HTTPS deutlich steigern. Dabei werden die Systemlast und Latenzen gesenkt. Der Kernel beherrscht aber lediglich symmetrische Verschlüsselung. Daher muss der Verbindungsaufbau, der asymmetrische Verschlüsselung verlangt, weiterhin Anwendungen wie OpenSSL überlassen werden. OpenSSL unterstützt aber bislang die als Kernel TLS (KTLS) bezeichnete Schnittstelle nicht. Die dafür eingereichten Patches werden noch begutachtet. Später soll OpenSSL nach erfolgreichem Verbindungsaufbau den Datentausch per TLS an den Linux-Kernel überreichen.

Canonicals großes Update für das Sicherheitsframework Apparmor hat es nach einigem Hin und Her endlich in den Kernel geschafft. Zu den neuen Funktionen gehören etwa symbolische Links für SecurityFS sowie die Möglichkeit des Domain-Labelings. Erwähnenswert ist auch der Umbau am Zufallszahlengenerator, der jetzt erst dann Werte liefert, wenn er genügend Entropie hat. Zudem bietet der Kernel mehr Schutz bei potenziellen Pufferüberläufen beim Abarbeiten von Zeichenketten, die in Funktionen in der C-Bibliothek string.h definiert sind.

Einen größeren Umbau hat der Thunderbolt-Stack erhalten. Im Mittelpunkt stand dabei die Unterstützung für das Security-Level der Schnittstelle. Zumindest der Kernel kann Thunderbolt-Geräte neuerdings mit erweiterten Sicherheitsfunktionen einbinden. Bislang mussten Linux-Nutzer im Bios den Sicherheitsmodus deaktivieren, um Thunderbolt-Geräte zu nutzen. Das wiederum legte den gesamten Arbeitsspeicher für Thunderbolt-Geräte offen .

Virtualbox-Treiber sind noch nicht fertig

Künftig kann der Linux-Kernel den Internal Connection Manager verwenden, der in der Firmware neuerer Thunderbolt-Geräte steckt, etwa von Intel. Was jetzt noch fehlt, ist die Unterstützung durch die Linux-Desktops, etwa durch eine Abfrage, welche Berechtigungen ein angeschlossenes Thunderbolt-Gerät erhalten soll. Mit den Änderungen lässt sich auch NVE-Firmware aktualisieren.

Noch nicht fertig sind Treiber für Oracles Virtualisierungssoftware Virtualbox. Neben dem Grafiktreiber sollen auch weitere Treiber für die virtualisierte Hardware von Virtualbox künftig direkt im Kernel landen. Bisher mussten für Linux-Gäste die Treiber entweder aus den Softwarequellen der jeweiligen Distribution nachgeladen – falls sie dort angeboten werden – oder über die mitgelieferten CD-Isos installiert werden, was nicht immer reibungslos funktioniert. Die Kernel-Oberen sind mit dem eingereichten Code aber noch nicht zufrieden, weshalb er vorerst im Staging-Bereich gelandet ist und dort auf Verbesserungen wartet.

Mehr Speicher und optimierte Dateisysteme

Das bereits in Linux 4.11 integrierte Statx, das neue Systemaufrufe für Dateiinformationen bereitstellt, wird jetzt von Btrfs sowie den speziell für Flash-Speicher konzipierten Dateisystemen F2FS und UBIFS (Unsorted Block Image File-System) unterstützt. F2FS erhält darüber hinaus die Unterstützung für Benutzer- und Gruppen-Quotas.

Im Dateisystem Ext4 hat sich einiges getan. Die Obergrenze für Einträge in einem einzelnen Verzeichnis wurde von etwa 10 Millionen auf etwa 2 Milliarden Einträge erhöht. Das ist besonders bei verteilten Dateisystemen wichtig, entsprechend kam der Code für die als Largedir bezeichnete Erweiterung von den Lustre-Entwicklern.

Die Ext4-Hacker warnen jedoch vor Leistungseinbrüchen, wenn tatsächlich so viele Dateien in einem Verzeichnis untergebracht werden. Außerdem können erweiterte Attribute (Extended Attributs) künftig in einem eigenen Inode mit bis zu 64 KByte gespeichert werden. Zusätzlich lassen sich identische Attribute deduplizieren. Durch diese Zusammenlegung wird Speicherplatz gespart und auch die Leistung erhöht, da weniger zwischengespeichert werden muss.

Lebenszeiten von Dateien

Wer SSDs mit der Discard-Option einbindet, darf sich ebenfalls über eine Leistungssteigerung freuen, denn Ext4 arbeitet sie künftig parallel ab. Die dabei an Datenträger beim Löschen von Dateien gemeldeten freien Bereiche sollen laut Entwickler deutlich schneller gemeldet werden. Ebenso wie F2FS kann Ext4 nicht nur die Verschlüsselung mit 256-Bit AES verwenden, sondern auch 128-Bit AES, damit weniger leistungsfähige Prozessoren, etwa auf eingebetteten Systemen, effizienter verschlüsseln können.

Ebenfalls für mehr Geschwindigkeit sollen die sogenannten Lifetime-Hints des Block-Layer-Treibers sorgen. Anwendungen können dem Kernel damit melden, wie lange eine zu speichernde Datei auf NVMe-Datenträgern verbleiben soll. Dann sorgt der Block-Layer-Treiber dafür, dass ein möglichst günstiger Platz für die Datei auf dem Datenträger gefunden wird.

Genauere Fehlermeldungen

Der Block-Layer-Treiber sorgt künftig auch dafür, dass anstelle des bisherigen allgemeinen I/O Errors genauere Fehlermeldungen von Datenträgern an Dateisysteme beziehungsweise an Anwendungen weitergegeben werden. Damit einhergehen auch genauere Fehlercodes, die der Entwickler Christoph Hellweg anderen üblichen Codes entlehnt hat. Ein Artikel bei LWN(öffnet im neuen Fenster) erläutert die genaue Vorgehensweise.

Im Übrigen haben die Kernel-Entwickler die Vergabe von Universally Unique Identifiers (UUIDs) konsolidiert. Jetzt gibt es nur noch zwei Typen, zahlreiche Funktionen wurden zusammengefasst und diverse Subsysteme an die neue API angepasst. Für Anwender bleiben diese Änderungen aber weitgehend unsichtbar.

Klügere Schlafmodi und erweiterte Treiberunterstützung

Um dem Linux-Kernel die Entscheidung zu erleichtern, wann er den Prozessor in welchen Schlafmodus schicken soll, gibt es jetzt Next-interrupt prediction. Der Algorithmus soll besser voraussagen können, wann sich Peripheriegeräte per IRQ melden. Zudem wurde die PCI/ACPI-Infrastruktur verbessert, über die Geräte das System aus dem Schlafmodus aufwecken können.

Außerdem wird die aktuelle CPU-Frequenz auf x86-Systemen nicht mehr in /proc/cpuinfo exportiert, da die Informationen zu unzuverlässig sind. Stattdessen werden diese Werte künftig ausschließlich über Sysfs exportiert, und zwar auch unabhängig davon, welcher Cpufeq-Treiber verwendet wird. Zudem wurde der Treiber für Intels P-States überarbeitet und verbessert.

Besser schlafen gelegt und aufgeweckt

Apropos ACPI: Das in Linux bereits verwendete Windows Management Instrumentation (WMI) bekommt jetzt einen eigenen Bus. WMI wird vor allem benötigt, um Informationen bestimmter Hardware aus der ACPI-Tabelle des Bios auszulesen. Diese Informationen stehen vor allem für spezielle Funktionen auf Laptops zur Verfügung. Treiber können darauf zugreifen, um beispielsweise die Helligkeit zu steuern oder spezielle Tastaturbefehle zur Verfügung zu stellen.

Der Schlafzustand Suspend-to-Idle (S2I) wird künftig besser unterstützt. Dadurch soll das Aufwachen mit Hilfe des Ein- und Ausschalters in modernen Laptops besser unterstützt werden. Damit der Linux-Kernel den Prozessor zuverlässiger in den richtigen Schlafmodus setzen kann, wurde neuer Code in die Energieverwaltung eingefügt, der besser voraussagt, wann Hardware einen Interrupt auslöst. Zudem wurde das Avanced Configuration and Power Interface (ACPI) auf Version 6.2 aktualisiert und kann jetzt den Kernel über Speicherfehler in NVDIMMs informieren.

Die aktuelle Version des Linux-Kernels kann unter kernel.org(öffnet im neuen Fenster) heruntergeladen werden. Canonicals Linux-Distribution Ubuntu 17.10 wird eine der ersten sein , die den neuen Kernel integriert.


Relevante Themen