使用Java进行eBPF编程

Presentation开源操作系统分论坛
🕒 ~
  • 李枫
    • 李枫
    • 独立开发者
    • 独立开发者

Attendee Ratings

 目前已有不少用户空间框架/库,允许开发者使用C++、Rust、Go、Python以及Lua来编写eBPF应用程序,但还缺乏Java的。新兴开源项目hello-ebpf弥补了这一遗憾,它允许您直接使用Java编写eBPF程序,这进一步扩展了eBPF的生态并将使得更多JVM平台语言的开发者能够直接使用熟悉的语言甚至相应的DSL(领域专用语言)进行相关开发。
 本议题将着重探讨hello-ebpf的原理与应用,并将探索基于GraalVM(下一代JVM的实现)的eBPF开发,提纲如下:
 1)背景
       1.1) xBPF技术综述;
       1.2) 我们的测试台;
 2)hello-ebpf项目
       2.1)  架构与设计;
       2.2)  内部实现;
       2.3)  使用纯Java编写eBPF应用
             2.3.1)构建防火墙
             2.3.2)实现Linux调度器
 3)探讨基于GraalVM的eBPF开发
       3.1)    使用Truffle框架和Graal JIT编译构建uBPF(userspace BPF);
       3.2)    探索在GraalVM中内建支持eBPF的可能。

议题主要涉及的技术栈相关链接如下: https://en.wikipedia.org/wiki/EBPF/ https://ebpf.io/ https://en.wikipedia.org/wiki/Java_(programming_language) https://github.com/parttimenerd/hello-ebpf/ https://www.graalvm.org/ https://github.com/graalvm/ https://github.com/oracle/graal/