Zahrnuto v sadě kompilátoru GCC
Kromě backendu pro generování bajtkódu obsahuje GCC port libgcc pro eBPF a nástroje pro generování souborů ELF, které umožňují spouštět kód na virtuálním stroji eBPF pomocí zavaděčů poskytovaných jádrem. Záplaty pro podporu eBPF v GCC připravili inženýři z Oracle, kteří to již udělali
Programy pro eBPF lze definovat v podmnožině jazyka C, zkompilovat a načíst do jádra. Interpret eBPF před provedením zkontroluje bajtový kód pro použití povolených instrukcí a uloží kódu určitá pravidla (například žádné smyčky).
Zpočátku byly ke kompilaci eBPF na Linuxu použity nástroje založené na LLVM. Podpora eBPF v GCC je zajímavá, protože vám umožňuje používat jednu sadu nástrojů k sestavení jádra Linuxu a programů eBPF bez instalace dalších závislostí.
Ve formě programů eBPF můžete vytvářet ovladače síťových operací, filtrovat provoz, spravovat šířku pásma, monitorovat systémy, zachycovat systémová volání, řídit přístup, počítat frekvenci a čas operací a provádět trasování pomocí kprobes/uprobes/tracepointů.
Zdroj: opennet.ru