eBPF: The Documentary
Unlocking The Kernel — история создания революционной технологии
Источник
Книжный куб
Обзор фильма от Александра Поломодова
Что такое eBPF
eBPF (extended Berkeley Packet Filter) — технология для безопасного и эффективного расширения возможностей операционной системы в runtime. Изначально это была только Linux, но потом технологию повторили и для других ОС.
Суть в том, что для расширения возможностей ядра не требуются изменения в исходном коде ядра, а также не нужно подгружать отдельные модули. Безопасность достигается за счёт верификатора внутри ядра, который проводит статический анализ кода.
Загруженные программы, прошедшие проверку, либо интерпретируются, либо JIT-компилируются для обеспечения производительности. Модель выполнения управляется событиями — программы прикрепляются к различным точкам перехвата в ядре и запускаются при возникновении события.
Связанная тема
Site Reliability Engineering
Практики надёжности и observability от Google
История создания
💡 Идея
Всё началось с того, что Alexei Starovoitov, работая в стартапе PLUMgrid над SDN (Software Defined Network), придумал встроить виртуальную машину в ядро Linux. Он создал новый набор инструкций на основе x86 assembly с верификацией безопасности в ядре.
🔄 Эволюционный путь
Идея была слишком революционной, и Chris Wright из Red Hat (сейчас CTO Red Hat) предложил эволюционный подход — интегрировать новую технологию в существующую подсистему BPF. Отсюда появилось название "extended Berkeley Packet Filter".
📊 Трейсинг
Изначально фокус был на сетях, но для этой проблемы уже было решение. Тогда фокус сместился на трейсинг — Brendan Gregg создал инструменты, которые превратились в bcc и bpftrace.
🚀 Hyperscalers
eBPF показал эффективность в Meta, Google, Netflix и других hyperscalers. Alexei Starovoitov ушёл в Facebook в 2015 году и показал там выдающиеся результаты.
Развитие экосистемы
🐝 Cilium
Компания Isovalent создала Cilium — проект, который принёс возможности eBPF конечным пользователям Kubernetes.
🔒 Security
eBPF нашёл применение в безопасности — мониторинг системных вызовов, обнаружение аномалий и защита в runtime.
📈 Observability
Инструменты на базе eBPF позволяют глубоко профилировать системы без значительного влияния на производительность.
🌐 Кроссплатформенность
Технологию повторили для других операционных систем — eBPF вышел за пределы Linux.
Ключевые персоны
Alexei Starovoitov
Создатель eBPF. Работал в PLUMgrid, затем в Facebook/Meta.
Brendan Gregg
Эксперт по производительности. Создатель bcc и bpftrace.
Chris Wright
CTO Red Hat. Предложил эволюционный путь интеграции в ядро.
Влияние на индустрию
Изначальную задумку удалось внедрить и поменять положение дел в индустрии. Раньше написание кода для исполнения внутри ядра (а не в userspace) было крайне сложным, долгим и дорогим. Теперь это можно сделать легко и быстро, используя eBPF.

