引言
真正意义上的eBPF技术虽然诞生还不到十年时间(2014年首次提出eBPF概念),但已经发展成为当下炙手可热的技术。去年8月,由微软、谷歌、Facebook(已更名为meta) 等公司联合成立了eBPF基金会,大力发展eBPF技术。最近几年,eBPF技术在国内也得到了广泛应用,很多大厂也开始关注并采用eBPF技术。
eBPF简介
eBPF是extended BPF的缩写,而BPF是Berkeley Packet Filter的缩写。对linux网络比较熟悉的小伙伴对BPF应该比较了解,它通过特定的语法规则使用基于寄存器的虚拟机来描述包过滤的行为。比较常用的功能是通过过滤来统计流量,tcpdump就是基于BPF实现的。而eBPF对它进行了扩展来实现更多的功能。eBPF 技术支持在不同的集成点动态地将 eBPF 字节码插入到 Linux 内核中,例如: 网络 IO、应用套接字和跟踪点,以实现安全性、网络和可见性逻辑。eBPF 具有高效率和灵活性。
要了解更多关于 eBPF 的信息,可访问eBPF.io和性能分析大神brendan gregg的主页。
开源项目
- tracee
tracee是一款易于使用的轻量级系统追踪工具,在该工具的帮助下,开发人员可以实时监控系统调用和其他系统事件。它只会追踪新创建的进程和容器,也就是Tracee运行之后所开启的进程和容器,这样就可以帮助用户将注意力放在相关事件上,而不是系统