eBPF编程指北
济南白癜风医院 http://pf.39.net/bdfyy/bdfyc/190326/6997150.html来源于:分布式实验室—1—开发环境 这里以Ubuntu20.04为例构建eBPF开发环境: uname-aLinuxVM-1-3-ubuntu5.4.0-42-generic#46-UbuntuSMPFriJul:24:02UTCx86_64x86_64x86_64GNU/Linuxsudoaptinstallbuild-essentialgitmakelibelf-devclangllvmstracetarbpfcc-toolslinux-headers-(uname-r)gcc-multilibflexbisonlibssl-dev-y 主流的发行版在对LLVM打包的时候就默认启用了BPF后端,因此,在大部分发行版上安装clang和llvm就可以将C代码编译为BPF对象文件了。 典型的工作流是: 用C编写BPF程序 用LLVM将C程序编译成对象文件(ELF) 用户空间BPFELF加载器(例如iproute2)解析对象文件 加载器通过bpf()系统调用将解析后的对象文件注入内核 内核验证BPF指令,然后对其执行即时编译(JIT),返回程序的一个新文件描述符 利用文件描述符attach到内核子系统(例如网络子系统) 某些子系统还支持将BPF程序offload到硬件(例如网卡)。 查看LLVM支持的BPFtarget: llc--versionLLVM( |
转载请注明地址:http://www.luofumua.com/lfmpz/9622.html
- 上一篇文章: 茶叶和生姜一起泡水喝,作用太厉害了,我也
- 下一篇文章: 没有了