ebpf 分类归档

共 25 篇文章 · 返回首页

【eBPF 内核实现深度拆解】从验证器到 JIT,从 BTF 到调度器

eBPF 内核虚拟机内部实现系统讲解:BPF 指令集与寄存器机器、验证器的抽象解释与状态裁剪、JIT 编译器后端、Map 各类型的并发与内存模型、helper 函数注册与类型检查、BTF 格式规范与 CO-RE 重定位引擎、libbpf 加载器工程、fentry/fexit 蹦床机制、sched_ext 调度器内核接…

【eBPF 内核实现深度拆解】BPF 程序调试与测试:verifier log、bpftool、test runner 与内核自测

从 verifier log 的级别控制(log_level 1/2/自选寄存器)出发,覆盖 bpftool prog dump xlated/jited 的反汇编、bpftool map dump 运行时检查、bpftool btf 类型查阅、BPF selftests 结构与编写,以及生产环境下的 BPF 排障方…

【eBPF 内核实现深度拆解】蹦床(Trampoline)与 fentry / fexit:零开销内核追踪

fentry/fexit 通过 BPF 蹦床机制在目标函数的 nop 位置直接替换为 call 指令进入 BPF,避免了 kprobe 的 int3 中断开销。本文拆解 bpf_trampoline 内核实现、arch_prepare_bpf_trampoline 的架构相关栈帧构造、struct_ops 与蹦床的协…

【eBPF 内核实现深度拆解】BPF 并发模型:spinlock、RCU 与 per-CPU 模式

BPF 程序在内核上下文中并发执行——同一程序可能在多个 CPU 同时运行。本文讲清 BPF 环境下的内存模型(BPF_ATOMIC 指令的语义)、bpf_spin_lock 的实现限制、RCU 保护的 map 读取、per-CPU map 的免锁读写,以及中断上下文与进程上下文的执行语义差异。

【eBPF 内核实现深度拆解】实战:构建微型 eBPF 可观测 Agent

把 01--17 的知识串成一条实践线——从 libbpf skeleton 写第一个 BPF 程序、加载到内核、用 ring buffer 回传事件、用 CO-RE 实现跨内核版本兼容、map pinning 实现热升级、配上半自动化的 verifier 错误排障流程——构建一个麻雀虽小五脏俱全的 eBPF 可观测…