Пошаговое руководство по eBPF с короткими запускаемыми примерами на C, Go и Rust, в основном на базе libbpf и CO-RE.
aliyun/coolbpf
Библиотека и платформа на C, обёртывающая libbpf для компиляции и загрузки eBPF-программ с поддержкой удалённой компиляции и обратного переноса функций на старые версии ядра.
- Звёзды
- 292
- Форки
- 44
- Открытые issues
- 5
- Последний коммит
- 8 часов назад
Что это?
coolbpf оборачивает основные функции libbpf, чтобы разработчики могли создавать программы для трассировки и управления ядром с меньшей подготовкой. Проект предоставляет локальный сервис компиляции с обёртками для вызовов BPF-функций, а также удалённый сервис: он принимает исходный файл bpf.c и возвращает объект bpf.so, который загружает локальное приложение. Так пользователю не нужно самостоятельно настраивать среду сборки.
Проект также позволяет переносить функции BPF из новых версий ядра в старые с помощью модуля ядра. Например, он добавляет поддержку BPF в ядрах версии 3.10 и заменяет perf-буферы на ring-буферы. BTF генерируется автоматически; доступны биндинги для Python, Go, C и Rust. Для сборки libcoolbpf требуются elfutils-devel и gcc, а для инструментов eBPF дополнительно нужны clang и llvm.
В репозиторий входит AgentSight — инструмент наблюдаемости на базе eBPF для LLM-агентов, который перехватывает трафик SSL/TLS и активность процессов без изменений кода, — а также набор модулей ядра, например eNetSTL, добавляющий дополнительные kfunc для XDP-программ.
Ключевые возможности
- 01Локальный сервис компиляции с обёртками для вызовов BPF-функций.
- 02Удалённый сервис компиляции, который возвращает bpf.so для локальной загрузки.
- 03Обратный перенос функций в модулях ядра, например поддержка BPF в ядрах версии 3.10 и ring-буферы вместо perf-буферов.
- 04Автоматическая генерация BTF.
- 05Биндинги для Python, Go, C и Rust.
- 06AgentSight с помощью eBPF отслеживает трафик и процессы LLM-агентов без изменений кода.
Сценарии использования
- Создание инструментов для трассировки eBPF без настройки локальной среды сборки.
- Запуск BPF-программ на старых версиях ядра с помощью модулей ядра, переносящих необходимые функции.
- Наблюдение за сетевым трафиком AI-агентов и активностью дочерних процессов в Linux.
Быстрый старт
- 1
Установите зависимости для сборки (elfutils-devel, gcc)
- 2
Установите libcoolbpf из корневого каталога проекта
./install.sh - 3
Соберите пример syscall из корневого каталога проекта
mkdir -p build && cd build && cmake -DBUILD_EXAMPLE=on .. && make
Что важно знать
- Для сборки инструментов eBPF, помимо gcc и elfutils, необходимы clang и llvm.
- Некоторые функции, например обратный перенос изменений для версий ядра, требуют загрузки модуля ядра, для чего нужны права root.
- В README нет явных предупреждений о лицензии или стабильности, помимо перечисленных зависимостей.
В подборках
Темы
Частые вопросы
- Что такое coolbpf?
- Библиотека и платформа на C, обёртывающая libbpf для компиляции и загрузки eBPF-программ с поддержкой удалённой компиляции и обратного переноса функций на старые версии ядра. coolbpf оборачивает основные функции libbpf, чтобы разработчики могли создавать программы для трассировки и управления ядром с меньшей подготовкой. Проект предоставляет локальный сервис компиляции с обёртками для вызовов BPF-функций, а также удалённый сервис: он принимает исходный файл bpf.c и возвращает объект bpf.so, который загружает локальное приложение. Так пользователю не нужно самостоятельно настраивать среду сборки.
- coolbpf можно использовать бесплатно? Какая у него лицензия?
- coolbpf распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- coolbpf всё ещё поддерживается?
- Активно поддерживается. Последний коммит в coolbpf — 7 нояб. 2026 г..
- Для чего можно использовать coolbpf?
- Создание инструментов для трассировки eBPF без настройки локальной среды сборки. Запуск BPF-программ на старых версиях ядра с помощью модулей ядра, переносящих необходимые функции. Наблюдение за сетевым трафиком AI-агентов и активностью дочерних процессов в Linux.
- Как установить coolbpf?
- Установите зависимости для сборки (elfutils-devel, gcc) Установите libcoolbpf из корневого каталога проекта: ./install.sh Соберите пример syscall из корневого каталога проекта: mkdir -p build && cd build && cmake -DBUILD_EXAMPLE=on .. && make
- Где скачать coolbpf?
- Исходный код и инструкции по установке — на GitHub: https://github.com/aliyun/coolbpf
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Среда выполнения eBPF для Windows, позволяющая запускать существующие Linux-инструменты, API и программы eBPF поверх ядра Windows.
Терминальный интерфейс для захвата и анализа сетевого трафика в Linux на базе eBPF.
Высокоуровневый язык и инструмент трассировки для Linux, использующий eBPF для отслеживания событий ядра и пользовательского пространства с минимальными накладными расходами.
Набор инструментов для упаковки eBPF-программ в Gadgets в формате OCI-образов, чтобы собирать и анализировать данные в кластерах Kubernetes и на хостах Linux.
CNI на базе eBPF и сетевой, защитный и наблюдательный слой для кластеров Kubernetes с политиками L3–L7, учитывающими идентификаторы, и заменой kube-proxy.