Original-URL des Artikels: https://www.golem.de/news/compiler-llvm-backend-fuer-kernel-vm-soll-stabil-werden-1506-114553.html    Veröffentlicht: 09.06.2015 14:07    Kurz-URL: https://glm.io/114553

Compiler

LLVM-Backend für Kernel-VM soll stabil werden

Mit BPF steht im Linux-Kernel mittlerweile eine Art universelle VM bereit. Ein darauf aufbauendes LLVM-Backend soll nun stabil werden. Helfen soll das unter anderem beim Debuggen von Anwendungen.

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.

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.

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), 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. In Anlehnung an das Dtrace "Ponycorn" gibt es auch zu BPF ein passendes Maskottchen.  (sg)


Verwandte Artikel:
Bpfilter: Linux-Kernel könnte weitere Firewall-Technik bekommen   
(22.02.2018, https://glm.io/132933 )
Systemanalyse: Wie Dtrace auf Linux kommen könnte   
(15.02.2018, https://glm.io/132799 )
Google: Chromebooks bekommen "Linux-VMs" und "Terminal"   
(27.02.2018, https://glm.io/133030 )
LLVM 6.0: Clang bekommt Maßnahme gegen Spectre-Angriff   
(09.03.2018, https://glm.io/133241 )
Freedreno: Google will Mainline-Linux-Support für Snapdragon 845   
(14.02.2018, https://glm.io/132774 )

© 1997–2018 Golem.de, https://www.golem.de/