Login
Newsletter
Werbung

Do, 11. Oktober 2018, 16:15

Software::Kernel

BPFtrace als Nachfolger für DTrace vorgestellt

Linux erhält ein neues Werkzeug für das Tracing von Kernel und Anwendungen. BPFtrace wird als Nachfolger für DTrace positioniert und nutzt die bereits im Kernel vorhandenen Möglichkeiten, insbesondere eBPF.

Larry Ewing

Tracing steht in der Liste der Anforderungen von Unternehmen ziemlich weit oben. So ist es kein Wunder, dass Linux im Lauf der Jahre unter anderem mit SystemTap und Dynamic Probes und dem im Linux-Kernel selbst entstandenen Perf-Subsystem entsprechende Möglichkeiten erhielt. Doch unbestritten das beste Trace-Werkzeug ist zur Zeit DTrace, das für Solaris entwickelt, inzwischen aber auch auf Linux portiert und am 1. August 2017 von Oracle unter die GPLv2 gestellt wurde. Das Problem ist, dass DTrace zwar vollständig in den Oracle-Linux-Kernel integriert ist, aber noch nicht in den offiziellen Kernel, und das wohl noch ein hartes Stück Arbeit sein wird.

Vielleicht wird die Arbeit aber auch unnötig. Denn Brendan Gregg, einer der ursprünglichen Entwickler von DTrace, hat jetzt die erste Ausgabe von BPFtrace vorgestellt und es als DTrace 2.0 bezeichnet. Das Programm wurde von Alastair Robertson entwickelt und bietet eine zu DTrace analoge Bedienung, wobei es im Hintergrund die vorhandene Linux-Funktionalität nutzt. Und diese setzt weitgehend auf den »enhanced Berkeley Packet Filter (eBPF) auf, der eine einfache Sprache in Bytecode umsetzt und an strategischen Stellen im Kernel ausführen lassen kann.

Der seit Linux 4.x vorhandene eBPF ist eine Erweiterung von BPF und kam von den BSD-Systemen. Ursprünglich zur Filterung von Netzwerkpaketen entwickelt, finden die Linux-Entwickler immer mehr Anwendungen außerhalb des Netzwerk-Codes, nicht nur für das Tracing. Zur Zeit laufen auch Bemühungen, eBPF wieder auf BSD zurückzuportieren. eBPF ist leistungsfähiger als DTrace. Auch wenn der aktuelle Stand von BPFTrace noch nicht gleichauf mit DTrace ist, wird in absehbarer Zeit die Bezeichnung »DTrace 2.0« gerechtfertigt sein.

BPFTrace hat noch keine offizielle Veröffentlichung gesehen, kann aber von Interessierten aus dem Github-Repositorium bezogen werden. Es baut auf die Kernel-Fähigkeiten sowie die BPF Complier Collection (bcc) auf, die ihrerseits LLVM nutzt. Laut Gregg verliert damit DTrace nicht an Wert, es ist auch denkbar, dass DTrace für die Nutzung von eBPF ertüchtigt wird. Vielleicht bleibt damit von DTrace auf lange Sicht nur das Frontend, das mit BPFTrace konkurriert, während die Kernel-Seite bei beiden identisch ist.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung