Kapitel 5. CO-RE, BTF und Libbpf

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 zum ersten Mal BTF (BPF Type Format) kennengelernt. In diesem Kapitel erfährst du, warum es existiert und wie es verwendet wird, um eBPF-Programme über verschiedene Versionen des Kernels hinweg portabel zu machen. BTF ist ein wichtiger Bestandteil des BPF-Ansatzes "Compile Once, Run Everywhere" (CO-RE), der das Problem der Portabilität von eBPF-Programmen über verschiedene Kernel-Versionen hinweg löst.

Viele eBPF-Programme greifen auf Datenstrukturen des Kernels zu, und ein eBPF-Programmierer müsste die entsprechenden Linux-Header-Dateien einbinden, damit sein eBPF-Code die Felder in diesen Datenstrukturen korrekt finden kann. Der Linux-Kernel wird jedoch ständig weiterentwickelt, was bedeutet, dass sich die internen Datenstrukturen zwischen verschiedenen Kernel-Versionen ändern können. Wenn du eine eBPF-Objektdatei nimmst, die auf einem Rechner kompiliert wurde1 kompilierte eBPF-Objektdatei auf einen Rechner mit einer anderen Kernelversion laden, gibt es keine Garantie dafür, dass die Datenstrukturen identisch sind.

Der CO-RE-Ansatz ist ein großer Schritt nach vorn, um dieses Problem der Portabilität auf effiziente Weise zu lösen. Er ermöglicht es eBPF-Programmen, Informationen über die Datenstrukturen, mit denen sie kompiliert wurden, einzubinden, und bietet einen Mechanismus, um den ...

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.