BPF Capsule - DOOM y aplicaciones complejas dentro del kernel Linux

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

BPF Capsule es un compilador y runtime que permite ejecutar programas grandes en C, C++ o Rust no_std dentro de eBPF sin parches del kernel ni máquinas virtuales en espacio de usuario. Su prueba de fuego es DOOM: inicialización, lógica y renderizado corren en el kernel, completando un frame por invocación BPF. Más allá del juego, resuelve un problema real: cuando el código de aplicación no cabe en las restricciones del verificador, Capsule lo transforma automáticamente en una forma que Linux acepta. Ya soporta Lua, QuickJS, SQLite, zlib, wasm3, llama2.c y CPython 3.14, con inspección de paquetes en vivo desde XDP. Pruébalo con un solo comando en kernels soportados.

DOOM no debería ejecutarse dentro de eBPF. Linux debería rechazar un programa así antes de ejecutar su primera instrucción. Y sin embargo, un kernel Linux sin modificar acepta mi objeto BPF, lo verifica con el verificador estándar y lo ejecuta a través del JIT estándar.
  1. tptacek

    Hay tanto contenido bueno aquí que es una lástima que hayas destrozado tu escrito con IA. "Para el verificador, es un número con una biografía" es donde me salí de la carretera y acabé en una cuneta.

  2. markrwilliams

    Sáltate la primera mitad del artículo para aprender cómo el proyecto superó el entorno de ejecución limitado de los programas eBPF:

    "En Linux 6.9 y versiones posteriores (6.10 en arm64, donde el soporte JIT para la arena llegó más tarde), la ventana está respaldada por bpf_arena... En kernels sin una arena utilizable, los mismos cuatro gigabytes se ensamblan a partir de piezas de 4 MiB... [en] mapas de datos globales separados."

    Estos mapas son del tipo BPF_MAP_TYPE_ARRAY.

    Consulta https://lwn.net/Articles/961941/ para una discusión sobre `bpf_arena`.

  3. phishin

    Aprecio que se respete el requisito de usar todo en mayúsculas.

Más de este día

2026-09-10