У склад набору кампілятараў GCC
Акрамя бэкенда для генерацыі байткода ў GCC уключаны порт libgcc для eBPF і сродкі для фармавання ELF-файлаў, якія даюць магчымасць выканаць код у віртуальнай машыне eBPF з выкарыстаннем якія прадстаўляюцца ядром загрузнікаў. Патчы для падтрымай eBPF у GCC падрыхтаваны інжынерамі з кампаніі Oracle, якія да гэтага ўжо
Праграмы для eBPF могуць вызначацца на падмностве мовы C, кампілявацца і загружацца ў ядро. Перад выкананнем інтэрпрэтатар eBPF правярае байткод на прадмет ужывання дазволеных інструкцый і накладае вызначаныя правілы на код (напрыклад, адсутнасць цыклаў).
Першапачаткова для кампіляцыі eBPF у Linux ужываўся інструментар на базе LLVM. Падтрымка eBPF у GCC уяўляе цікавасць тым, што дазваляе выкарыстоўваць адзін інструментар для зборкі ядра Linux і eBPF-праграм, без усталёўкі дадатковых залежнасцяў.
У форме праграм eBPF можна ствараць апрацоўшчыкі сеткавых аперацый, фільтраваць трафік, кіраваць прапускной здольнасцю, адсочваць працу сістэм, перахапляць сістэмныя выклікі, кантраляваць доступ, падлічваць частату і час выканання аперацый, выконваць трасіроўку з выкарыстаннем kprobes/uprobes/tracepoints.
Крыніца: opennet.ru