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

eBPF 系列文章索引

文章导航

分类入口
linux
标签入口
#ebpf#index#series

目录

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 分钟 | 难度: 3/5 (基础设施工程师 / 后端开发)

网络篇

  1. eBPF + io_uring:Linux 高性能网络栈的终极形态 预计阅读 ~10 分钟 | 难度: 4/5 (基础设施工程师 / 高性能网络开发)
  1. XDP:在网卡驱动层就把包丢掉 预计阅读 ~25 分钟 | 难度: 3/5 (网络工程师 / 安全工程师)
  1. eBPF + 容器:Cilium 的数据面为什么不再需要 iptables 预计阅读 ~30 分钟 | 难度: 4/5 (SRE / 平台工程师)

可观测性与安全篇

  1. eBPF 追踪实战:用 bpftrace 在生产环境找到那个慢请求 预计阅读 ~30 分钟 | 难度: 2/5 (SRE / 后端开发)
  1. eBPF 安全监控:不改内核也能审计 syscall 预计阅读 ~25 分钟 | 难度: 3/5 (安全工程师 / SRE)
  1. eBPF 性能分析工具链:perf → BCC → bpftrace → Parca 的演化 预计阅读 ~35 分钟 | 难度: 2/5 (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 同源的过滤机制

同主题继续阅读

把当前热点继续串成多页阅读,而不是停在单篇消费。

2026-04-01 · containers / linux

从零造容器系列文章

用 C 和 Go 从零实现一个 OCI 兼容的迷你容器运行时,逐篇拆解 Linux 内核的隔离机制。不是讲 Docker 怎么用,而是理解容器到底是什么。

2025-11-30 · io_uring / linux

io_uring 系列文章

探索 Linux 下一代高性能异步 I/O 接口 io_uring,从核心原理到性能对比,再到与现有网络库的集成。

2026-04-03 · linux

linux 文件I/O

Linux 文件 I/O 深度解析:内核文件表、系统调用与文件描述符管理


By .