Įtraukta į GCC kompiliatoriaus rinkinį
Be baitinio kodo generavimo užpakalinės programos, GCC apima libgcc prievadą, skirtą eBPF, ir ELF failų generavimo įrankius, kurie leidžia vykdyti kodą eBPF virtualioje mašinoje naudojant branduolio teikiamas įkroviklius. Pataisas, skirtas palaikyti eBPF GCC, parengė Oracle inžinieriai, kurie jau turėjo
eBPF programas galima apibrėžti C kalbos poaibyje, sukompiliuoti ir įkelti į branduolį. Prieš vykdydamas eBPF vertėjas patikrina baitų kodą, ar nėra leistinų instrukcijų, ir nustato tam tikras kodui taisykles (pavyzdžiui, nėra ciklų).
Iš pradžių eBPF kompiliavimui Linux sistemoje buvo naudojami LLVM pagrįsti įrankiai. eBPF palaikymas GCC yra įdomus, nes leidžia naudoti vieną įrankių rinkinį Linux branduoliui ir eBPF programoms kurti, neįdiegiant papildomų priklausomybių.
eBPF programų pavidalu galite kurti tinklo operacijų tvarkykles, filtruoti srautą, valdyti pralaidumą, stebėti sistemas, perimti sistemos skambučius, kontroliuoti prieigą, skaičiuoti operacijų dažnumą ir laiką bei atlikti sekimą naudojant kprobes/uprobes/tracepoints.
Šaltinis: opennet.ru