最近又需要了解ebpf相关的知识,感觉到目前ebpf的开发相对简单了很多,最终我选择使用cilium/ebpf作为框架进行代码开发:
- 直接升级内核到Linux5.10
- 安装必要的开发工具:
- 将 eBPF 程序编译成字节码的 LLVM;
- C 语言程序编译工具 make;
-
最流行的 eBPF 工具集 BCC 和它依赖的内核头文件;(cilium/ebpf不需要这个) -
与内核代码仓库实时同步的 libbpf;(cilium/ebpf使用libbpf-go) - 同样是内核代码提供的 eBPF 程序管理工具 bpftool。
# For Ubuntu20.10+
sudo apt-get install -y make clang llvm libelf-dev libbpf-dev bpfcc-tools libbpfcc-dev linux-tools-$(uname -r) linux-headers-$(uname -r)
# For RHEL8.2+
sudo yum install libbpf-devel make clang llvm elfutils-libelf-devel bpftool bcc-tools bcc-devel
- 简单内核是否开启了BTF,如果没有的话,重新编译内核
CONFIG_DEBUG_INFO_BTF=y 和 CONFIG_DEBUG_INFO=y
网友评论