In der GCC-Compiler-Suite enthalten
Neben einem Backend für die Bytecode-Generierung enthält GCC einen libgcc-Port für eBPF und Tools zum Generieren von ELF-Dateien, die es ermöglichen, Code in der virtuellen eBPF-Maschine mithilfe vom Kernel bereitgestellter Loader auszuführen. Patches zur Unterstützung von eBPF in GCC wurden von Ingenieuren von Oracle vorbereitet, die dies bereits getan hatten
Programme für eBPF können in einer Teilmenge der C-Sprache definiert, kompiliert und in den Kernel geladen werden. Vor der Ausführung überprüft der eBPF-Interpreter den Bytecode auf die Verwendung erlaubter Anweisungen und erlegt dem Code bestimmte Regeln auf (z. B. keine Schleifen).
Ursprünglich wurden LLVM-basierte Tools zum Kompilieren von eBPF unter Linux verwendet. Die eBPF-Unterstützung in GCC ist interessant, weil sie es Ihnen ermöglicht, ein Toolkit zum Erstellen des Linux-Kernels und der eBPF-Programme zu verwenden, ohne zusätzliche Abhängigkeiten zu installieren.
In Form von eBPF-Programmen können Sie Netzwerkbetriebshandler erstellen, Datenverkehr filtern, Bandbreite verwalten, Systeme überwachen, Systemaufrufe abfangen, den Zugriff steuern, die Häufigkeit und Zeit von Vorgängen zählen und mithilfe von kprobes/uprobes/tracepoints eine Ablaufverfolgung durchführen.
Source: opennet.ru