Uključeno u paket GCC prevoditelja
Uz pozadinu za generiranje bajt koda, GCC uključuje libgcc priključak za eBPF i alate za generiranje ELF datoteka koje omogućuju izvršavanje koda u eBPF virtualnom stroju pomoću učitavača koje pruža 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 definirati u podskupu jezika C, kompajlirati i učitati u kernel. Prije izvršenja, eBPF interpreter provjerava bajt kod za korištenje dopuštenih instrukcija i nameće određena pravila kodu (na primjer, bez petlji).
U početku su se za kompajliranje eBPF-a na Linuxu koristili alati temeljeni na LLVM-u. Podrška za eBPF u GCC-u je zanimljiva jer vam omogućuje korištenje jednog skupa alata za izgradnju Linux kernela i eBPF programa, bez instaliranja dodatnih ovisnosti.
U obliku eBPF programa, možete kreirati rukovatelje mrežnim operacijama, filtrirati promet, upravljati širinom pojasa, nadzirati sustave, presresti sistemske pozive, kontrolirati pristup, brojati učestalost i vrijeme operacija i izvoditi praćenje pomoću kprobes/uprobes/tracepoints.
Izvor: opennet.ru