Systeme: Neues in Linux-Kernel 4.0 und 4.1

Alte Schale, neuer Kern

In regelmäßigen Abständen veröffentlicht der Linux-Chefentwickler Linus Torvalds neue Kernel-Versionen, in die Code-Beiträge tausender Entwickler einfließen. Im Frühjahr 2015 wurde nun der Sprung auf die Kernel-Version 4.0 vollzogen. Was dieses Release und sein Nachfolger Anwendern bringen und für die Zukunft versprechen, ist hier nachzulesen.
Speicher muss nicht nur laufend größer werden, sondern auch schneller. In Zeiten von Virtualisierung und immer leistungsfähigeren Rechnern, die zeitnah auf ... (mehr)

Mal sehen, wieviel jetzt durch die neue Versionsnummer kaputtgeht", leitete Linus Torvalds seine E-Mail an die Kernel-Entwicklerliste ein, in der er den ersten Release-Kandidaten der neuen Kernel-Version 4.0 ankündigte. Dem ging eine Abstimmung voraus, in der Torvalds die Kernel-Community befragte, ob er in der Versionierung mit 3.20 fortfahren oder endlich wieder eine neue Major-Version starten solle.

Updates im laufenden Betrieb

Technisches Highlight des Kernels 4.0 ist das Live-Patching-Feature, das es ermöglicht, Kernel-Bugfixes ohne Reboot einzuspielen. Dafür gab schon einmal eine Lösung namens Ksplice, die als Open Source-Software von der gleichnamigen Firma angeboten, aber später von Oracle aufgekauft wurde. Dann ging Oracle dazu über, Ksplice nur noch als kostenpflichtigen Service für Kunden anzubieten.

Zwischenzeitlich arbeiteten Red Hat und Suse unabhängig voneinander an eigenen Lösungen, die im Lauf der Zeit in ein gemeinsames Projekt überführt wurden. Das Ergebnis dessen ist jetzt das Live-Patching-Feature, das im Linux-Kernel 4.0 zu finden ist. Später wollen beide Firmen ihre Linux-Distributionen an die neue Infrastruktur anpassen. Die Lösung ist minimalinvasiv, lässt also den bestehenden Kernel unangetastet, und verwendet das kerneleigene FTrace-Framework, um ihre Ziele zu erreichen (Bild 1). Derzeit gibt es nur eine Implementierung für x86-Prozessoren, aber Support für PowerPC, S360 und ARM ist bereits in Arbeit.

Im Bereich der Virtualisierung mit dem im Kernel eingebauten KVM-Hypervisor ist ein Meilenstein erreicht: Mit VirtIO 1.0 wird die OASIS-Spezifikation [1] für das Treibermodell umgesetzt, das für virtualisierte Netzwerk-, Storage- und andere Hardware eingesetzt wird. Auch bei KVM selbst haben die Entwickler einige Dinge optimiert, die je nach Situation für mehr Virtualisierungsperformance sorgen. Zum Beispiel unterstützt KVM auf Broadwell-Prozessoren von Intel nun Page Modification Logging, was die Verwaltung von Speicherseiten beschleunigt. Auch auf ARM64 wurde das Dirty Page Tracking verbessert.

Diverse kleine Verbesserungen gibt es bei den vielfältigen Linux-Dateisystemen zu verzeichnen, etwa beim auf Flash-Storage spezialisierten F2FS. Allerdings bietet es bisher gegenüber anderen Linux-Filesystemen auf SSD kaum einen Vorteil und hinkt hinsichtlich der Stabilität sogar noch hinterher. Chris Mason hat weiter am Btrfs-Dateisystem gearbeitet und Patches eingereicht, die den Support für RAID 5 und 6 verbessern sollen, auch wenn diese Arbeit immer noch nicht abgeschlossen ist. Besser sieht es bei den Netzwerkdateisystemen aus, wo der Kernel nun einen Parallel-NFS-Server (pNFS) bietet, der im Block-Modus arbeitet. Bisher funktioniert das Feature nur, wenn das zugrunde liegende Dateisystem XFS ist.

Ansonsten besteht der wesentliche Teil der Änderungen in der neuen Kernel-Version wie immer im Support neuer Hardware. So unterstützt Linux 4.0 neben einigen neuen ARM-Boards auch den System-on-a-Chip Quark von Intel und den neuen Mainframe z13 von IBM.

Ein Verweis auf die Zukunft ist die Implementierung des DAX-Modus (Direct Access), der Linux für die Zusammenarbeit mit nichtflüchtigem Speicher (NVM, non-volatile memory) vorbereiten soll. Anstelle der Kombination von RAM und Massenspeicher sollen dann große Mengen von NVRAM treten, die ähnlich niedrige Zugriffszeiten bieten wie RAM, aber Daten dauerhaft speichern. Ein Betriebssystem muss sich darauf einstellen und beispielsweise den bisher zwischen RAM und Massenspeicher angesiedelten Buffer Cache entfernen, der dann eher kontraproduktiv wäre. Auf der anderen Seite erfordert eine größe Menge von NVRAM eine Art Dateisystem, um die Verwaltung zu ermöglichen. Mit den Patches für den DAX-Modus im Kernel 4.0 ist dafür der Grundstein gelegt.

