BPF Capsule - DOOM을 eBPF 커널에서 실행하는 컴파일러

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

BPF Capsule은 C, C++, Rust 코드를 수정 없이 Linux eBPF에서 실행할 수 있게 변환하는 컴파일러 및 런타임입니다. 커널 패치 없이 기존 verifier와 JIT를 그대로 사용하며, DOOM 전체를 커널 내에서 구동하는 데 성공했습니다. Lua, QuickJS, SQLite, Python 등 복잡한 애플리케이션도 지원하여 패킷 파싱이나 통계 처리 같은 고급 로직을 eBPF 제약 없이 구현할 수 있습니다. Nix와 WAD 파일만 있으면 한 줄 명령으로 직접 체험할 수 있습니다.

커널 안에서 게임이 필요한 사람은 없습니다. 하지만 복잡한 애플리케이션 로직은 유용하죠. Capsule은 그러한 프로그램이 eBPF의 제약에 맞지 않을 때 다른 길을 탐구합니다.
  1. tptacek

    여기 정말 좋은 내용이 많은데, AI로 글을 모래분사기로 날려버린 게 아쉽네요. "검증자에게 그것은 전기(biography)를 지닌 숫자일 뿐이다"라는 부분에서 저는 길을 벗어나 도랑으로 빠져버렸습니다.

  2. markrwilliams

    기사 전반부는 건너뛰고 이 프로젝트가 어떻게 eBPF 프로그램의 제한된 런타임 환경을 극복했는지 알아보세요:

    "Linux 6.9 이상(arm64에서는 6.10, 아레나에 대한 JIT 지원이 나중에 들어갔음)에서 이 윈도우는 bpf_arena로 뒷받침됩니다... 사용 가능한 아레나가 없는 커널에서는 동일한 4기가바이트가 4MiB 조각들로... [별도의] 전역 데이터 맵에서 조립됩니다."

    이 맵들은 BPF_MAP_TYPE_ARRAY 유형입니다.

    `bpf_arena`에 대한 논의는 https://lwn.net/Articles/961941/ 를 참고하세요.

  3. phishin

    대문자 요구 사항을 준수한 점이 좋네요.

이 날의 다른 글

2026-09-10