写在前面
eBPF 是一项革命性的技术!
内核对于很多开发者来说,就是一个像黑洞一样的存在。它是操作系统最核心的存在,管理者我们的整个计算机和外设。基于稳定性,性能和安全性,我们对内核的任何修改往往是慎之又慎。
但是。
eBPF的出现了,它几乎无需通过更改任何内核源代码或加载内核模块就可以监控内核,并安全有效地扩展内核的功能。
但是:
- eBPF非常依赖内核数据结构,无法兼容不同内核版本,这也导致我们开发出来的eBPF程序兼容性非常差,这对开发者是非常不友好的。
- 除此之外,eBPF程序想要成功的跑起来,需要经历编码、编译,加载,校验,运行。从内核拿到我们想要的数据后,还要考虑善后,如卸载等。
那么我们就需要有一个管理器可以帮我们来实现。于是BCC来了。
通过第五章的介绍,我们知道,BCC(BPF Compiler Collection)非常强大。它是一个可以用于创建高效BPF程序的,非常强大的框架和工具集。它通过多年来的发展和众多开发者的支持,它已经拥有了内核几乎针对各个子系统或模块相关的检测工具。
不过当我们需要开发一个BPF应用程序,该应用程序在实现各种跟踪BPF程序时需要深入了解内核内部时,BCC是首选框架。在过去,它差不多是我们开发eBPF程序唯一的选择。
但是:
- BCC并不能