Kernel-Log – Was 3.0 bringt (1): Netzwerk

Ein Just in Time Compiler verspricht schnelleres Filtern von Netzwerkpaketen. Der WLAN-Stack beherrscht jetzt Wake on Wireless LAN und unprivilegierte Nutzer dürften "pingen". Neue und überarbeitete Treiber verbessern die Unterstützung für Netzwerkbausteine von Ralink und Realtek.

In Pocket speichern vorlesen Druckansicht 6 Kommentare lesen
Lesezeit: 16 Min.
Von
  • Thorsten Leemhuis
Inhaltsverzeichnis

Zum Wochenstart hat Linus Torvalds die zweite Vorabversion von Linux 3.0 veröffentlicht. Nach dem recht überraschenden Versionssprung von 2.6.39 auf 3.0 identifiziert sich auch der RC2 aus Kompatibilitätsgründen intern als Vorabversion von Linux 3.0.0, obwohl der Kernel später die Bezeichnung 3.0 tragen soll. In der Freigabe-Mail zum RC2 schreibt Torvalds, es sei einigermaßen ruhig gewesen, obgleich ein Btrfs-Update etwas größer gewesen sei als gehofft; er hofft, die Dinge bleiben so ruhig.

Wie vorgesehen ist damit auch diesmal das Gros der Änderungen für die nächste größere Kernel-Überarbeitung im Rahmen des Merge Window in den Hauptentwicklungszweig von Linux eingezogen. Da von nun an nur mehr Korrekturen und kleine Verbesserungen einziehen dürften, kann das Kernel-Log bereits einen umfassenden Überblick über die wichtigsten Neuerungen des Mitte oder Ende Juli erwarteten Linux 3.0 geben.

Die Artikel der Serie "Was 3.0 bringt" werden sich dabei nach und nach den unterschiedlichen Funktionsbereichen des Kernels annehmen. Den Anfang der Serie macht die folgende Beschreibung der wichtigsten Änderungen am Netzwerk-Stack und den darauf aufsetzenden Treibern. In den kommenden Wochen folgen Artikel zur Grafik-Treibern, Storage-Unterstützung, Dateisystemen, Architektur-Code, Infrastruktur sowie Treibern für andere Hardware.

Zum Netfilter-Code gehört jetzt ein "Berkeley Packet Filter Just in Time Compiler" für x86-64-Systeme. [Update 20110614-0845] Er erzeugt zur Laufzeit Assembler-Code, der einige Aufgaben zum Filtern von Netzwerkpaketen übernimmt, die etwa Sniffer-Werkzeuge wie Tcpdump den Kernel erledigen lassen. [/Update] Der standardmässig deaktivierte JIT-Compiler lässt sich einschalten, indem man den Wert 1 in die Datei /proc/sys/net/core/bpf_jit_enable schreibt. Bei einer früheren Version des Compilers hat dessen Entwickler eine Beschleunigung um 50 Nanosekunden pro Paket messen können. Weitere Hintergründe zum Ansatz liefert ein LWN.net-Artikel.

Samba-Entwickler Anton Blanchard hat den neuen Syscall sendmmsg eingebracht. Er stellt das Sende-Äquivalent zu recvmmsg dar und ermöglicht das Versenden eines Schwungs von Nachrichten mit nur einem Funktionsaufruf. Das reduziert den Syscall-Overhead und kann den Netzwerk-Durchsatz steigern: laut Messungen des Entwicklers um bis zu 20 Prozent bei UDP-Übertragungen und 30 Prozent beim Einsatz von Raw Sockets.

Ping-Programme können den neuen Socket IPPROTO_ICMP nutzen, um unprivilegierte Anwender das Senden und Empfangen von ICMP_ECHO-Paketen zu ermöglichen; bisher benötigt Ping unter Linux für seine Arbeit Root-Rechte oder erhält durch Capabilities die nötigen Rechte zum Erledigen seiner Arbeit. MacOS X bietet eine ähnliche Funktion schon seit längerem; der Commit-Kommentar und ein kurzer LWN.net-Artikel erläutern einige Hintergründe.

Zum Kernel stieß ein Netzwerk-Scheduler, der das Verfahren Quick Fair Queue (QFQ) implementiert, das einen geringen Overhead haben soll. Über den neuen Syscall setns lässt sich ein Namespace erzeugen, der sich an verschiedene Prozesse übergeben lässt; das soll laut Git-Pull-Request unter anderem ein Isolieren von VPN-Verbindungen ermöglichen. Hintergründe zu dem auch für Container-Virtualisierung interessanten Verfahren liefert ein LWN.net-Artikel. Der Bluetooth-Stack unterstützt jetzt Extended Inquiry Response (EIR), der Bluetooth-USB-Treiber das MacBookPro "8,2". Der LAN-Treiber r8169 spricht ab 3.0 die Realtek-Chips RTL8105, RTL8111E, RTL8168E und RTL8168DP an (1, 2, 3), der Treiber tg3 den Broadcom-Chip 5720.