Repolode
aliyun

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. 1

    Установите зависимости для сборки (elfutils-devel, gcc)

  2. 2

    Установите libcoolbpf из корневого каталога проекта

    ./install.sh
  3. 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 обновляется ежедневно.

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

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

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

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

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