跳转至

eunomia-bpf: 简化和增强 eBPF 与 CO-RE1 和 WebAssembly2

Actions Status GitHub release (latest by date) codecov DeepSource CodeFactor

一个编译器和运行时框架,以帮助您尽可能轻松地构建和分发 eBPF 程序。

介绍

eunomia-bpf 是一个动态加载库/运行时和编译工具链框架,旨在帮助您更轻松地构建和分发 eBPF 程序。

使用 eunomia-bpf,您可以:

  • 简化编写 eBPF 程序:
  • 简化构建 CO-RE1 libbpf eBPF 应用程序:仅编写 eBPF 内核代码,并自动从内核中使用 perf eventring buffer 自动输出采样数据到内核态。
  • 自动采样 来自 hash mpas 的数据,并在用户空间中打印 hists(直方图等信息)。
  • 自动生成 并配置 eBPF 程序的 命令行参数
  • 您可以同时使用 BCClibbpf 等多种格式编写内核部分。
  • 使用 Wasm2 构建 eBPF 程序:参见 Wasm-bpf 项目
  • 在使用 C/C++、Rust、Go…等多种语言,使用 Wasm-bpf 库和工具链来使用 Wasm 编写和运行 eBPF,覆盖从tracing、networking、security到其他用例。
  • 简化分发 eBPF 程序:
  • 一个工具用于将预编译的 eBPF 程序作为 Wasm OCI 镜像推送、拉取或运行
  • 在不需要重新编译 eBPF 程序、不限制架构和内核版本的情况下,在1 行 bash中从 云端存储库URL 运行 eBPF 程序。
  • 动态加载带有 JSON 配置文件或 Wasm 用户态控制和数据处理模块的 eBPF 程序。

更多信息请参见 documents/introduction.md

eunomia-bpf 提供了大量教程和示例应用,帮助入门 eBPF 程序开发

您可以使用一行 bash 从云端下载预编译的 eBPF 程序并将其运行到内核中:

# 从 https://github.com/eunomia-bpf/eunomia-bpf/releases/latest/download/ecli 下载 ecli 运行时
$ wget https://aka.pw/bpf-ecli -O ecli && chmod +x ./ecli
$ sudo ./ecli https://eunomia-bpf.github.io/eunomia-bpf/sigsnoop/package.json # 从 url 运行预编译的 ebpf 代码
$ sudo ./ecli sigsnoop:latest # 直接使用名称运行,并从我们的仓库下载最新版本 bpf 工具

  1. CO-RE:Compile Once – Run Everywhere 

  2. WebAssembly 或 Wasm:https://webassembly.org/ 

评论