获得徽章 0
- # eBPF 入门开发实践教程八:在 eBPF 中使用 exitsnoop 监控进程退出事件,使用 ring buffer 向用户态打印输出赞过评论1
- #新人报道#
eunomia-bpf 是一个结合 Wasm 的通用、轻量级、多语言的下一代 eBPF 开发框架/组件库:github.com。eunomia-bpf 包含一个运行时和编译工具链,主要关注于改进 eBPF 程序用户态的开发和使用体验,主要有三个特性:
1. 只需编写内核态代码即可运行 eBPF 程序,内核态前端完全兼容 bcc、原生 libbpf 等多种语法,可以降低 eBPF 开发的学习成本,提高开发效率;
2. 编译工具链和运行时完全分离,保证不同版本编译工具链和运行时之间的兼容性,以 CO-RE(一次编译、到处运行)的方式加载,降低部署和使用的资源消耗;还可以让 BCC/bpftrace 类型的代码也支持 AOT 编译,在加载的的时候不依赖 llvm 等库,同时保留 bpftrace 类似脚本一样的简单使用方式;
3. 用户态也支持多种语言,例如 C++/C/Rust 等,可以使用多种语言在 Wasm 中开发 eBPF 的用户态程序,并且以 Wasm 模块,或者 JSON/YAML 配置文件的方式分发和动态加载 eBPF 程序,同时以 Wasm OCI 镜像的形式存储和管理任意包含用户态和内核态的 eBPF 应用。
eunomia-bpf 希望成为一个以类库或者松散组合的框架的方式提供,在编译构建和分发运行 eBPF 程序方面做更多的探索工作,让其他公司和个人,想要基于自己的内核态 ebpf 基础设施,搭建一个类似的用户态开发运行环境,或者完整的开发平台、插件运行时,变得更容易很多。展开等人赞过310