eBPF:强大功能解析与“Hello World”示例实践
一、eBPF历史与命名
想要深入了解eBPF的历史,参考从一开始就参与其开发的维护者的观点是个不错的选择。Alexei Starovoitov曾做过一个关于BPF历史的精彩演讲,追溯其源于软件定义网络(SDN)的根源。在演讲中,他讨论了让早期eBPF补丁被内核接受所采用的策略,并揭示eBPF的官方诞生日期是2014年9月26日,这一天标志着涵盖验证器、BPF系统调用和映射的第一组补丁被接受。
Daniel Borkmann也探讨过BPF的历史及其向支持网络和跟踪功能的演变。他的演讲 “eBPF and Kubernetes: Little Helper Minions for Scaling Microservices” 充满了有趣的信息。
eBPF的应用范围远远超出了数据包过滤,以至于这个首字母缩写词现在基本上失去了原本的意义,它已成为一个独立的术语。如今广泛使用的Linux内核都支持 “扩展” 部分,因此eBPF和BPF这两个术语在很大程度上可以互换使用。在内核源代码和eBPF编程中,常用术语是BPF。例如,与eBPF交互的系统调用是 bpf() ,辅助函数以 bpf_ 开头,不同类型的(e)BPF程序以 BPF_PROG_TYPE 开头的名称来标识。在核社区之外,“eBPF” 这个名称似乎更常用,比如在社区网站 ebpf.io 和eBPF基金会的名称中。
二、Linux内核与eBPF
要理解eBPF,需要深入掌握Linux中内核和用户空间的区别。Linu
超级会员免费看
订阅专栏 解锁全文
653

被折叠的 条评论
为什么被折叠?



