fbpx

[email protected]

购物车

 查看订单

  • 我的帐户
东东购 | EasternEast
  • 中文书店
    • 畅销排行榜
      • 小说 畅销榜
      • 童书 畅销榜
      • 外语畅销榜
      • 管理畅销榜
      • 法律畅销榜
      • 青春文学畅销榜
    • 热门分类
      • 社会小说
      • 成功/励志 畅销榜
      • 人物传记
      • 大陆原创
      • 绘本童书
      • 影视小说
    • 文学推荐
      • 文集
      • 戏剧
      • 纪实文学
      • 名家作品
      • 民间文学
      • 中国现当代随笔
    • 新书热卖榜
      • 小说 新书热卖榜
      • 青春文学 新书热卖榜
      • 童书 新书热卖榜
      • 管理 新书热卖榜
      • 成功/励志 新书热卖榜
      • 艺术 新书热卖榜
  • 精选分类
    • 小说
    • 保健养生
    • 烹饪/美食
    • 风水/占卜
    • 青春文学
    • 童书
    • 管理
    • 成功/励志
    • 文学
    • 哲学/宗教
    • 传记
    • 投资理财
    • 亲子家教
    • 动漫/幽默
    • 法律 Legal
    • 经济 Economics
    • 所有分类
  • 关于东东
  • 帮我找书
搜索
首页计算机/网络程序设计eBPF开发指南从原理到应用

eBPF开发指南从原理到应用

作者:丰生强 李泊冰 出版社:人民邮电出版社 出版时间:2024年12月 

ISBN: 9787115643605
年中特卖用“SALE15”折扣卷全场书籍85折!可与三本88折,六本78折的优惠叠加计算!全球包邮!
trust badge

EUR €63.99

类别: 计算机/网络 新书热卖榜, 程序设计 SKU:67722ccda15f9082ca725ea7 库存: 有现货
  • 描述
  • 评论( 0 )

描述

包 装: 平装是否套装: 否国际标准书号ISBN: 9787115643605

编辑推荐
面对 Linux 系统监控与性能分析的复杂挑战,你是否感到困惑与无助?遭遇线上服难题时,你是否渴望一把解锁内核与应用运行奥秘的钥匙?不用担心,eBPF 技术便是你的新选择。本书将是你在这场探索之旅中的指南针,引领你穿越内核的复杂迷宫,发掘 eBPF 的强大功能。从基础到高级,从监控网络流量到优化应用性能,本书不仅传授理论,更提供实践指南。让我们携手,借助eBPF 的力量,开启系统架构的新时代。 
内容简介
本书详细介绍了 eBPF 核心技术及其应用。全书可分为 eBPF 基础知识、进阶应用和实际案例三大部分,覆盖了 eBPF 的编程接口、架构及其在性能分析、安全监控和网络协议等方面的应用。读者将通过 C、Go 和Python 等语言学习 eBPF 编程,并掌握其在系统监控、数据分析和性能提升方面的实际技巧。

本书适合不同层次的读者,包括对操作系统或应用程序监控感兴趣的学生和初学者、希望利用 eBPF 进行内核代码调试和优化的 Linux 内核开发人员、使用 eBPF 监控系统事件和分析恶意软件的安全工程师和逆向工程师、通过 eBPF 收集性能数据以优化软件和系统性能的性能分析师和应用程序开发者,以及希望优化虚拟化软件性能和管理的虚拟化开发人员。

作者简介
丰生强 独立软件安全研究员, 资深软件安全专家,ISC2016 安全训练营独立讲师,拥有丰富的软件安全实战经验。自2008年起,在安全杂志《黑客防线》上发表技术文章, 活跃于国内各大软件安全论坛,具有深厚的行业影响力。著有《Android 软件安全与逆向分析》《macOS 软件安全与逆向分析》等热销图书,深受读者喜爱。
李泊冰 安全专家,资深程序员,专注于移动安全研究。拥有近 10 年的行业经验,擅长软件安全攻防对抗,多次从零开始构建企业移动安全体系,具备丰富的实战经验。曾在国内多家互联网公司任职,涉及电商、短视频、游戏、杀毒软件等多个领域。业余时间致力于软件与系统底层技术的研究。
目  录
第 1 章 eBPF 概述 1

1.1 eBPF 是什么 1

1.2 eBPF 发展历史 2

