eBPF入门

Linux eBPF 深度实战:从内核可编程机制到云原生网络与安全

深入解析 Linux eBPF 架构与编程实战:字节码与验证器机制、全 Hook Point 解析(XDP/TC/kprobe/fentry/LSM)、工具链生态(BCC/libbpf CO-RE/bpftrace/Aya)、三大实战案例(XDP 防火墙/kprobe 系统调用跟踪/零侵入性能剖析)、验证器安全保障、大规模生产应用(Cilium/Katran/Falco/Pixie/Tetragon)、Map 选型与尾调用优化。

Linux eBPF验证器深度剖析:从BPF程序加载到安全执行的完整验证链路

eBPF验证器是内核中最复杂的安全组件(25000+行代码),负责在加载阶段证明BPF程序的绝对安全。本文从CFG DAG构建、路径抽象解释、寄存器类型层次、内存边界检查、未初始化数据防护、BTF类型验证四大支柱逐层展开,并通过真实验证失败案例和历史CVE分析,帮助读者系统掌握eBPF验证器的设计哲学与工作机制。适合eBPF开发者和内核安全工程师。

Linux TC Traffic Control 深度实战:从 Qdisc 调度器到 eBPF 数据面编程的全栈解析

深度解析 Linux TC(Traffic Control)子系统的完整技术栈:从内核 TC 核心架构、Qdisc/Class/Filter 三层模型、HTB/FQ_Codel 调度算法,到 eBPF TC 程序的挂载、直接数据包操作(bpf_skb_adjust_room)、NAT 封装、与 XDP/iptables 的性能对比,涵盖 Kubernetes 带宽管理、微分段流量整形、生产级 QoS 策略的完整工程实战。

Linux 系统调用深度实战:从 int 0x80 到 VDSO 与 io_uring 的 Syscall Entry/Exit 内核实现与 eBPF 追踪

从硬件指令层拆解 Linux 系统调用的完整生命周期:syscall 历史演进(int 0x80→sysenter→syscall)、entry_SYSCALL_64 汇编级的 swapgs/per-cpu/pt_regs 构建安全分析、VDSO 如何让 gettimeofday 绕过 syscall、vDSY vs ASLR 兼容、syscall 分发表、Spectre/Meltdown 对 syscall 延迟的量化影响、sysret 与 iret 返回路径选择、io_uring 用共享环形队列绕过 syscall 的架构、eBPF tracepoint/kprobe/fentry 三种观测方式对比、strace 的 ptrace 代价与替代方案、生产环境减少 syscall 频率的 7 种工程策略、跨架构对比(x86_64/ARM64/RISC-V)。

BPF 虚拟机——从 cBPF 到 eBPF 的内核可编程机制完整演进

从 1992 年 Berkeley 实验室经典的 2 指令 cBPF,到 Linux 6.x 超过 50 种 Map 类型、30 种程序类型的 eBPF 生态,系统拆解 BPF 内核可编程机制的完整演进路径。含五类程序类型参考、Map 数据结构族谱、验证器静态分析原理、JIT 编译映射、6.5/7.0 新特性(Timers/Struct Ops/Bloom Filter)、生产级 7 大陷阱、完整 XDP DDoS 防护代码 demo 与性能基准数据。