文集文档索引

eBPF技术


  • 文集信息
  • 目录大纲
  • 最新文档
  • 知识宇宙

文集详情

文集导读

教程导读 一句话定位:eBPF 是一套可验证、可加载、可卸载的内核沙箱程序机制。本教程从“内核看不见、一碰就崩”的生产痛点出发,讲清它如何在不写内核模块的前提下做观测、网络与安全。 这个教程解决什么问题 线上延迟突然从 2 毫秒跳到 80 毫秒。你打开抓包,看到的是已经离开协议栈的成品;你挂上系统调用追踪,整机吞吐掉了三成;你想写个内核模块插一眼调度器,变更窗口要排两周,还要赌一次可能的内核崩溃。痛点不是“工具不够多”,而是观测点太靠外、控制点太危险、策略更新太慢。 eBPF 把这段矛盾拆开:程序以字节码进内核,先过验证器,再按需挂到系统调用、网卡收包、cgroup、安全钩子上。失败就拒绝加载,成功则热更新,不必重启机器。它不是“更快的抓包”,而是把“看一眼内核”从高危手术改成可回滚的门诊检查。 本教程按问题链组织:先问传统手段为什么总是迟到,再问一段程序如何活过验证器,再落到挂载点、Map、工具链和生产排错。读完你应能判断:这个故障该不该用 eBPF、挂在哪、代价是什么、验证失败该怎么拆。

教程导读

一句话定位:eBPF 是一套可验证、可加载、可卸载的内核沙箱程序机制。本教程从“内核看不见、一碰就崩”的生产痛点出发,讲清它如何在不写内核模块的前提下做观测、网络与安全。

这个教程解决什么问题

线上延迟突然从 2 毫秒跳到 80 毫秒。你打开抓包,看到的是已经离开协议栈的成品;你挂上系统调用追踪,整机吞吐掉了三成;你想写个内核模块插一眼调度器,变更窗口要排两周,还要赌一次可能的内核崩溃。痛点不是“工具不够多”,而是观测点太靠外、控制点太危险、策略更新太慢

eBPF 把这段矛盾拆开:程序以字节码进内核,先过验证器,再按需挂到系统调用、网卡收包、cgroup、安全钩子上。失败就拒绝加载,成功则热更新,不必重启机器。它不是“更快的抓包”,而是把“看一眼内核”从高危手术改成可回滚的门诊检查。

本教程按问题链组织:先问传统手段为什么总是迟到,再问一段程序如何活过验证器,再落到挂载点、Map、工具链和生产排错。读完你应能判断:这个故障该不该用 eBPF、挂在哪、代价是什么、验证失败该怎么拆。

适合谁读

  • 被延迟、丢包、mysterious CPU 折磨过的后端与 SRE,需要内核级线索却不敢碰模块
  • 做云原生网络、服务网格、运行时安全的工程师,要理解 Cilium、bpftrace 一类工具底下真正在跑什么
  • 平台与安全团队,要评估“把策略下沉到内核”的收益和爆炸半径
  • 有 Linux 使用经验、知道进程/socket/系统调用是什么的学习者;不要求写过内核代码

学完你能做什么

  1. 用自己的话讲清:传统观测、内核模块、Sidecar 各自卡在哪,eBPF 补的是哪一块
  2. 画出“编译 → 验证 → JIT → 挂载 → Map 回传”这条路径,并指出每一步会在哪失败
  3. 按问题选挂载点:追踪用 kprobe 还是 tracepoint,网络用 XDP 还是 TC
  4. 看懂验证器拒绝日志的常见类型,能把“逻辑正确但加载失败”和“真的写错了”分开
  5. 在 bcc、libbpf、bpftrace、Cilium 之间做取舍,而不是把所有工具叠上去
  6. 评估一段探针的生产开销,设计灰度、签名与回滚,而不是直接在高峰期全量挂载

学习路线