1.3 eBPF 应用领域 4

1.4 eBPF 如何运行 5

1.5 eBPF 相关工具与库 6

1.5.1 BCC 6

1.5.2 bpftrace 7

1.5.3 libbpf 8

1.6 初识 eBPF 程序 8

1.7 本章小结 9

第 2 章 eBPF 开发环境准备 10

2.1 Linux 发行版本的选择 10

2.2 编程语言的选择 12

2.3 安装和配置 Linux 操作系统

环境 13

2.3.1 Windows 上安装和配置

Linux 14

2.3.2 macOS 上安装和配置

Linux 16

2.3.3 其他环境安装 17

2.4 以二进制方式安装 eBPF 开发

工具与库 20

2.4.1 安装 BCC 20

2.4.2 安装 bpftrace 21

2.4.3 安装 libbpf 21

2.5 以源码方式安装 eBPF 开发

工具与库 22

2.5.1 编译安装 BCC 22

2.5.2 编译安装 bpftrace 23

2.5.3 编译安装 libbpf 24

2.6 本章小结 24

第 3 章 Linux 动态追踪技术 25

3.1 Linux 动态追踪系统 25

3.2 前端工具和库 26

3.2.1 strace 与 ltrace 26

3.2.2 DTrace 29

3.2.3 SystemTap 30

3.2.4 LTTng 30

3.2.5 trace-cmd 31

3.2.6 perf 31

3.3 数据采集机制 35

3.3.1 ptrace 系统调用 36

3.3.2 perf_event_open 系统

调用 36

3.3.3 BPF 系统调用 37

3.3.4 其他子系统与内核

模块 37

3.4 跟踪文件系统 37

3.4.1 挂载位置 38

3.4.2 目录详情 38

3.4.3 跟踪器 43

3.4.4 跟踪选项 44

3.4.5 环形缓冲区 47

3.5 Linux 内核数据源 48

3.5.1 ftrace 49

3.5.2 kprobe/kretprobe 70

目录

– 2 –

3.5.3 uprobe/uretprobe 74

3.5.4 tracepoint 77

3.6 eBPF 数据采集点 83

3.7 本章小结 84

第 4 章 eBPF 程序入门 85

4.1 第 一个 eBPF 程序 85

4.1.1 第 一个 BCC 程序 85

4.1.2 第 一个 C 语言版本的

eBPF 程序 86

4.2 eBPF 程序功能解读 91

4.2.1 加载 eBPF 字节码 92

4.2.2 BPF 系统调用 93

4.2.3 attach_kprobe 96

4.2.4 perf_event_open 系统

调用 96

4.3 eBPF 授权协议 102

4.4 eBPF 指令集 103

4.4.1 eBPF 寄存器 103

4.4.2 eBPF 指令编码 104

4.4.3 指令列表 105

4.4.4 eBPF 指令分析 109

4.4.5 BCC 中 eBPF 程序指令的

生成 110

4.4.6 eBPF 指令反汇编 112

4.4.7 eBPF 验证机制 117

4.5 libbpf 126

4.5.1 libbpf 功能 126

4.5.2 libbpf 接口 127

4.6 libbpf 案例程序 128

4.7 重写 eBPF 程序 131

4.7.1 如何编译 132

4.7.2 编译内核态程序 135

4.7.3 编译生成 skel 头文件 136

4.7.4 编译用户态程序 141

4.8 本章小结 143

第 5 章 BCC 144

5.1 BCC 工具集 145

5.1.1 tools 工具集 146

5.1.2 libbpf-tools 工具集 146

5.2 BCC 常用的工具 147

5.2.1 opensnoop 147

5.2.2 exitsnoop 149

5.2.3 execsnoop 150

5.3 使用 Python 开发 eBPF 程序 152

5.3.1 BPF API 152

5.3.2 opensnoop 程序解读 157

5.4 使用 libbcc 开发 eBPF 程序 165

5.4.1 libbcc 的编译与安装 166

5.4.2 重写 eBPF 程序 167

5.4.3 编译与测试 175

5.5 本章小结 181

第 6 章 bpftrace 182

6.1 bpftrace 的功能和特性 182

6.1.1 工程结构 182

6.1.2 探针类型 184

6.1.3 特性 185

6.1.4 主程序 185

6.2 bpftrace 的脚本语法 191

