目前已有不少用户空间框架/库,允许开发者使用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/