你要回答的问题 读完的标志
第1章 为什么现有观测总是迟到或把机器拖垮 能举出至少三种传统手段的致命缺陷
第2章 字节码如何被内核接纳 能口述验证与 JIT 的先后关系
第3章 程序如何保存状态、如何调用内核 能按场景选出 Map 类型与 Helper
第4章 挂在哪个钩子上 能画 XDP 与 TC 的前后位置
第5章 为什么验证器总跟你作对 能读拒绝原因并改到能加载
第6章 该用哪套工具 能在实验、交付、平台三者间选型
第7章 换内核会不会全军覆没 能解释 BTF 与 CO-RE 解决什么、解决不了什么
第8章 上生产会不会把自己打挂 能说出开销来源、排错顺序、灰度步骤

图:从痛点到内核钩子的下沉路径

图:从痛点到内核钩子的下沉路径

怎么用这个教程

预计耗时:第 1 章可在一小时内读完并填一张缺口表;第 2–5 章建议连续读,大约一个下午;第 6–8 章按任务抽读,每节半小时到一小时。不必准备内核编译环境才能读懂概念;若要动手,用可控虚拟机,不要用别人的生产节点练卸载。

读的时候带一个真实问题。没有真实问题,机制会变成名词表。有真实问题,第 4 章的挂载点选择会自然变成“我该站在哪一拍”。附录放在最后,是给故障夜扫一眼用的,不是替代正文推理。

若你已经在用 Cilium 或 bpftrace,建议仍从第 1 章读起。工具会让人误以为自己理解了钩子。第 1 章的缺口表能检验:你现在的工具到底覆盖了哪一拍,哪一拍其实仍是盲的。

按章顺序读。第 1 章是动机,跳过它后面会觉得 eBPF “好像什么都能干”。第 2–5 章是内核契约,建议连着读;第 6–8 章可以按你手头的任务抽读——要写程序看第 6 章,要上生产看第 8 章。

每节有一张流程图或对比表,代码是概念性简化片段,用来说明寄存器、Map、挂载点怎么配合,不是一份可以扔进生产的工程仓库。文中交叉引用写成“详见第 N 章”,不放网址、不放本地路径。

⚠️ 本教程默认你在较新的 Linux 上理解概念。发行版内核偏旧时,CO-RE 与部分程序类型会缺,不要拿实验机结论直接套生产内核。
本教程也可以当排障手册倒着读:先翻附录最短链,再跳到对应章。倒着读时不要跳过第 1 章的缺口表,否则容易把工具当目的。

💡 判断题优先:遇到一个观测需求,先问“我必须看到内核里的哪一个瞬间”,再问“这个瞬间有没有稳定钩子”。钩子选错,后面写得再漂亮也是在错误的时间点采样。

目录大纲

    最新文档

    知识宇宙

    正在加载知识图谱...


    转发
    作者与出处
    发布者 / 整理账号: 灏天文库
    来源:灏天文库
    由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
    《eBPF技术》是什么?
    eBPF是内核扩展技术,安全注入沙箱程序,实现网络监控与性能追踪无侵入。 本站提供目录导航、全文检索与在线阅读,便于系统化学习。
    《eBPF技术》适合谁阅读?
    适合希望系统学习《eBPF技术》的初学者,以及需要查漏补缺、按需查阅的进阶学习者。
    《eBPF技术》包含哪些内容?
    文集围绕主题系统展开,共收录 30 篇文档。本站将全部内容按目录结构化呈现,支持全文检索与在线阅读,方便按主题跳转与反复查阅。
    《eBPF技术》的内容从何而来?
    本文集由灏天文库平台收录,内容或由平台用户上传分享,仅供学习交流,版权归原作者所有。
    《eBPF技术》的版权如何归属?
    本文集版权归原作者所有,灏天文库平台仅提供在线收录与学习展示;如需转载或商用请遵循原版权方要求。