6.3 探针类型 198

6.3.1 kprobe 和 kretprobe 198

6.3.2 uprobe 和 uretprobe 200

6.3.3 跟踪点 202

6.3.4 USDT 204

6.3.5 定时器事件 208

6.3.6 软件与硬件事件 209

6.3.7 内存监视点 211

6.3.8 kfunc 和 kretfunc 214

6.3.9 迭代器 215

6.3.10 开始块与结束块 217

目录

– 3 –

6.4 bpftrace 变量 217

6.4.1 内置变量 217

6.4.2 基础变量 218

6.4.3 关联数组 221

6.5 bpftrace 函数 221

6.5.1 基础函数 221

6.5.2 映射表相关函数 225

6.6 bpftrace 的工作原理 226

6.7 bpftrace 工具集 231

6.8 本章小结 236

第 7 章 使用 Golang 开发 eBPF 程序 238

7.1 Go 语言开发环境介绍 238

7.2 使用 libbpfgo 开发 eBPF

程序 239

7.2.1 搭建 libbpfgo 开发

环境 239

7.2.2 开发 eBPF 程序 241

7.3 Cilium 与 ebpf-go 244

7.3.1 搭建 ebpf-go 开发

环境 244

7.3.2 使用 ebpf-go 开发 eBPF

程序 245

7.3.3 bpf2go 和 bpftool 249

7.4 本章小结 255

第 8 章 BTF 与 CO-RE 256

8.1 什么是 CO-RE 257

8.2 BTF 详解 258

8.2.1 BTF 数据结构 258

8.2.2 BTF 内核 API 261

8.2.3 生成 BTF 信息 262

8.2.4 二进制中的 BTF 264

8.2.5 BTF 相关辅助函数 265

8.3 对 BTF 的处理 266

8.3.1 编译器对 BTF 的处理 266

8.3.2 libbpf 对 BTF 的处理 268

8.4 读取内核结构体字段 269

8.4.1 案例一:直接访问

结构体 269

8.4.2 案例二:使用 bpf_get_

current_task_btf 270

8.4.3 案例三:使用 BPF_

CORE_READ 271

8.4.4 BTF 相关的其他宏 273

8.5 低版本系统如何支持 BTF 274

8.5.1 什么是 BTFHub 275

8.5.2 生成最小化的 BTF

信息 279

8.5.3 编译运行 BTF-App 280

8.6 本章小结 285

第 9 章 eBPF 程序的数据交换 286

9.1 eBPF 程序的数据结构 286

9.1.1 什么是 eBPF map 286

9.1.2 map 支持的数据类型 291

9.2 map 操作接口 294

9.2.1 eBPF map 相关的 API 294

9.2.2 创建 map 299

9.2.3 添加数据 300

9.2.4 查询 301

9.2.5 遍历数据 301

9.2.6 删除数据 302

9.2.7 使用 bpftool 操作 map 302

9.3 map 在内核中的实现 306

9.3.1 创建 map 对象 307

9.3.2 map 对象的生命周期 314

9.3.3 eBPF 对象持久化 315

9.4 ftrace 的 eBPF 数据交换接口 317

9.4.1 bpf_trace_printk 317

9.4.2 封装的 bpf_printk 宏 320

9.4.3 trace 日志的输出格式 321

目录

– 4 –

9.5 perf 事件 322

9.5.1 perf 事件的 map 类型 323

9.5.2 内核态程序写入 perf

事件 324

9.5.3 用户态程序读取 perf

事件 327

9.5.4 BCC 中 perf 事件处理 330

9.6 环形缓冲区 333

9.6.1 eBPF ringbuf 的 map

类型 334

9.6.2 内核态程序如何使用

ringbuf 335

9.6.3 用户态程序如何使用

ringbuf 344

9.6.4 完整的数据交换实例 346

9.7 本章小结 351

第 10 章 eBPF 程序类型与挂载点 353

10.1 常见的 eBPF 程序类型 353

10.1.1 跟踪和分析类 355

10.1.2 网络类 356

10.2 eBPF 程序挂载点 357

10.3 函数跟踪技术 358

10.3.1 内核态程序跟踪 358

10.3.2 用户态程序跟踪 360

10.4 kprobe 361

10.4.1 内核中使用 kprobe

探针 361

10.4.2 kretprobe 365

