eBPF works lite the JVM, running code instructions in an isolated environment in kernel-space. Compile C to BPF. If the code is safe the BPF program will be loaded into the kernel. Sharing data between the kernel and user-space: BPF maps.
BPF Program Types
- Tracing - help understand what's happening in the system
- Networking - inspect and manipulate the network traffic in your system. can let you filter packets coming from the network interface, or even reject those packets completely
View possible tracepoints you can attach BPF programs at: /sys/kernel/debug/tracing/events/