作品简介

本书是一本面向系统工程师的实践指南,皆在帮助他们获得Linux内核中BPF虚拟机的专业知识。通过本书,你不仅可以深入了解BPF程序的生命周期,熟悉日常工作所需的基本概念,增强有关性能优化、网络和安全方面的知识。还可以学习如何编写观测和修改内核行为的应用程序,以及通过代码注入的方式对内核事件进行监控、跟踪和安全观测等内容。同时,本书展示了相关的C、Go和Python代码示例。每次学习BPF技术时,我们都需要翻阅许多博客文章、手册以及Internet上的各种资料。本书的目的就是将分散在各处的知识汇总在一起,以方便后续BPF爱好者能更好地学习这一技术。

[美]大卫·卡拉维拉(David Calavera)[意]洛伦佐·丰塔纳(Lorenzo Fontana)著:大卫·卡拉维拉(David Calavera)是Netlify的CTO,曾是Docker的维护者以及Runc、Go和BCC工具及其他开源项目的贡献者。他构建和促进了Docker插件生态系统,因Docker项目的工作而闻名。David非常喜欢使用火焰图和进行性能优化。

洛伦佐·丰塔纳(Lorenzo Fontana)是Sysdig开源团队的成员,主要负责CNCF(云本地计算基础)的Falco项目,该项目通过内核模块和eBPF实现了容器运行时安全和异常检测功能。他对分布式系统、软件定义网络、Linux内核和性能分析充满热情。

作品目录

  • O’Reilly Media,Inc.介绍
  • 推荐序
  • 译者序 学习的心与勇气的赞歌
  • 序言
  • 前言
  • 第1章 引言
  • 1.1 BPF的历史
  • 1.2 架构
  • 1.3 小结
  • 第2章 运行第一个BPF程序
  • 2.1 编写BPF程序
  • 2.2 BPF程序类型
  • 2.3 BPF验证器
  • 2.4 BPF类型格式
  • 2.5 BPF尾部调用
  • 2.6 小结
  • 第3章 BPF映射
  • 3.1 创建BPF映射
  • 3.2 使用BPF映射
  • 3.3 BPF映射类型
  • 3.4 BPF虚拟文件系统
  • 3.5 小结
  • 第4章 BPF跟踪
  • 4.1 探针
  • 4.2 跟踪数据可视化
  • 4.3 小结
  • 第5章 BPF工具
  • 5.1 BPFTool
  • 5.2 BPFTrace
  • 5.3 kubectl-trace
  • 5.4 eBPF Exporter
  • 5.5 小结
  • 第6章 Linux网络和BPF
  • 6.1 BPF和数据包过滤
  • 6.2 基于BPF的流量控制分类器
  • 6.3 小结
  • 第7章 XDP
  • 7.1 XDP程序概述
  • 7.2 XDP和BCC
  • 7.3 测试XDP程序
  • 7.4 XDP用户案例
  • 7.5 小结
  • 第8章 Linux内核安全、能力和Seccomp
  • 8.1 能力
  • 8.2 Seccomp
  • 8.3 BPF的LSM钩子
  • 8.4 小结
  • 第9章 真实的用户案例
  • 9.1 Sysdig eBPF上帝视角
  • 9.2 Flowmill
展开全部