展开全部

主编推荐语

深入理解Linux内核中BPF虚拟机专业知识的首本著作,面向系统工程师的实践指南。

内容简介

通过本书,你不仅可以深入了解BPF程序的生命周期,熟悉日常工作所需的基本概念,增强有关性能优化、网络和安全方面的知识。

还可以学习如何编写观测和修改内核行为的应用程序,以及通过代码注入的方式对内核事件进行监控、跟踪和安全观测等内容。同时,本书展示了相关的C、Go和Python代码示例。

本书将BPD知识系统的汇总在一起,使BPF爱好者能系统地学习这一技术。

目录

  • 版权信息
  • O'Reilly Media, Inc.介绍
  • 业界评论
  • 推荐序
  • 译者序 学习的心与勇气的赞歌
  • 序言
  • 前言
  • 第1章 引言
  • 1.1 BPF的历史
  • 1.2 架构
  • 1.3 小结
  • 第2章 运行第一个BPF程序
  • 2.1 编写BPF程序
  • 2.2 BPF程序类型
  • 2.2.1 套接字过滤器程序
  • 2.2.2 kprobe程序
  • 2.2.3 跟踪点程序
  • 2.2.4 XDP程序
  • 2.2.5 Perf事件程序
  • 2.2.6 cgroup套接字程序
  • 2.2.7 cgroup打开套接字程序
  • 2.2.8 套接字选项程序
  • 2.2.9 套接字映射程序
  • 2.2.10 cgroup设备程序
  • 2.2.11 套接字消息传递程序
  • 2.2.12 原始跟踪点程序
  • 2.2.13 cgroup套接字地址程序
  • 2.2.14 套接字重用端口程序
  • 2.2.15 流量解析程序
  • 2.2.16 其他BPF程序
  • 2.3 BPF验证器
  • 2.4 BPF类型格式
  • 2.5 BPF尾部调用
  • 2.6 小结
  • 第3章 BPF映射
  • 3.1 创建BPF映射
  • 3.2 使用BPF映射
  • 3.2.1 更新BPF映射元素
  • 3.2.2 读取BPF映射元素
  • 3.2.3 删除BPF映射元素
  • 3.2.4 迭代BPF映射元素
  • 3.2.5 查找和删除元素
  • 3.2.6 并发访问映射元素
  • 3.3 BPF映射类型
  • 3.3.1 哈希表映射
  • 3.3.2 数组映射
  • 3.3.3 程序数组映射
  • 3.3.4 Perf事件数组映射
  • 3.3.5 单CPU哈希映射
  • 3.3.6 单CPU数组映射
  • 3.3.7 栈跟踪映射
  • 3.3.8 cgroup数组映射
  • 3.3.9 LRU哈希和单CPU的LRU哈希映射
  • 3.3.10 LPM Tire映射
  • 3.3.11 映射数组和映射哈希
  • 3.3.12 设备映射的映射
  • 3.3.13 CPU映射的映射
  • 3.3.14 打开套接字映射
  • 3.3.15 套接字数组和哈希映射
  • 3.3.16 cgroup存储和单CPU的cgroup存储映射
  • 3.3.17 重用端口套接字映射
  • 3.3.18 队列映射
  • 3.3.19 栈映射
  • 3.4 BPF虚拟文件系统
  • 3.5 小结
  • 第4章 BPF跟踪
  • 4.1 探针
  • 4.1.1 内核探针
  • 4.1.2 跟踪点
  • 4.1.3 用户空间探针
  • 4.1.4 用户静态定义跟踪点
  • 4.2 跟踪数据可视化
  • 4.2.1 火焰图
  • 4.2.2 直方图
  • 4.2.3 Perf事件
  • 4.3 小结
  • 第5章 BPF工具
  • 5.1 BPFTool
  • 5.1.1 安装
  • 5.1.2 特征查看
  • 5.1.3 检查BPF程序
  • 5.1.4 检查BPF映射
  • 5.1.5 查看附加到特定接口的程序
  • 5.1.6 批量加载命令
  • 5.1.7 显示BTF信息
  • 5.2 BPFTrace
  • 5.2.1 安装
  • 5.2.2 语言参考
  • 5.2.3 过滤
  • 5.2.4 动态映射
  • 5.3 kubectl-trace
  • 5.3.1 安装
  • 5.3.2 检查kubernetes节点
  • 5.4 eBPF Exporter
  • 5.4.1 安装
  • 5.4.2 导出BPF度量
  • 5.5 小结
  • 第6章 Linux网络和BPF
  • 6.1 BPF和数据包过滤
  • 6.1.1 tcpdump和BPF表达式
  • 6.1.2 原始套接字的数据包过滤
  • 6.2 基于BPF的流量控制分类器
  • 6.2.1 术语
  • 6.2.2 使用cls_bpf的流量控制分类器程序
  • 6.2.3 流量控制和XDP的区别
  • 6.3 小结
  • 第7章 XDP
  • 7.1 XDP程序概述
  • 7.1.1 操作模式
  • 7.1.2 数据包处理器
  • 7.1.3 XDP和iproute2加载器
  • 7.2 XDP和BCC
  • 7.3 测试XDP程序
  • 7.4 XDP用户案例
  • 7.4.1 监控
  • 7.4.2 DDoS攻击缓解
  • 7.4.3 负载均衡
  • 7.4.4 防火墙
  • 7.5 小结
  • 第8章 Linux内核安全、能力和Seccomp
  • 8.1 能力
  • 8.2 Seccomp
  • 8.2.1 Seccomp错误
  • 8.2.2 Seccomp的BPF过滤器示例
  • 8.3 BPF的LSM钩子
  • 8.4 小结
  • 第9章 真实的用户案例
  • 9.1 Sysdig eBPF上帝视角
  • 9.2 Flowmill
展开全部

评分及书评

评分不足
1个评分
  • 用户头像
    给这本书评了
    5.0

    网络是互联网的基础,更是每个开发者都需要掌握的核心技术之一。但是网络对大多数开发者来说通常只是一个黑盒子,可以看到输入和输出,却很难了解内部的工作原理。这就带来了一个很多人都会碰到的难题,即网络问题的排查和性能优化。Linux 内核中的 BPFBerkeley Packet Filter)为这个问题提供了一种神奇的解决方法,即通过内核事件来动态跟踪内核中的网络行为。

      转发
      评论

    出版方

    机械工业出版社有限公司

    机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。