В состав набора компиляторов GCC
Помимо бэкенда для генерации байткода в GCC включён порт libgcc для eBPF и средства для формирования ELF-файлов, дающих возможность выполнить код в виртуальной машине eBPF с использованием предоставляемых ядром загрузчиков. Патчи для поддержи eBPF в GCC подготовлены инженерами из компании Oracle, которые до этого уже
Программы для eBPF могут определяться на подмножестве языка C, компилироваться и загружаться в ядро. Перед выполнением интерпретатор eBPF проверяет байткод на предмет применения разрешённых инструкций и налагает определённые правила на код (например, отсутствие циклов).
Изначально для компиляции eBPF в Linux применялся инструментарий на базе LLVM. Поддержка eBPF в GCC представляет интерес тем, что позволяет использовать один инструментарий для сборки ядра Linux и eBPF-программ, без установки дополнительных зависимостей.
В форме программ eBPF можно создавать обработчики сетевых операций, фильтровать трафик, управлять пропускной способностью, отслеживать работу систем, перехватывать системные вызовы, контролировать доступ, подсчитывать частоту и время выполнения операций, выполнять трассировку с использованием kprobes/uprobes/tracepoints.
出所: オープンネット.ru