BCC 采用 Python 结合 C 的开发模式,内置大量预置脚本,开发迭代快、文档示例丰富。其特点是在目标机器上运行时编译(内嵌 LLVM/Clang),因此需要目标节点安装编译器与内核头文件,启动较慢、资源占用较大,更适合快速原型、临时性能分析与内部调试工具,不推荐用于大规模生产部署。
libbpf 是 Linux 内核原生的 eBPF 库,也是现代 eBPF 开发的事实标准。配合 CO-RE(Compile Once – Run Everywhere)能力,程序在构建机上一次性编译为静态二进制,运行时借助内核 BTF(/sys/kernel/btf/vmlinux)重定位结构体字段偏移,从而跨内核版本运行,无需在目标节点安装编译器。它启动快、体积小、可移植性强,是生产级工具、云原生组件的首选,代表项目包括 Cilium、Falco、bpftrace 等。
bpftrace 是一种类 awk/C 的领域专用脚本语言,能用一行命令将追踪意图即时编译为 eBPF 程序并输出结果,学习曲线低、上手快,特别适合在生产节点上进行数十秒级的即时排障与探索性分析。
除上述框架外,还有面向 Rust 的 Aya、面向 Go 的 cilium/ebpf 与 libbpfgo 等库,分别服务于云原生、安全审计等场景,开发者可按语言偏好与部署需求选择。