【快速入门必读贴】 百页 PPT BPF 技术全览 - 深入浅出 BPF 技术
本文从什么是 eBPF,eBPF 的应用场景和工作原理入手,然后介绍了使用 Python/C/Go 开发 eBPF 程序的生态环境和使用样例,最后介绍了 eBPF 未来的发展趋势
eBPF 指令集、Verifier、Map、BTF、CO-RE、JIT 与程序模型
XDP、TC、netkit、veth、Cilium、AF_XDP 与内核网络栈
kprobe、tracepoint、uprobe、bpftrace、Ftrace 与性能分析
libbpf、Aya/Rust、Go、编译器与工具链、开发环境
Linux 内核机制、新版本特性、LPC/LSFMM 进展与系统排障
LSM BPF、运行时安全、签名、攻防,以及 sched_ext 调度器
本文从什么是 eBPF,eBPF 的应用场景和工作原理入手,然后介绍了使用 Python/C/Go 开发 eBPF 程序的生态环境和使用样例,最后介绍了 eBPF 未来的发展趋势
内核约 39% 函数被完全内联,fentry 挂不上。pahole 共同维护者 Alan Maguire 提出用新 BTF kind 记录内联点与参数位置;补丁在推进,发行版暂不可直接用。
跨区域 WAN 被打满,服务日志却看不到元凶。HRT 用 fexit 挂 tcp_sendmsg/recvmsg 按分钟聚合,补上 NFS 底层关联,再和交换机计数对账去重,把流量归到用户和工作流。
容器通信时,包跨网络命名空间要多排一次队。Isovalent 的 Borkmann 与 Chaignon 在 eBPF'26 论文中介绍 netkit:用 BPF 把包直接送过命名空间边界,让容器通信追平进程间通信。
在第 3 部分中,我们介绍了构建 Cloudflare 基于 eBPF 的网络数据路径所需的架构转变与上游合入工作。这些代码一旦合入,把数据路径移入内核就改变了运维边界。当每秒数百万个报文在驱动中经由 XDP 被直接丢弃、 …
想给每一个系统调用都挂上延时统计时,过去常见两条路:要么写几百份几乎一样的 BPF 程序,要么退回 kprobe 多重挂接——安装灵活,但热路径往往更贵。Jiri Olsa 推动的 tracing_multi 改变了这件事:一条程序、 …
在第 1 部分中,我们说明了 Cloudflare 为何把 eBPF 当作一个平台来押注,而不是一堆单点方案。在第 2 部分中,我们考察了标准 Linux 网络 API 无法支撑 Cloudflare 需求的那些地方,以及团队为填补这些缺口 …
每年秋天,内核社区最核心的开发者都会聚到一起,把接下来一两年要落地的东西摊开来吵一遍。今年的 Linux Plumbers Conference 定在 10 月 5 日到 7 日,捷克布拉格。