Filtertechnik: Microsoft baut Linux' eBPF für Windows
Die eBPF-Technik ermöglicht tiefe Einsichten in Kernel-Funktionen wie das Netzwerk und Tracing. Microsoft verspricht Linux-Kompatibilität.

Microsoft hat das in den vergangenen Jahren für Linux erstellte eBPF auf Windows portiert, wie das Unternehmen in seinem Open-Source-Blog ankündigt. Bei eBPF handelt es sich um eine mittlerweile fast universell einsetzbare virtuelle Maschine (VM) im Linux-Kernel selbst, die aus dem Berkeley Packet Filter (BPF) hervorgegangen ist. Microsoft beschreibt die Technik als "revolutionär", die "Programmierbarkeit, Erweiterbarkeit und Agilität" biete.
Die nun von Microsoft größtenteils als Open Source vorgestellte Umsetzung von eBPF läuft auf Windows 10 und Windows Server 2016. "Ziel ist es, Entwicklern die Verwendung vertrauter eBPF-Werkzeuge und APIs zusätzlich zu vorhandenen Windows-Versionen zu ermöglichen. Aufbauend auf der Arbeit anderer übernimmt dieses Projekt mehrere vorhandene eBPF-Open-Source-Projekte und fügt Glue Code hinzu, damit sie unter Windows ausgeführt werden können."
Der Aufbau und Ablauf des eBPF-Ports auf Windows ähnelt dabei auch der Linux-Technik. So werden mit einem Compiler schlicht die benötigten Programme in das notwendige Bytecode-Format übersetzt, die dann auch Zugriff auf eBPF-Schnittstellen haben. Dieser Bytecode wiederum wird verifiziert und in einer abgesicherten Userspace-Umgebung ausgeführt. Letztlich landet der Code dann entweder JIT-kompiliert oder nativ direkt im Kernel und hat dort Zugriff auf bestehende Techniken.
Übergreifender Support geplant
Bisher umgesetzt hat das Windows-Team die Anbindung an Netzwerk-Sockets sowie an XDP. Dabei handelt es sich zwar noch ausschließlich um Netzwerktechnik, das Team von Microsoft geht aber davon aus, dass künftig weitere Helferfunktionen hinzukommen werden. Auch unter Linux hat sich eBPF schnell von einer reinen Netzwerktechnik wegentwickelt und immer mehr Nutzungsszenarien unterstützt.
In der Ankündigung heißt es außerdem: "Ziel ist es, Quellcode-Kompatibilität für Code bereitzustellen, der allgemeine Hooks und Helfer verwendet, die für alle Betriebssystem-Ökosysteme anwendbar sind". Einige bestehende eBPF-Programme nutzen aber natürlich spezifische Linux-Techniken wie bestimmte Datenstrukturen, was sich nicht auf Windows übertragen lässt.
Auf Grundlage von eBPF unter Linux ist etwa das Cilium-Projekt entstanden, das weitreichende Netzwerk- und Sicherheitsfunktionen etwa für den Containereinsatz bereitstellt. Cloudflare nutzt eBPF darüber hinaus, um DDoS-Angriffe zu erkennen. Ebenso sind inzwischen einige verschiedene Tracing-Programme auf Grundlage von eBPF entstanden wie BPFtrace oder Canonicals Etrace. Der Code von eBPF auf Windows steht auf Github zum Download bereit.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed