Compiler: LLVM-Backend für Kernel-VM soll stabil werden
Der Berkeley Packet Filter (BPF) ist seit 1997 im Linux-Kernel vorhanden und wurde bisher nur für Netzwerkanwendungen verwendet. Im vergangenen Jahr jedoch ist BPF zu einer Art "universeller virtueller Maschine" weiterentwickelt worden. Parallel dazu ist ein LLVM-Backend entstanden, das auf die neuen BPF-Funktionen zugreift. Letzteres soll nun als stabil gekennzeichnet werden, wie der Hauptverantwortliche Alexei Starovoitov erneut mitteilt(öffnet im neuen Fenster).
Sollte diesem Plan niemand widersprechen, wonach es derzeit aussieht, wird BPF als zusätzliches sogenanntes Target offiziell durch das kommende LLVM 3.7 unterstützt. Weitere Targets sind zum Beispiel klassische Hardware-Architekturen wie ARM oder x86. Wegen der eher minimalistischen Struktur von BPF ist auch der dazugehörige LLVM-Code verhältnismäßig klein. Dadurch werde vor allem garantiert, dass der Linux-Kernel das kompilierte Programm akzeptiere und bei der Ausführung nicht abstürze, heißt es in der ursprünglichen Ankündigung(öffnet im neuen Fenster).
BPF fürs Tracing und noch viel mehr
Auf dem Collaboration Summit der Linux Foundation Ende Februar dieses Jahres hat Starovoitov ausführlich erklärt (PDF)(öffnet im neuen Fenster), wofür die erweiterte BPF sowie das Backend genutzt werden könnten. Neben einer verbesserten Netzwerkarbeit kann BPF etwa für das Tracing eingesetzt werden, also die Ablaufverfolgung eines Programms. Dies sei schneller als bisher verwendete Kernel-Funktionen und könne gar zum Live-Debugging des Kernels verwendet werden. Ebenso könnten damit Latenzen von Festplatten überprüft werden.
Darüber hinaus könnte BPF auch zur Optimierung von Funktionen im Kernel genutzt werden, zum Modellieren sehr spezifischer Hardware und anderen verrückten Dingen. Starovoitov berichtet etwa davon, dass die Treiber von Netzwerkkarten BPF für den Userspace bereit stellen könnten, um darüber "hardwarespezifische Datenstrukturen zu konstruieren".
Wegen der vielen Möglichkeiten, die weit über die eines gewöhnlichen Paketfilters hinausgehen, ist von den Beteiligten eher scherzhaft auch ein neuer Namen mit der Abkürzung BPF vorgeschlagen worden: Black Flying Pony, wie der Netflix-Angestellte Brendan Gregg schreibt(öffnet im neuen Fenster). In Anlehnung an das Dtrace "Ponycorn" gibt es auch zu BPF ein passendes Maskottchen.
- Anzeige Hier geht es zum Handbuch für Softwareentwickler bei Amazon Wenn Sie auf diesen Link klicken und darüber einkaufen, erhält Golem eine kleine Provision. Dies ändert nichts am Preis der Artikel.


