大多数介绍eBPF的文章都是用“eBPF是一种革命性的内核技术”来描绘的。这样讲一点也不夸张。因为它允许在Linux的内核中执行沙盒程序,在不改变内核源码或加载内核模块的前提下直接地,安全地,快捷地扩展内核,并改变内核的行为。可以想像在运行时,将用户空间的eBPF程序加载到内核中是如何的一种颠覆。
不像应用程序,由于内核拥有全局查看并控制整个操作系统的特权,其核心角色和对于稳定性和安全性的要求非常严格,这也成为了内核持续演进的阻碍,这也导致Linux操作系统级别的创新比较低。
eBPF从根本上改变了这种情况,开发者可以通过执行eBPF程序,来给运行时的内核扩展额外的能力,并且不影响Linux的安全性和执行效率。
eBPF实现了新一代高性能网络,可观测行和安全工具。它不需要以任何形式修改或重新配置应用程序,就可以监测应用程序 。那么我们可以使用eBPF做什么事情呢?
- 对系统的几乎全方位的性能跟踪能力
- 具有内置可见性的高性能网络能力
- 检测和防止恶意活动高安底座
今年来,催生了不少eBPF项目,涵盖了很多广泛的用例:现代化数据中心,云原生环境中提供高性能网络和负载均衡,以较低的开销提取细粒度的可观察行安全数据,帮助应用开发者追踪应用,并能够在性能故障分析,预防性应用和容器运行时安全等方面提供帮助。
三,eBPF的起源
我们今天所说的eBPF起源于BC