Uključeno u GCC kompajlerski paket
Pored pozadine za generisanje bajtkoda, GCC uključuje libgcc port za eBPF i alate za generisanje ELF fajlova koji omogućavaju izvršavanje koda u eBPF virtuelnoj mašini koristeći učitavače koje obezbeđuje kernel. Zakrpe za podršku eBPF-u u GCC-u pripremili su inženjeri iz Oraclea, koji su to već učinili
Programi za eBPF mogu se definisati u podskupu jezika C, kompajlirati i učitati u kernel. Prije izvršenja, eBPF interpreter provjerava bajt kod za korištenje dozvoljenih instrukcija i nameće određena pravila kodu (na primjer, bez petlji).
U početku su se alati zasnovani na LLVM-u koristili za kompajliranje eBPF-a na Linuxu. Podrška za eBPF u GCC-u je zanimljiva jer vam omogućava da koristite jedan komplet alata za izgradnju Linux kernela i eBPF programa, bez instaliranja dodatnih ovisnosti.
U obliku eBPF programa, možete kreirati rukovaoce mrežnim operacijama, filtrirati promet, upravljati propusnim opsegom, nadgledati sisteme, presresti sistemske pozive, kontrolirati pristup, brojati učestalost i vrijeme operacija i izvoditi praćenje pomoću kprobes/uprobes/tracepoints.
izvor: opennet.ru