将用户态 eBPF 扩展到 MacOS、Windows、FreeBSD 等更多平台 - 操作系统大赛赛题
bpftime 是一个用户空间的 eBPF 运行时,可让现有的 eBPF 应用程序直接在非特权用户空间中运行,使用相同的库和工具链,并且获取到追踪分析的结果。它为 eBPF 提供 Uprobe 和 Syscall tracepoint 等追踪点,比内核 uprobe 的开销降低约10倍,不需要手动的代码插桩或进程重启,可以实现对于源代码和编译流程的无侵入式分析。它也可以和 DPDK 等结合,在用户态网络中实现 XDP 的功能,并和内核
项目描述
bpftime 是一个用户空间的 eBPF 运行时,可让现有的 eBPF 应用程序直接在非特权用户空间中运行,使用相同的库和工具链,并且获取到追踪分析的结果。它为 eBPF 提供 Uprobe 和 Syscall tracepoint 等追踪点,比内核 uprobe 的开销降低约10倍,不需要手动的代码插桩或进程重启,可以实现对于源代码和编译流程的无侵入式分析。它也可以和 DPDK 等结合,在用户态网络中实现 XDP 的功能,并和内核 XDP 兼容。运行时在用户空间共享内存中支持进程间的 eBPF maps,也兼容内核的 eBPF maps,可以与内核的 eBPF 基础设施无缝操作。它还包含多种架构的高性能 eBPF LLVM JIT/AOT 编译器。
bpftime 现在可以让 bpftrace 和 bcc 等工具,以及一些商业 eBPF 的可观测性组件在用户态运行,而不需要内核 eBPF 支持,也不需要 root 权限,这也为其他非 Linux 系统、低版本内核、非特权容器环境下使用 eBPF 进行追踪分析提供了更多可能性。目前我们主要在高版本 Linux 上进行了测试,但我们希望能够把它移植到其他平台,例如 FreeBSD,Windows,MacOS 等等,或者一些嵌入式场景,让更多的平台支持 eBPF 生态。
预期目标
- 在 FreeBSD,Windows,MacOS 或其他系统平台上移植 bpftime,扩展其跨平台的能力,并让其他平台的用户能够利用 eBPF 的强大功能在他们的开发和生产环境中。
- 让
bpftime与其他 OS兼容,确保核心功能和能力在该平台上的运行。bpftime 的核心二进制插桩、动态库诸如等能力仅依赖共享内存、动态库,其他可能的扩展包含和内核 eBPF 兼容、ptrace 注入运行中的进程等,这些能力可以根据不同平台的特性进行选择性的实现。 - 目标是在不同平台上直接运行 bcc 和 bpftrace 等工具,或者其他商业 eBPF 的可观测性组件,而不需要修改对应的内核。
特征
项目的特征包括:
- 兼容性和集成:让
bpftime与其他 OS 兼容,确保核心功能和能力在该平台上的运行。 - 运行对应的工作负载:让
bpftime在其他平台上运行 bcc 和 bpftrace 等工具,或者其他商业 eBPF 的可观测性组件,获取对应的输出结果,而不需要修改对应的内核。
已有参考资料
- Linux Plumbers 23 演讲:bpftime: Fast uprobes with user space BPF runtime
- bpftime
- Arxiv: bpftime: Fast uprobes with user space BPF runtime
- Issue: Try to run eBPF with bpftime on MacOS
赛题分类
【code:405】2.4.5 系统调试/支撑库的设计
参赛要求
- 以小组为单位参赛,最多三人一个小组,且小组成员是来自同一所高校的本科生或研究生
- 允许学生参加大赛的多个不同题目,最终自己选择一个题目参与评奖
- 请遵循“2024全国大学生操作系统比赛”的章程和技术方案要求
难度
中等
License
GPL-3.0 License
所属赛道
2024全国大学生操作系统比赛的“OS功能挑战”赛道
项目导师
- 姓名:郑昱笙
- 单位:eunomia-bpf 开源社区
- github ID:https://github.com/yunwei37
- email:team@eunomia.dev and yunwei356@gmail.com
继续阅读
返回索引
Ecosystem & Other Projects
Explore the eunomia-bpf ecosystem with additional tools for eBPF benchmarking, AI monitoring agents, and compatibility libraries.
上一篇 / 上一页
Categorization of eBPF Hooks and Use Cases
- XDP Hook: XDP allows high-performance network packet processing, such as dropping malicious packets before they reach the network stack for DDoS mitigation. - TC Hook: The TC hook enables efficient traffic control by r
下一篇 / 下一页
uXDP: Frictionless XDP Deployments in Userspace (12-min talk)
Venue: eBPF Workshop (Coimbra, Sep 8–11, 2025) Speaker: Panayiotis Gavriil (with Yusheng Zheng, Marios Kogias)
- 最后更新
- 2025年2月12日
- 首次发布
- 2024年2月1日
- 贡献者
- weekendfish, yunwei37
这个页面有帮助吗?