当前位置: 首页 > news >正文

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

新书速递

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

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

 

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

 

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

 

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

 

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

 

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

 

内容简介

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

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

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

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

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

 

译者简介

范彬

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

 

狄卫华

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

作者简介

 

大卫·卡拉维拉(David Calavera)

是Netlify的CTO,曾是Docker的维护者以及Runc、Go和BCC工具及其他开源项目的贡献者。他构建和促进了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

 

●第3章 BPF映射28

3.1 创建BPF映射28

3.2 使用BPF映射30

3.3 BPF映射类型40

3.4 BPF虚拟文件系统52

3.5 小结55

 

●第4章 BPF跟踪56

4.1 探针57

4.2 跟踪数据可视化71

4.3 小结81

 

●第5章 BPF工具82

5.1 BPFTool82

5.2 BPFTrace92

5.3 kubectl-trace97

5.4 eBPF Exporter98

5.5 小结100

 

●第6章 Linux网络和BPF102

6.1 BPF和数据包过滤103

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

6.3 小结125

 

●第7章 XDP126

7.1 XDP程序概述127

7.2 XDP和BCC138

7.3 测试XDP程序141

7.4 XDP用户案例147

7.5 小结149

 

●第8章 Linux内核安全、能力和Seccomp150

8.1 能力150

8.2 Seccomp154

8.3 BPF的LSM钩子162

8.4 小结163

 

●第9章 真实的用户案例164

9.1 Sysdig eBPF上帝视角164

9.2 Flowmill167

上下滑动查看

点击链接了解详情并购买

 

更多精彩回顾

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

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

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

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

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

点击阅读原文购买

相关文章:

  • AI不止能美颜,美妆迁移这样做
  • 【第17期】云原生应用:任何企业都是软件公司
  • 如何从0到1搭建大数据平台
  • 策略产品经理实践:主观评估的方法论
  • 一条SQL引发的“血案”:与SQL优化相关的4个案例
  • AI移动端算法优化之盒子滤波
  • 研究股票?我们偷偷告诉你一个算法
  • 用Spark进行实时流计算的那些技巧
  • 数字人民币要来了!试点全面展开,一文看懂央行数字货币背后逻辑
  • 模型独立学习:多任务学习与迁移学习
  • 看完这篇还不了解 Nginx,那我就哭了!
  • 流量红利已经耗尽?这几本书带你玩转电商各路技巧
  • 乘风破浪的迁移学习!四字成语讲明白这个大热研究方向
  • 详解阿里巴巴1688日常业务中的榜单算法
  • 干货请收好:终于有人把用户画像的流程、方法讲明白了
  • 10个确保微服务与容器安全的最佳实践
  • Java多态
  • mongo索引构建
  • Spring Boot MyBatis配置多种数据库
  • tweak 支持第三方库
  • webpack入门学习手记(二)
  • 基于axios的vue插件,让http请求更简单
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 一个完整Java Web项目背后的密码
  • 阿里云ACE认证学习知识点梳理
  • ​批处理文件中的errorlevel用法
  • #Linux(权限管理)
  • #NOIP 2014# day.2 T2 寻找道路
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • (2)nginx 安装、启停
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (二)c52学习之旅-简单了解单片机
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (附源码)计算机毕业设计高校学生选课系统
  • (排序详解之 堆排序)
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • *Django中的Ajax 纯js的书写样式1
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .net core 控制台应用程序读取配置文件app.config
  • .Net7 环境安装配置
  • .net访问oracle数据库性能问题
  • .NET关于 跳过SSL中遇到的问题
  • .NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth
  • ?
  • @AliasFor注解
  • [ C++ ] STL priority_queue(优先级队列)使用及其底层模拟实现,容器适配器,deque(双端队列)原理了解
  • []AT 指令 收发短信和GPRS上网 SIM508/548
  • [20181219]script使用小技巧.txt
  • [20190416]完善shared latch测试脚本2.txt
  • [ACM] hdu 1201 18岁生日
  • [AIGC 大数据基础]hive浅谈