Linux 5.0 ist da: Geschwindigkeit zurückerobern und moderner speichern

Seite 3: Größere Schrift, russischer Hash-Algorithmus, Umstieg beim Block-Layer

Inhaltsverzeichnis

Screenshot der 12x24-Bold-Variante von Terminus.

(Bild: terminus-font.sourceforge.net )

Die erstmals beiliegende Schriftart "Terminus 16x32" verhilft Textkonsolen auf HiDPI-Displays zu einer adäquaten Größe. Das ist vor allem für Bootprozess und Embedded-Systeme interessant, schließlich kann man eine solche Schrift bei älteren Kernel bereits zur Laufzeit einstellen. Viele Distributionen bringen dazu die zu besonders hochauflösenden Bildschirmen gut geeignete Terminus schon mit. Details hierzu finden sich in den Tipps & Tricks der c’t 4/19.

Linux beherrscht jetzt die Stromchiffren XChaCha12 (1, 2, 3, 4) und XChaCha20 (1, 2, 3, 4, 5) sowie den Hash-Algorithmus Nhpoly1305. Auf ihnen baut der Support für den erstmal unterstützten Verschlüsselungsalgorithmus Adiantum auf. Diesen können Dm-Crypt/Cryptsetup/LUKS und das von Ext4 und F2FS verwendete Fscrypt jetzt nutzen, um Daten zu ver- und entschlüsseln.

Adiantum stammt von Google und wurde für leistungsschwache Android-Geräte entwickelt, denen Kryptobeschleuniger für das heute üblicherweise bei der Datenträgerverschlüsselung verwendete AES fehlen. Ursprünglich hatte das Unternehmen geplant, das von der National Security Agency (NSA) entwickelte und dadurch viel kritisierte Speck zu nutzen. Kaum dass Mitarbeiter von Google den Speck-Support in den Linux-Kernel 4.18 und 4.19 integriert hatten, verkündete das Unternehmen allerdings eine Kehrtwende und stellte wenig später HPolyC vor. Daraus ging Adiantum hervor, das Google einige Wochen nach der Aufnahme für Linux 5.0 im Februar offiziell vorgestellt hat. Adiantum soll letztlich sogar schneller als Speck sein, das bei Linux 4.20 wieder entfernt wurde, weil niemand sonst Interesse daran zeigte.

Apropos NSA: Linux unterstützt nun auch den in RFC 6986 definierten Hash-Algorithmus Streebog, der zu den russischen Standardalgorithmen für Kryptografie ("GOST Algorithmen") zählt. Er wurde vom russischen Inlandsgeheimdienst FSB als Alternative zu SHA-3 mitentwickelt. Genau wie bei der von der NSA beigesteuerten und schon lange in Linux enthaltenen Sicherheitstechnik SELinux sind solche Ursprünge aber kein Ablehnungsgrund, solange die Implementierung sauber scheint. Kurz vor der Fertigstellung von Linux 5.0 gab ein Sicherheitsforscher allerdings bekannt, dass der eng mit Streebog verwandte Verschlüsselungsalgorithmus Kuznyechik eine Struktur enthalten, die nirgends erklärt wird. Es wird spekuliert, ob es sich dabei um eine Hintertür handeln könnte. Ob das noch Auswirkungen auf den Support in Linux hat, bleibt abzuwarten.

Einige weitere Neuerungen rund um Sicherheitstechniken nennen Git-Merge-Kommentare der Subsysteme Audit, Crypto, Integrity (1a, 1b), Selinux und TPM.

Die Kernelentwickler haben den älteren der beiden Block-Layer-Ansätze rausgeworfen (u. a. 1, 2); damit verschwinden auch I/O-Scheduler wie Deadline und CFQ, die viele Admins vom Performance-Tuning kennen. Wer Datenträgerzugriffe optimieren will, muss sich daher mit dem neueren, seit Linux 3.13 im Kernel enthaltenen Ansatz auseinandersetzen – dem Multi-Queue Block IO Queueing Mechanism (Blk-Mq), der mit mehreren Warteschlangen arbeitet und nun die Basis der gängigen Storage-Treiber bildet. Der zugehörige Scheduler Mq-Deadline arbeitet ähnlich wie der entfernte Namensverwandte und ist daher recht simpel und vorhersehbar. Komplexer ist der im weiteren Sinne aus CFQ hervorgegangene und bei Linux 4.12 integrierten BFQ, der die anstehenden I/O-Aufgaben eher mal umsortiert oder wartet, um Reaktionsgeschwindigkeit oder Durchsatz zu steigern.

Auf Btrfs-Dateisystemen lassen sich jetzt Auslagerungsdateien ablegen. Das ist für Distributionen wie Ubuntu interessant, die standardmäßig mit Swap-Files statt Swap-Partitionen arbeiten. Das Ganze klappt aber nur unter bestimmten Bedingungen, daher darf das Btrfs-Volume beispielsweise nur aus einer Partition bestehen.

Der neben Virtio-SCSI vielfach beim Virtualisieren eingesetzte Storagetreiber Virtio-Blk kann den Host nun per Discard darüber informieren, wenn Speicherbereiche virtueller Datenträger keine Daten mehr enthalten, weil dort liegende Dateien gelöscht wurden. Das kann Performance und Lebensdauer von SSDs verlängern, wenn der Host das per Trim-Befehl an die SSD weitergibt. Außerdem ist das Ganze interessant, um den Platzbedarf der Images von virtueller Maschinen (VMs) zu senken.

Linux bringt jetzt einen Client (auch Initiator oder Host genannt) und einen Server (Target) mit, um über TCP-Verbindungen auf NVMe-Datenträger zuzugreifen (NVMe over Fabrics).

Einige weitere Neuerungen rund um Dateisysteme und Storage-Support nennen die wichtigsten Git-Merges der Subsysteme Block (1, 2), Btrfs, CIFS, Ceph, Device Mapper, Ext4 (1, 2), F2FS, Fsnotify, GFS2, Libnvdimm, NFS, NFSd, Pstore, SCSI, XFS. Einige Änderungen bei der Locking-Infrastruktur versprechen zudem Performance-Verbesserungen in Situationen, wo viele Tasks auf Freigabe des gleichen Dateilocks warten.