Inclòs a la suite de compiladors GCC
A més d'un backend per a la generació de bytecode, GCC inclou un port libgcc per a eBPF i eines per generar fitxers ELF que permeten executar codi a la màquina virtual eBPF mitjançant carregadors proporcionats pel nucli. Els pedaços per donar suport a eBPF a GCC van ser preparats pels enginyers d'Oracle, que ja ho havien fet
Els programes per a eBPF es poden definir en un subconjunt del llenguatge C, compilar i carregar al nucli. Abans de l'execució, l'intèrpret d'eBPF verifica el bytecode per a l'ús d'instruccions permeses i imposa determinades regles al codi (per exemple, sense bucles).
Inicialment, es van utilitzar eines basades en LLVM per compilar eBPF a Linux. El suport d'eBPF a GCC és interessant perquè us permet utilitzar un conjunt d'eines per construir el nucli de Linux i els programes eBPF, sense instal·lar dependències addicionals.
En forma de programes eBPF, podeu crear gestors d'operacions de xarxa, filtrar el trànsit, gestionar l'amplada de banda, supervisar sistemes, interceptar trucades al sistema, controlar l'accés, comptar la freqüència i el temps de les operacions i fer el seguiment mitjançant kprobes/uprobes/tracepoints.
Font: opennet.ru