近日,在 2022 云栖大会龙蜥峰会 eBPF & Linux 稳定性专场上,来自 eBPF 技术探索 SIG Maintainer 、浙江大学的郑昱笙分享了《eunomia-bpf:eBPF 轻量级开发框架》技术演讲,以下为本次演讲内容:
大家好!我是来自浙江大学的郑昱笙,今天为大家介绍下 eunomia-bpf 项目作为一个为了简化 eBPF 程序的开发、分发、运行而设计的轻量级 eBPF 开发框架的背景和目标;再通过一些简单的实例,展示一下 eunomia-bpf 是如何从云端一行命令下载运行 eBPF 程序、只编写内核态代码即可运行和导出事件,以及和 WebAssembly 的结合等功能,最后简要阐述一下 eunomia-bpf 的原理和设计实现的思路,探讨一下接下来的发展方向。
eunomia-bpf 项目龙蜥社区开源仓库:https://gitee.com/anolis/eunomia
概要
eunomia-bpf 起源于 2022 年全国大学生操作系统大赛,希望将 eBPF 程序作为服务运行,把 eBPF 程序打包为一个 JSON 对象,通过 HTTP 请求即可动态插拔运行任意一个可重定位的 eBPF 程序,并且可以适应不同内核版本和架构。比赛结束之后,在高校的几位老师和社区中的一些伙伴的帮助和指导下(在这里重点感谢西安邮电大学陈莉君教授及团队和龙蜥社区毛文安老师),逐步把这些想法变成了一个初具雏形的开源项目。
当前,eunomia-bpf 想要解决的问题或 eBPF 程序当前的开发和分发过程中存的痛点主要有以下两个:
第一对于新手而言,搭建和开发 eBPF 程序的门槛较高,不仅需要必须同时关注内核态和用户态两方面的交互和信息处理&#x