В состав GCC принят бэкенд для компиляции в eBPF

Вторник, 10 сентября 2019 г.

Следите за нами в ВКонтакте, Телеграм'e и Twitter'e

В состав набора компиляторов GCC принят код для компиляции программ для встроенного в ядро Linux интерпретатора байткода eBPF. Благодаря применению JIT-компиляции, в ядре байткод на лету транслируется в машинные инструкции и выполняется с производительностью нативного кода. Патчи с поддержкой eBPF приняты в ветку, на основе которой развивается выпуск GCC 10.

Помимо бэкенда для генерации байткода в GCC включён порт libgcc для eBPF и средства для формирования ELF-файлов, дающих возможность выполнить код в виртуальной машине eBPF с использованием предоставляемых ядром загрузчиков. Патчи для поддержи eBPF в GCC подготовлены инженерами из компании Oracle, которые до этого уже обеспечили поддержку eBPF в GNU binutils. В разработке также находится симулятор и патчи для GDB, которые позволят отлаживать eBPF-программы без загрузки в ядро.

Программы для eBPF могут определяться на подмножестве языка C, компилироваться и загружаться в ядро. Перед выполнением интерпретатор eBPF проверяет байткод на предмет применения разрешённых инструкций и налагает определённые правила на код (например, отсутствие циклов). Изначально для компиляции eBPF в Linux применялся инструментарий на базеи LLVM. Поддержка eBPF в GCC предстааляет интерес тем, что позволяет использовать один инструментарий для сборки ядра Linux и eBPF-программ, без установки дополнительных зависимостей.

В форме программ eBPF можно создавать обработчики сетевых операций, фильтровать трафик, управлять пропускной способностью, отслеживать работу систем, перехватывать системные вызовы, контролировать доступ, подсчитывать частоту и время выполнения операций, выполнять трассировку с использованием kprobes/uprobes/tracepoints.

Следите за нами в ВКонтакте, Телеграм'e и Twitter'e


Просмотров: 284
Рубрика: Hi-Tech


Архив новостей / Экспорт новостей

Ещё новости по теме:

RosInvest.Com не несет ответственности за опубликованные материалы и комментарии пользователей. Возрастной цензор 16+.

Ответственность за высказанные, размещённую информацию и оценки, в рамках проекта RosInvest.Com, лежит полностью на лицах опубликовавших эти материалы. Использование материалов, допускается со ссылкой на сайт RosInvest.Com.

Архивы новостей за: 2018, 2017, 2016, 2015, 2014, 2013, 2012, 2011, 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003