Repolode
aliyun

aliyun/coolbpf

封装 libbpf 的 C 库与平台,用于编译和加载 eBPF 程序,支持远程编译与内核版本回移。

Star
292
Fork
44
未关闭 Issue
5
最近提交
21小时前

这是什么?

coolbpf 封装了 libbpf 的主要功能,方便开发者构建内核追踪与干预程序,减少底层配置工作。它提供本地编译服务及 BPF 函数调用的封装,也提供远程编译服务:上传 bpf.c 源文件后返回 bpf.so,本地应用直接加载即可,无需自行维护编译环境。

项目还支持通过内核模块把新版内核的 BPF 特性回移到旧版内核,例如在 3.10 内核上使用 BPF,并用 ring buffer 替代 perf buffer。它可自动生成 BTF,并提供 Python、Go、C、Rust 等语言的支持。编译 libcoolbpf 需要 elfutils-devel 和 gcc,编译 eBPF 工具还需要 clang 和 llvm。

仓库中还包含基于 eBPF 的 LLM 智能体观测工具 AgentSight,通过捕获 SSL/TLS 流量和进程行为实现观测,无需修改代码;另有 eNetSTL 等内核模块,为 XDP 程序提供额外的 kfunc。

核心功能

  • 01提供本地编译服务,并封装 BPF 函数调用。
  • 02提供远程编译服务,返回 bpf.so 供本地加载。
  • 03通过内核模块将新特性回移到旧内核,如在 3.10 内核上支持 BPF。
  • 04自动生成 BTF。
  • 05支持 Python、Go、C、Rust 语言。
  • 06AgentSight 基于 eBPF 观测 LLM 智能体的流量与进程,无需修改代码。

适用场景

  • 在不维护本地编译工具链的情况下开发 eBPF 追踪工具。
  • 借助内核模块回移,在较旧的内核上运行 BPF 程序。
  • 在 Linux 上观测 AI 智能体的网络流量与子进程行为。

快速上手

  1. 1

    安装构建依赖(elfutils-devel、gcc)

  2. 2

    在项目根目录安装 libcoolbpf

    ./install.sh
  3. 3

    在项目根目录构建 syscall 示例

    mkdir -p build && cd build && cmake -DBUILD_EXAMPLE=on .. && make

使用前须知

  • 构建 eBPF 工具还需要 clang 和 llvm,除 gcc 和 elfutils 之外。
  • 内核版本回退等功能依赖加载内核模块,需要 root 权限。
  • 除所列依赖外,README 未给出其他明确的许可或稳定性方面的注意事项。

收录于专题

标签

常见问题

coolbpf 是什么?
封装 libbpf 的 C 库与平台,用于编译和加载 eBPF 程序,支持远程编译与内核版本回移。 coolbpf 封装了 libbpf 的主要功能,方便开发者构建内核追踪与干预程序,减少底层配置工作。它提供本地编译服务及 BPF 函数调用的封装,也提供远程编译服务:上传 bpf.c 源文件后返回 bpf.so,本地应用直接加载即可,无需自行维护编译环境。
coolbpf 可以免费使用吗?用的什么许可证?
coolbpf 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
coolbpf 还在维护吗?
活跃维护中。coolbpf 最近一次提交是在 2026年11月6日。
coolbpf 适合用来做什么?
在不维护本地编译工具链的情况下开发 eBPF 追踪工具。 借助内核模块回移,在较旧的内核上运行 BPF 程序。 在 Linux 上观测 AI 智能体的网络流量与子进程行为。
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

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目