Iekļauts GCC kompilatoru komplektā
Papildus baitkoda ģenerēšanas aizmugursistēmai GCC ietver libgcc portu eBPF un rīkus ELF failu ģenerēšanai, kas ļauj izpildīt kodu eBPF virtuālajā mašīnā, izmantojot kodola nodrošinātos ielādētājus. Ielāpus, lai atbalstītu eBPF GCC, sagatavoja Oracle inženieri, kuri jau to bija izdarījuši
eBPF programmas var definēt C valodas apakškopā, apkopot un ielādēt kodolā. Pirms izpildes eBPF tulks pārbauda, vai baitkodā ir izmantotas atļautās instrukcijas, un uzliek kodam noteiktus noteikumus (piemēram, nav cilpu).
Sākotnēji eBPF kompilēšanai operētājsistēmā Linux tika izmantoti uz LLVM balstīti rīki. eBPF atbalsts GCC ir interesants, jo tas ļauj izmantot vienu rīku komplektu, lai izveidotu Linux kodolu un eBPF programmas, neinstalējot papildu atkarības.
eBPF programmu veidā varat izveidot tīkla operāciju apdarinātājus, filtrēt trafiku, pārvaldīt joslas platumu, pārraudzīt sistēmas, pārtvert sistēmas zvanus, kontrolēt piekļuvi, skaitīt darbību biežumu un laiku un veikt izsekošanu, izmantojot kprobes/uprobes/tracepoints.
Avots: opennet.ru