Bild 1: Mit dem FTrace-Framework leiten die Enwickler des Live-Patching-Features einen Funktionsaufruf auf eine Ersatzfunktion um.

Kernel 4.1 erhält Long Term Support

Weniger spektakuläre neue Features bietet der Kernel 4.1, der von Linus Torvalds am 21. Juni freigegeben wurde. Möglicherweise ist das aber eher von Vorteil, denn Greg Kroah-Hartman, einer der maßgeblichen Kernel-Entwickler, hat Linux 4.1 für den Long Term Support bestimmt, der bis 2017 gelten soll. Andere Kernel mit Long Term Support sind derzeit 2.6.32, 3.4, 3.10 und 3.14. Zwar sollte Linux 4.1 nach Plänen Kroah-Hartmans die Kernel-Implementation der DBus-Schnittstelle namens KDbus enthalten, aber daraus wurde nichts, denn Torvalds ist mit der bisherigen Implementation noch nicht zufrieden. Er stößt sich beispielsweise an der Verarbeitung der Kommandozeilenargumente des zugehörigen Kernel-Prozesses, die seiner Meinung nach zu Sicherheitslücken führen kann.

Keine Vorbehalte gab es gegen eine größere Aufräumaktion, in deren Verlauf der Assembler-Code des x86-Kernels grundlegend überarbeitet werden sollte. In einer "heldenhaften Anstrengung, Jahrzehnte alten Assembler-Spaghetticode zu entwirren", wie es Ingo Molnar nannte, haben eine Handvoll Entwickler über 100 Änderungen eingereicht. Ein Blick auf die Statistik des Kernels ist sowieso interessant: Es haben knapp 1500 Entwickler 486.000 Codezeilen hinzugefügt und 286.000 entfernt, was einem Wachstum von 200.000 Zeilen entspricht. Andere Statistiken, die etwa die fleißigsten Firmen und Entwickler auflisten, sind mit Vorsicht zu genießen, denn oft sind es die Maintainer eines bestimmten Subsystems, die in den Statistiken namentlich auftauchen.

Neu in Kernel 4.1 ist die transparente Verschlüsselung im Ext4-Dateisystem, die sich aber bisher nur auf die Datei-Inhalte bezieht und die Metadaten unverschlüsselt belässt. Das neue Feature wurde von Google implementiert, das die Dateisystemverschlüsselung in Android einsetzen möchte. Noch einmal gibt es neue Bugfixes für das Flash-Dateisystem F2FS (siehe oben). Schließlich wurde auch der reguläre RAID-Code für RAID 5 und 6 verbessert, was Performance-Verbesserungen bringen soll, auch wenn der Entwickler Neil Brown warnt: "Insbesondere RAID 5 ist sehr sensibel gegenüber Workloads ... also müssen wir mal abwarten und schauen." Einige Patches von Jens Axboe, dem bei Facebook angestellten Entwickler des Benchmark-Tools Fio, verbessern die Performance des neuen Multi-Queue Block Layer (siehe den Artikel auf S. 54). Die bereits oben angesprochene Unterstützung für NVM wurde weiter ausgebaut, beispielsweise indem ein neuer Treiber namens PMEM in den Kernel Eingang fand, der einen Speicherbereich als Block-Device behandelt.

Neben der üblichen Vielzahl neuer Treiber gibt es auch eine Reihe neuer Features im Bereich Performance-Tracing. So enthält der neue Kernel Support für das Intel-Prozessor-Feature Processor Trace, das in Broadwell-Prozessoren eingebaut ist. Entsprechende Userspace-Tools können die gesammelten Daten auswerten. Weiteren Einblick in den Kernel erlaubt ein neues Pseudo-Dateisystem namens TraceFS, dessen Code es in den Kernel 4.1 geschafft hat. Außerdem wurde der Enhanced Berkeley Packet Filter (eBPF) dahingehend erweitert, dass er sich nun mit KProbes zusammen verwenden lässt. Das eröffnet eine Vielzahl von Möglichkeiten. Ursprünglich sollte eBPF als Nachfolger des Berkeley Packet Filter (BPF) nur eine neue Schnittstelle für das Mitschneiden von Netzwerk-Paketen bieten. Dann wurde daraus eine In-Kernel-Virtual-Machine, über die sich an beliebigen Stellen im Kernel Tracepoints zur Performance-Untersuchung schalten lassen, die aber gleichzeitig eine große Sicherheit gegenüber Abstürzen bietet. Andere Erweiterungen des eBPF bringen die Paketfilter-VM mit der IPTables-Firewall und dem Traffic-Shaping-Framework TC zusammen.

Ähnliche Artikel

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023