10.4.3 eBPF 中创建 kprobe

跟踪 368

10.5 uprobe 372

10.5.1 创建单行程序测试

uprobe 372

10.5.2 eBPF 中创建 uprobe

跟踪 373

10.5.3 bashreadline 程序 377

10.6 USDT 379

10.6.1 在 BCC 中使用

USDT 379

10.6.2 在 libbpf 中使用

USDT 384

10.7 本章小结 387

第 11 章 eBPF 内核辅助方法 388

11.1 如何查阅内核辅助方法 388

11.2 辅助方法的实现原理 389

11.3 eBPF 内核辅助方法分类 392

11.3.1 网络相关的辅助

方法 392

11.3.2 数据处理类辅助

方法 396

11.3.3 跟踪相关的辅助

方法 398

11.3.4 系统功能性辅助

方法 399

11.4 常用的 eBPF 内核辅助方法 401

11.5 本章小结 404

第 12 章 Linux 性能分析 405

12.1 CPU 406

12.1.1 CPU 基础知识 406

12.1.2 传统 CPU 分析工具 409

12.1.3 eBPF 相关分析工具 412

12.1.4 CPU 分析策略 413

12.2 内存 414

12.2.1 内存基础知识 414

12.2.2 传统内存分析工具 419

12.2.3 eBPF 内存分析工具 419

12.2.4 内存分析方法 420

12.3 磁盘 I/O 420

12.3.1 磁盘 I/O 基础知识 420

目录

– 5 –

12.3.2 传统分析工具 423

12.3.3 BCC 中的分析工具 423

12.3.4 磁盘性能分析方法 423

12.4 网络 424

12.4.1 网络基础知识 424

12.4.2 传统网络分析工具 426

12.4.3 eBPF 网络分析

工具 426

12.5 常用分析方法和案例 427

12.6 本章小结 428

第 13 章 eBPF 实战应用 429

13.1 在网络安全中的应用 429

13.2 在软件动态分析中的应用 432

13.3 在安全环境增强中的应用 439

13.4 在网络数据处理中的应用 443

13.5 在系统与云原生安全中的

应用 446

13.6 本章小结 448

媒体评论
eBPF 作为 Linux 内核的一项革命性技术,以轻量级方式构建了应用与内核的通道。然而,这项技术的

学习和精通并非易事,目前市面上缺少一本全面覆盖从基础到高级的系统教程。本书从 eBPF 的基本

概念出发,深入探讨其架构、编程接口和实际应用,旨在帮助读者全面掌握 eBPF 程序开发流程,并在

实际应用中得心应手。

—— 陈莉君 西安邮电大学教授

本书深入剖析了 eBPF 技术的精髓,不仅为安全研究者提供了强大的工具集,也为程序开发者开辟了性能优化的新天地。本书内容翔实,案例丰富,无

抢先评论了 “eBPF开发指南从原理到应用” 取消回复

评论

还没有评论。

相关产品

加入购物车

Java从入门到精通(第4版)(附光盘)

EUR €43.99
评分 5.00 / 5
阅读更多
缺货

算法(第4版)【Sedgewick之巨著,与高德纳TAOCP一脉相承】

EUR €58.99
评分 5.00 / 5
加入购物车

Python基础教程(第3版)

EUR €58.99
加入购物车

Python核心编程 第3版

EUR €48.99
评分 5.00 / 5

东东购的宗旨是服务喜爱阅读中文书籍的海外人民,提供一个完善的购书平台,让国人不论何时何地都能沉浸在书香之中,读着熟悉的中文字,回忆着家乡的味道。


安全加密结账 安心网络购物 支持Paypal付款

常见问题

  • 货物配送
  • 退换货政策
  • 隐私政策
  • 联盟营销

客户服务

  • 联系东东
  • 关于东东
  • 帮我找书
  • 货物追踪
  • 会员登入

订阅最新的优惠讯息和书籍资讯

选择币别

EUR
USD
CAD
AUD
NZD
NOK
GBP
CHF
SEK
CNY
UAH
ILS
SAR
MXN
KRW
MYR
SGD
HUF
TRY
JPY
HKD
TWD
facebookinstagram
©2020 东东购 EasternEast.com

限时特卖:用“SALE15”优惠券全场书籍85折!可与三本88折,六本78折的优惠叠加计算。 忽略