eBPF项目依赖安装及简单介绍

2020年8月26日 | 由 陈小龙 | 700字 | 阅读大约需要2分钟 | 归档于 eBPF |

1 安装依赖的步骤

注意:使用之前必须安装 clang和llvm

(1)git clone http://llvm.org/git/llvm.git

(2)cd llvm/tools

(3)git clone –depth 1 http://llvm.org/git/clang.git

(4)cd ..; mkdir build; cd build

(5)cmake .. -DLLVM_TARGETS_TO_BUILD=“BPF;X86”

(6)make -j $(getconf _NPROCESSORS_ONLN)

2 安装依赖文件存在的问题:

在安装依赖的时运行命令:make -j $(getconf _NPROCESSORS_ONLN)

分析:

方法:将虚拟机的内存扩大到8G,如下图

先删除build文件夹下的内容,防止磁盘不够用,可能是因为再次安装依赖的时候,会占用多余的空间,最好一次性安装完成;

命令:rm -rf build;mkdir build;cd build;

再次运行命令:make -j $(getconf _NPROCESSORS_ONLN)

(2)可能还会再运行到80%左右,出现磁盘空间不足的情况

1)查看磁盘使用情况:

说明主磁盘分区/dev/sda1显然不够使用了,必须增加其容量

2)需要对磁盘进行扩容

虚拟机关机=》开机=》点击虚拟机=》设置

点击硬盘=》点击扩展容量=》输入总共的磁盘大小(建议50G以上)

3)下载磁盘分区工具GParted

命令:apt install gparted

再ubuntu应用中找到gparted

点击/dev/sda1 => 扩展磁盘大小(拖动或者手动输入大小都可以)

点击确定

再次查看磁盘的使用情况:df -h

已将磁盘分区/dev/sda1扩展到54G了,可以正常使用

3 bpf系统调用

​ bpf()函数的原型是 int bpf(int cmd, union bpf_attr *attr, unsigned int size)

(1) cmd:被定义为枚举类型的数据,内核主要的功能,包括创建、更新、删除等

(2) attr :结构体类型的变量

(3) size:表示bpf_attr 的union的大小(以字节为单位)

4 eBPF 程序的类型

5 编写eBPF程序

在这里插入图片描述

6 eBPF的工作流程

参考链接:https://davidlovezoe.club/wordpress/archives/867