首本深入讲解Linux内核观测技术BPF的书上市!

新书速递

导读:BPF通过一种软件定义的方式,将内核的行为和数据暴露给用户空间,开发者可以通过在用户空间编写BPF程序,加载到内核空间执行,进而实现对内核行为的灵活管理和控制。

在计算机系统中,包过滤器通常有一个特定的用途,那就是提供给应用程序来监控系统的网络与内核运行的相关信息。这些监控程序对于系统的开发者、运维者、或者是安全管理者,都有着重要的意义。

 

有了更加细粒度的网络数据和内核运行数据,对于开发者来说,就可以根据当前系统的运行情况,合理的优化程序,提高程序的性能同时降低资源开销;对于系统运维者来说,能够拿到精确全面的系统运行数据,可以更好的对系统进行监控,保证系统的可靠性与高可用性;对于安全管理者来说,可以从这些网络和内核行为中,发现异常,进而在攻击行为发生的早期,发现攻击并且能够快速的进行响应和修复。

 

BPF(Berkeley Packet Filter)就是这样的一种包过滤器,从其诞生之初,就引起了人们的广泛关注与应用,尤其是近年来,随着微服务和云原生的发展和落地,BPF更是成为了内核开发者最受追捧的技术之一。

 

可观测性是一种新兴的实践,尝试从不同角度来解决问题。可观测性被定义成一种能力,可以对给定系统提出的任意问题,寻求到复杂的答案。可观测性、日志和度量聚合三者的主要区别是收集的数据内容。如果可观测性的实践需要随时随地回答任意问题,那么唯一可行的方式就是收集系统中生成的所有数据,在需要回答问题的时候聚合收集到的数据。

 

Linux容器是Linux内核实现进程隔离和管理进程的一系列特性的抽象。传统上内核负责资源管理,并提供任务隔离和安全。在Linux系统中,容器基于内核的命名空间和cgroups特性。命名空间将任务彼此隔离。在一个命名空间内,你仿佛看不到系统内其他任务在运行。cgroups是提供资源管理的组件。从操作的角度看,cgroups对资源使用提供了细粒度控制,例如,CPU、磁盘I/O、网络等。在过去的十年里,随着Linux容器的普及,软件工程师设计大型分布式系统和计算平台的方式已经发生变化。多租户计算平台已经完全依赖于内核中的这些特性。

 

首本深入讲解Linux内核观测技术BPF的书上市!_第1张图片

今天给大家介绍一本讲解Linux内核观测技术BPF的第一本书:《Linux内核观测技术BPF》。本书将详细地介绍BPF架构的每个组件,你可以学习使用BPF的扩展性以及数据共享机制。同时,本书还会提供一些具体示例,涉及栈跟踪分析、网络过滤和运行时隔离等内容。

 

内容简介

本书是一本面向系统工程师的实践指南,皆在帮助他们获得Linux内核中BPF虚拟机的专业知识。

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

还可以学习如何编写观测和修改内核行为的应用程序,以及通过代码注入的方式对内核事件进行监控、跟踪和安全观测等内容。

同时,本书展示了相关的CGoPython代码示例。

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

 

译者简介

范彬

在容器技术领域工作多年,潜心研究,对DockerKubernetes技术有丰富的实践经验,一直保持热情和努力去研究新的内核和网络等方面的技术。现任中国电信天翼云容器组组长,带领团队研发了具有100%自主知识产权的天翼云容器引擎平台,并在金融等多个行业得到成功应用。

 

狄卫华

趣头条资深架构师,拥有近15年的软件研发和架构经验,专注于高并发、微服务架构和云原生技术,具有丰富的大型软件架构设计和实施落地经验;熟悉Linux内核技术和网络、擅长性能调优和问题排查定位;熟悉Kubernetes Docker 技术,有丰富的容器化实践经验。 

作者简介

 

大卫·卡拉维拉(David Calavera

是Netlify的CTO,曾是Docker的维护者以及RuncGoBCC工具及其他开源项目的贡献者。他构建和促进了Docker插件生态系统,因Docker项目的工作而闻名。David非常喜欢使用火焰图和进行性能优化。

 

洛伦佐·丰塔纳(Lorenzo Fontana

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

 

目录

1章 引言9

1.1 BPF的历史10

1.2 架构12

1.3 小结13

 

2章 运行第一个BPF程序14

2.1 编写BPF程序14

2.2 BPF程序类型17

2.3 BPF验证器24

2.4 BPF类型格式26

2.5 BPF尾部调用27

2.6 小结27

 

3BPF映射28

3.1 创建BPF映射28

3.2 使用BPF映射30

3.3 BPF映射类型40

3.4 BPF虚拟文件系统52

3.5 小结55

 

4BPF跟踪56

4.1 探针57

4.2 跟踪数据可视化71

4.3 小结81

 

5BPF工具82

5.1 BPFTool82

5.2 BPFTrace92

5.3 kubectl-trace97

5.4 eBPF Exporter98

5.5 小结100

 

6Linux网络和BPF102

6.1 BPF和数据包过滤103

6.2 基于BPF的流量控制分类器115

6.3 小结125

 

7XDP126

7.1 XDP程序概述127

7.2 XDPBCC138

7.3 测试XDP程序141

7.4 XDP用户案例147

7.5 小结149

 

8Linux内核安全、能力和Seccomp150

8.1 能力150

8.2 Seccomp154

8.3 BPFLSM钩子162

8.4 小结163

 

9章 真实的用户案例164

9.1 Sysdig eBPF上帝视角164

9.2 Flowmill167

上下滑动查看

点击链接了解详情并购买

 

更多精彩回顾

书讯 |华章计算机拍了拍你,并送来了8月书单(下)

书讯 | 华章计算机拍了拍你,并送来了8月书单(上)

上新 | 三个男人一台戏,为云原生应用和OpenShift写了一本书
书单 | 《天才引导的历程》| 西安交通大学送给准大一新生的礼物

干货 | 机器人干活,我坐一边喝茶——聊聊最近爆火的RPA

收藏 | 揭秘阿里巴巴的客群画像

点击阅读原文购买

你可能感兴趣的:(首本深入讲解Linux内核观测技术BPF的书上市!)