Oracle-Unternehmen
DTrace bereits
eBPF ist ein in den Linux-Kernel integrierter Bytecode-Interpreter, der es Ihnen ermöglicht, Netzwerkbetriebshandler zu erstellen, den Systembetrieb zu überwachen, Systemaufrufe abzufangen, den Zugriff zu steuern, Ereignisse mit Zeitmessung zu verarbeiten (perf_event_open), Häufigkeit und Ausführungszeit von Vorgängen zu zählen und eine Ablaufverfolgung mithilfe von kprobes durchzuführen /uprobes /tracepoints. Dank der Verwendung der JIT-Kompilierung wird Bytecode im Handumdrehen in Maschinenanweisungen übersetzt und mit der Leistung von nativem Code ausgeführt. DTrace kann auf eBPF implementiert werden, ähnlich wie es auf eBPF implementiert wird
Die DTrace-Technologie wurde für das Betriebssystem Solaris entwickelt, um das Problem der dynamischen Verfolgung des Systemkernels und der Endanwendungen zu lösen und dem Benutzer die Möglichkeit zu geben, das Systemverhalten detailliert zu überwachen und Probleme in Echtzeit zu diagnostizieren. Während des Debugging-Prozesses beeinträchtigt DTrace nicht den Betrieb der untersuchten Anwendungen und beeinträchtigt in keiner Weise deren Leistung, sodass Sie die Analyse laufender Systeme im laufenden Betrieb organisieren können. Eine der Stärken von DTrace ist die Hochsprache D, ähnlich wie AWK, in der es viel einfacher ist, Tracing-Skripte zu erstellen, als die angebotenen Tools zum Schreiben von eBPF-Handlern in C, Python und Lua mit externen Bibliotheken zu verwenden.
Ingenieure von Oracle arbeiten ebenfalls an der Erstellung eines eBPF-Backends für GCC und haben bereits veröffentlicht
Zusätzlich zum Bytecode-Generierungs-Backend enthalten die vorgeschlagenen Patches für GCC auch einen libgcc-Port für eBPF und Tools zum Generieren von ELF-Dateien, wodurch es möglich wird, Code in der virtuellen eBPF-Maschine mithilfe von vom Kernel bereitgestellten Loadern auszuführen. Derzeit kann Code in der C-Sprache in Bytecode übersetzt werden (nicht alle Sprachfunktionen sind verfügbar), aber in Zukunft wird erwartet, dass die zur Verwendung verfügbaren C-Sprachfunktionen erweitert werden, Unterstützung für andere Sprachen hinzugefügt wird, ein Simulator erstellt wird usw Fügen Sie GCC-Unterstützung zum Debuggen von eBPF-Programmen hinzu, ohne sie in den Kernel zu laden.
Source: opennet.ru