Kapitel 3. Anatomie eines eBPF-Programms

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Im vorherigen Kapitel hast du ein einfaches eBPF-"Hello World"-Programm gesehen, das mit dem BCC-Framework geschrieben wurde. In diesem Kapitel gibt es eine Beispielversion eines "Hello World"-Programms, das komplett in C geschrieben wurde, damit du sehen kannst, um welche Details sich BCC hinter den Kulissen gekümmert hat.

Dieses Kapitel zeigt dir auch, welche Etappen ein eBPF-Programm auf seinem Weg vom Quellcode bis zur Ausführung durchläuft (siehe Abbildung 3-1).

C (or Rust) source code is compiled into eBPF bytecode, which is either JIT-compiled or interpreted into native machine code instructions
Abbildung 3-1. C- (oder Rust-) Quellcode wird in eBPF-Bytecode kompiliert, der entweder JIT-kompiliert oder in native Maschinencodebefehle interpretiert wird

Ein eBPF-Programm ist ein Satz von eBPF-Bytecode-Anweisungen. Es ist möglich, eBPF-Code direkt in diesem Bytecode zu schreiben, so wie man auch in Assembler programmieren kann. Für Menschen ist eine höhere Programmiersprache in der Regel einfacher zu handhaben. Zumindest zum Zeitpunkt der Erstellung dieses Artikels würde ich sagen, dass die große Mehrheit des eBPF-Codes in C geschrieben wird1 geschrieben und dann zu eBPF-Bytecode kompiliert.

Dieser Bytecode läuft in einer virtuellen eBPF-Maschine innerhalb des Kernels.

Die virtuelle Maschine eBPF

Die virtuelle eBPF-Maschine ist, wie jede ...

Get eBPF lernen now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.