Repolode
eunomia-bpf

eunomia-bpf/bpf-developer-tutorial

Пошаговое руководство по eBPF с короткими запускаемыми примерами на C, Go и Rust, в основном на базе libbpf и CO-RE.

Звёзды
4,333
Форки
607
Открытые issues
25
Последний коммит
3 дня назад

Что это?

Это практическое руководство по разработке на eBPF: от базовых понятий до продвинутых тем. Каждый каталог — отдельный пример инструмента на eBPF, многие из них занимают всего около двадцати строк кода. Так разработчики могут увидеть, как написана и загружена конкретная программа.

В примерах используются CO-RE (Compile Once, Run Everywhere) и преимущественно libbpf. В некоторых уроках применяются eunomia-bpf, библиотека eBPF от Cilium, libbpf-rs и другие фреймворки на C, Go и Rust. Темы охватывают наблюдаемость (kprobes, uprobes, tracepoints, задержки планирования, утечки памяти), работу с сетью (XDP, tc, TCX, sockops, балансировку нагрузки), безопасность (хуки LSM, изменение аргументов системных вызовов), а также GPU и планировщик.

В репозитории также есть стартовые шаблоны проектов на C/libbpf, Go, Rust и eunomia-bpf, в том числе Makefiles, Dockerfiles и настройки GitHub Actions.

Ключевые возможности

  • 01Уроки охватывают путь от простых программ с kprobe и tracepoint до XDP, LSM и трассировки GPU.
  • 02Примеры написаны на C с libbpf и CO-RE; для некоторых уроков есть варианты на Go и Rust.
  • 03Каждый урок находится в отдельном каталоге и содержит собственные инструкции по сборке.
  • 04В стартовых шаблонах есть Makefile, Dockerfile и настройки CI для новых проектов на eBPF.
  • 05В репозитории есть таблица совместимости, помогающая проверить поддержку со стороны ядра и набора инструментов.

Сценарии использования

  • Последовательно изучать разработку на eBPF, начиная с первой программы hello-world.
  • Найти готовый пример конкретного хука, например uprobe, XDP или LSM, и адаптировать его.
  • Создать новый проект на eBPF с libbpf, Go или Rust на основе шаблона.
  • Разобраться, как с помощью eBPF трассировать программы пользовательского пространства, например Nginx и MySQL, или горутины Go.

Быстрый старт

  1. 1

    Клонируйте репозиторий

    git clone https://github.com/eunomia-bpf/bpf-developer-tutorial.git
  2. 2

    Перейдите в каталог проекта и синхронизируйте подмодули

    cd bpf-developer-tutorial && git submodule update --init --recursive
  3. 3

    Следуйте инструкциям по сборке в каталоге урока, например src/11-bootstrap или src/1-helloworld

Что важно знать

  • Каждый урок — отдельный пример со своими шагами сборки, поэтому единой команды для сборки всего проекта нет.
  • Для запуска программ eBPF требуется ядро Linux с поддержкой BPF и, как правило, права root или привилегированный доступ.

В подборках

Темы

Частые вопросы

Что такое bpf-developer-tutorial?
Пошаговое руководство по eBPF с короткими запускаемыми примерами на C, Go и Rust, в основном на базе libbpf и CO-RE. Это практическое руководство по разработке на eBPF: от базовых понятий до продвинутых тем. Каждый каталог — отдельный пример инструмента на eBPF, многие из них занимают всего около двадцати строк кода. Так разработчики могут увидеть, как написана и загружена конкретная программа.
bpf-developer-tutorial можно использовать бесплатно? Какая у него лицензия?
bpf-developer-tutorial распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
bpf-developer-tutorial всё ещё поддерживается?
Активно поддерживается. Последний коммит в bpf-developer-tutorial — 4 нояб. 2026 г..
Для чего можно использовать bpf-developer-tutorial?
Последовательно изучать разработку на eBPF, начиная с первой программы hello-world. Найти готовый пример конкретного хука, например uprobe, XDP или LSM, и адаптировать его. Создать новый проект на eBPF с libbpf, Go или Rust на основе шаблона. Разобраться, как с помощью eBPF трассировать программы пользовательского пространства, например Nginx и MySQL, или горутины Go.
Как установить bpf-developer-tutorial?
Клонируйте репозиторий: git clone https://github.com/eunomia-bpf/bpf-developer-tutorial.git Перейдите в каталог проекта и синхронизируйте подмодули: cd bpf-developer-tutorial && git submodule update --init --recursive Следуйте инструкциям по сборке в каталоге урока, например src/11-bootstrap или src/1-helloworld
Где скачать bpf-developer-tutorial?
Исходный код и инструкции по установке — на GitHub: https://github.com/eunomia-bpf/bpf-developer-tutorial

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

CNI на базе eBPF и сетевой, защитный и наблюдательный слой для кластеров Kubernetes с политиками L3–L7, учитывающими идентификаторы, и заменой kube-proxy.

25,8 тыс.+49 за неделю4,2 тыс.GoApache-2.0Обновлён 22 часа назад

Высокоуровневый язык и инструмент трассировки для Linux, использующий eBPF для отслеживания событий ядра и пользовательского пространства с минимальными накладными расходами.

10,4 тыс.+12 за неделю1,5 тыс.C++Apache-2.0Обновлён позавчера