好书推荐 | 想学eBPF?这本书你一定要读一读

百家 作者:绿盟科技 2020-03-04 14:46:14

背景介绍


BPF(BSD Packet Filter)是很早就有的内核特性,最早可以追溯到1992年发表在USENIX Conference上的一篇论文。后来由于BPF的理念逐渐成为主流,为各大操作系统所接受,这样早期“B”所代表的BSD便渐渐淡去,最终演化成了今天我们眼中的BPF(Berkeley Packet Filter)。BPF在主机的包处理上有着重要的应用,比如我们熟知的tcpdump,其底层就是依赖BPF实现的包过滤。


得益于BPF在包过滤上的良好表现,2013年,Alexei Starovoitov对BPF进行彻底的改造,并增加了新的功能,改善了它的性能,这个新版本被命名为eBPF(extended BPF),新版本的BPF全面兼容并扩充了原有的BPF功能。因此,将传统的BPF重命名为cBPF(classical BPF),相对应的,新版本的BPF则命名为eBPF或直接称为BPF。Kernel 3.15版本开始实现对eBPF的支持。

今天要推荐的这本书,是2019年11月由O'Reilly出版发行的,本书系统全面的对eBPF进行了分析和讲解。由于eBPF相对来讲还比较新,这本书是第一本全面对其进行介绍的书籍,对于eBPF的入门学习有着很大的帮助。


全书一共分为9个章节,绿盟君大概把这9个章节分为四部分:


  • 第一部分,即ch1-ch3,主要介绍了eBPF的基本原理、基本的数据结构以及一些Hello World程序,让读者知道eBPF是什么,对它有一个初步的认识;


  • 第二部分,即ch4-ch5,这一部分主要介绍了eBPF在Tracing方面所能实现的功能,以及如何去做相应的Tracing工作,同时介绍了目前存在的一些简单实用的eBPF Tracing工具;


  • 第三部分,即ch6-ch7,重点讲解了eBPF在网络上的应用,结合XDP,介绍如何实现对主机上的网络包进行高效的过滤和处理;


  • 第四部分,介绍了BPF在当前的Linux内核中的一些应用,以及在企业中实际的一些应用场景;


全书共用150页左右,就全面的回答了eBPF是什么、能干什么、怎么用、谁在用这些问题,可以说每一字每一句都是干货。


除此之外,本书还有一个很大的亮点:在每部分的介绍中,都穿插了具体的、可运行的代码示例对这些基本功能进行验证展示,加深了读者的认识和理解。而且书中所有的示例代码,均可以在github中进行下载运行。


唯一美中不足的是,对于eBPF在性能(Performance)分析上的应用,全书只是在Tracing部分做了简单的介绍,并未进行深入的展开分析。这可能与作者的技术背景和公司背景有关,当然,这并不影响绿盟君对本书的喜爱。


对Linux内核开发、Linux应用程序性能分析与优化、Linux安全、云原生安全等领域感兴趣的开发者,读完此书一定会让你收益匪浅。


图书链接:

https://www.oreilly.com/library/view/linux-observability-with/9781492050193/


github下载地址:

https://github.com/bpftools/linux-observability-with-bpf





请点击屏幕右上方“…”

关注绿盟科技公众号
NSFOCUS-weixin

↑↑↑长按二维码,下载绿盟云APP

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接