Skip to content

eBPF 开发实践教程:基于 CO-RE,通过小工具快速上手 eBPF 开发

这是一个基于 CO-RE(一次编译,到处运行)的 eBPF 的开发教程,提供了从入门到进阶的 eBPF 开发实践,包括基本概念、代码实例、实际应用等内容。和 BCC 不同的是,我们使用 libbpf、Cilium、libbpf-rs、eunomia-bpf 等框架进行开发,包含 C、Go、Rust 等语言的示例。

本教程不会进行复杂的概念讲解和场景介绍,主要希望提供一些 eBPF 小工具的案例(非常短小,从二十行代码开始入门!),来帮助 eBPF 应用的开发者快速上手 eBPF 的开发方法和技巧。教程内容可以在目录中找到,每个目录都是一个独立的 eBPF 工具案例。

教程关注于可观测性、网络、安全等等方面的 eBPF 示例。完整的代码和教程可以在 https://github.com/eunomia-bpf/bpf-developer-tutorial GitHub 开源仓库中找到。如果您认为本教程对您有所帮助,也请给我们一个 star 鼓励一下!

入门文档

包含简单的 eBPF 程序样例与介绍,这部分主要使用 eunomia-bpf 框架简化开发,并介绍了 eBPF 的基本使用方式和开发流程。

进阶文档和示例

我们开始主要基于 libbpf 构建完整的 eBPF 工程,并且把它和各种应用场景结合起来进行实践。

高级主题

这里涵盖了一系列和 eBPF 相关的高级内容,包含在 Android 上使用 eBPF 程序、使用 eBPF 程序进行可能的攻击与防御、复杂的追踪等等。这部分主要基于 libbpf、Cilium 等框架进行开发。

bcc 和 bpftrace 教程与文档