
BPF 스터디 노트
BPF(Berkley packet filter)는 패킷 필터 기능만 하는 것이 아니라 genric하고 유연한 instruction set을 제공하여 단순한 필터 이상의 일들을 할 수 있습니다. 작성된 BPF 프로그램은 여러 hook point에서 안전하게 실행할 수 있습니다. 리눅스 커널의 많은 서브 시스템들은 BPF가 실행할 수 있는 hook point를 제공하며, 대표적으로 분야로 networking, tracing, security가 있습니다. 해당 글에서 사용하는 BPF 용어는 eBPF를 지칭합니다. Instruction Set BPF는 general purpose RISC instruction set입니다. 이 instruction set은 Subset of C로 작성한 코드를 clang을 통해 BPF instruction으로 컴파일됩니다. 그런 다음, modern 64bit processor에 맞춰 JIT된 native code를 매핑됩