BPF Capsule: 在Linux内核中运行DOOM游戏

Show HN: DOOM in the kernel, or fibers in eBPF

BPF Capsule是一个革命性的编译器与运行时,它让大型C、C++或Rust程序无需修改内核即可在eBPF中运行。项目以在Linux内核中运行经典游戏DOOM作为压力测试,展示了其突破eBPF传统限制的能力。开发者通过创新的区域和协程技术,将复杂的指针管理和循环逻辑转化为内核验证器可接受的形式。除了游戏,它还能运行Lua、Python、SQLite等工具,直接在内核中处理数据包或运行AI模型。

DOOM并非这里的应用,而是验证这一方法的压力测试;它证明了复杂应用逻辑无需简化重写,即可在标准Linux内核中安全运行。
  1. tptacek

    这篇文章里有太多优质内容了,可惜你用 AI 把整篇写稿给砂磨了一遍。读到“对验证器而言,它只是一个带着生平简历的数字”时,我就彻底跑偏,直接冲进沟里了。

  2. markrwilliams

    跳过文章前半部分,直接看这个项目是如何克服 eBPF 程序运行时环境受限的问题的:

    “在 Linux 6.9 及更高版本(arm64 架构为 6.10,因为 arena 的 JIT 支持稍晚落地),窗口由 bpf_arena 支撑……在没有可用 arena 的内核中,同样的四 GB 内存由 4 MiB 的碎片组装而成……[存储在] 独立的全局数据 maps 中。”

    这些 maps 的类型是 BPF_MAP_TYPE_ARRAY。

    关于 `bpf_arena` 的讨论,参见 https://lwn.net/Articles/961941/

  3. phishin

    我很欣赏大家严格遵守全大写的要求。

同日更多故事

2026-09-10