Ingår i GCC-kompilatorsviten
Förutom en backend för bytecode-generering, inkluderar GCC en libgcc-port för eBPF och verktyg för att generera ELF-filer som gör det möjligt att exekvera kod i den virtuella eBPF-maskinen med hjälp av kärnanförsedda laddare. Patchar för att stödja eBPF i GCC utarbetades av ingenjörer från Oracle, som redan hade gjort det
Program för eBPF kan definieras i en delmängd av C-språket, kompileras och laddas in i kärnan. Före exekvering kontrollerar eBPF-tolken bytekoden för användning av tillåtna instruktioner och inför vissa regler för koden (till exempel inga loopar).
Till en början användes LLVM-baserade verktyg för att kompilera eBPF på Linux. eBPF-stöd i GCC är intressant eftersom det låter dig använda en verktygslåda för att bygga Linux-kärnan och eBPF-program, utan att installera ytterligare beroenden.
I form av eBPF-program kan du skapa nätverkshanterare, filtrera trafik, hantera bandbredd, övervaka system, avlyssna systemanrop, kontrollera åtkomst, räkna frekvens och tid för operationer och utföra spårning med hjälp av kprobes/uprobes/spårpunkter.
Källa: opennet.ru