土法炼钢兴趣小组的算法知识备份

eBPF 系列文章索引

目录

eBPF 系列

eBPF 早已不是 Berkeley Packet Filter 那点事了。它是一个运行在 Linux 内核里的可编程虚拟机:你写的代码经过验证器检查后挂到内核的各种 hook 点上,不改内核源码就能做网络加速、安全审计、性能分析。本系列从架构原理讲起,逐篇拆解 eBPF 在生产环境里最重要的几个应用方向。

为什么要系统学 eBPF? 一篇文章够你”知道”eBPF,但要在生产环境里用好它——写 XDP 防火墙、替换 iptables、做持续 profiling——你需要理解验证器的限制、Map 的选型、各 hook 点的语义差异。这个系列就是把这些知识串起来。

适合谁看

本系列假设你熟悉 Linux 网络栈基础(iptables、TCP/IP)和系统编程概念。如果你已经听过 eBPF 但不确定它能解决你的哪些问题,这个系列就是为你写的。

先修知识自测

在开始之前,用这几个问题检验一下你的基础。如果大部分答不上来,建议先补一下 Linux 内核基础:

  1. 你能说出 BPF 验证器的三个主要检查吗?(提示:内存越界、无限循环、未初始化变量)
  2. 你理解 kprobe 和 tracepoint 的区别吗?(提示:一个是动态插桩,一个是内核预埋的静态钩子)
  3. 你知道 eBPF Map 的至少三种类型吗?(提示:HashMap、Array、RingBuffer、PerCPU 变体……)
  4. 你能解释 XDP 程序在网络栈的哪个位置执行吗?(提示:在内核网络栈之前,甚至在 skb 分配之前)
  5. 你理解 perf_event_open 系统调用的基本用途吗?(提示:它是 perf 和 eBPF profiling 的基础)

答不上来也没关系——第一篇文章(eBPF 架构总览)会覆盖这些概念。但如果你连 Linux 的 syscall 概念都不清楚,建议先看 从零造容器系列 的前几篇。

推荐阅读顺序: - 从零入门 eBPF → 01(架构总览)→ 03(bpftrace 实战)→ 07(工具链演化) - 网络方向 → 01 → 02(io_uring 联动)→ 04(XDP)→ 06(Cilium) - 安全方向 → 01 → 05(LSM BPF / Falco / Tetragon)→ 04(XDP 防火墙) - 性能分析 → 01 → 03(bpftrace)→ 07(perf → BCC → Parca)

目录

基础篇

  1. eBPF:Linux 内核的隐藏武器 ⏱ ~20 分钟 | 难度: ★★★☆☆ (基础设施工程师 / 后端开发)
    • eBPF 架构、验证器、Map 数据结构
    • 四种挂载点:kprobe / tracepoint / XDP / cgroup

网络篇

  1. eBPF + io_uring:Linux 高性能网络栈的终极形态 ⏱ ~10 分钟 | 难度: ★★★★☆ (基础设施工程师 / 高性能网络开发)
    • AF_XDP 零拷贝收发包
    • 内核旁路与用户态协议栈的配合
  2. XDP:在网卡驱动层就把包丢掉 ⏱ ~25 分钟 | 难度: ★★★☆☆ (网络工程师 / 安全工程师)
    • 三种模式:native / offload / generic
    • 用 50 行代码写一个极简防火墙
  3. eBPF + 容器:Cilium 的数据面为什么不再需要 iptables ⏱ ~30 分钟 | 难度: ★★★★☆ (SRE / 平台工程师)
    • 替代 kube-proxy 的实现原理
    • Service Mesh 无 sidecar 方案

可观测性与安全篇

  1. eBPF 追踪实战:用 bpftrace 在生产环境找到那个慢请求 ⏱ ~30 分钟 | 难度: ★★☆☆☆ (SRE / 后端开发)
    • bpftrace 一行脚本的表达力
    • 延迟直方图、off-cpu 分析
  2. eBPF 安全监控:不改内核也能审计 syscall ⏱ ~25 分钟 | 难度: ★★★☆☆ (安全工程师 / SRE)
    • LSM BPF hook 机制
    • Falco、Tetragon 架构对比
  3. eBPF 性能分析工具链:perf → BCC → bpftrace → Parca 的演化 ⏱ ~35 分钟 | 难度: ★★☆☆☆ (SRE / 性能工程师)
    • 从采样到持续性能分析
    • 各工具适用场景与选型建议

相关阅读

本系列与博客其他文章形成交叉引用网络,按主题分组:

容器与 Kubernetes - 从零造容器系列 — namespace / cgroup / overlay 等内核积木 - 容器网络性能真相:veth vs macvlan vs eBPF 数据面 — eBPF 替代 iptables 的实测数据

高性能 I/O - io_uring 系列 — io_uring 本体的深度拆解,与 eBPF 的 AF_XDP 搭配阅读

安全 - Seccomp-BPF 与 Capabilities — Seccomp-BPF 与 eBPF 同源的过滤机制


By .