通过一些小工具探索BPF在Linux内核的实现。
- 01-使用libbpf库编写BPF程序
- 02-Linux性能计数器在内核的实现
- 03-Tracepoint的内核实现
- 04-CPU-PMU的内核实现
- 05-SOFTWARE-PMU的内核实现
- 06-KPROBE的内核实现
- 07-UPROBE的内核实现
- 08-RAW TRACEPOINT的内核实现
- 09-fentry的内核实现
- 10-KPROBE.MULTI的内核实现
- 11-BPF LSM的内核实现
- 12-XDP的内核实现
- 13-SOCKFILTER的内核实现
- 14-TC的内核实现
- 15-LWT的内核实现
- 16-IPTABLES_BPF内核实现
- 17-SK_LOOKUP的内核实现
- 18-CGROUP_BPF的内核实现
- 19-STRUCT_OPS的内核实现
- 20-FLOW_DISSECTOR的内核实现
- 21-SOCKMAP的内核实现
- 22-LIRC_MODE2的内核实现
- 23-BPF_ITER的内核实现
- 24-BREAKPOINT-PMU的内核实现
- 25-NETFILTER_LINK的内核实现
- 26-UPROBE.MULTI的内核实现
- 27-TC EXPRESS的内核实现
- 28-NETKIT的内核实现
- 29-TEST RUN的内核实现
Makefile build:
$ git submodule update --init --recursive # check out libbpf
$ cd src
$ make
$ sudo ./bin/minimal
<...>
CMake build:
$ git submodule update --init --recursive # check out libbpf
$ mkdir build && cd build
$ cmake ../src
$ make
$ sudo ./minimal
<...>