搭建 ebpf 开发测试环境

0 内容说明

这部分主要讲述了如何通过官网学习ebpf,以及如何搭建自己的ebpf开发测试环境,主要是需要安装哪些工具链。

1 ebpf在线学习

ebpf官网中提供了一个快速在线学习ebpf的路径,在这个学习平台中一共有两项学习内容,一个是学习观察ebpf的内部组件,一个是学习编写ebpf,每个大概学习30分钟,是快速学习ebpf非常好的途径。
ebpf Lab实验室地址: eBPF - Introduction, Tutorials & Community Resources

ebpf Lab实验室

1.1 第一个学习工具

这部分教学摘取了 opensnoop 示例,教你如何处理 eBPF 工具,观察它加载其组件,甚至将你自己的跟踪添加到源 eBPF 代码中。一共有五个步骤,进入学习后,可以安装它的提示步骤进行操作,在操作过程中可以了解部分ebpf 工具的用法。
在这里插入图片描述
在这里插入图片描述

1.2 第二个学习工具

这部分在说如何编写第一个 eBPF Hello World 程序,并深入了解 eBPF 的所有关键概念和工具,例如 eBPF 映射、字节码、bpftool、xdp 和 eBPF 验证器。

在这里插入图片描述
在这里插入图片描述

2 搭建Ebpf开发环境

如果想要更好的使用ebpf,内核版本建议>=4.9,尽管较低的内核版本(3.15以后)也支持ebpf,但是编译和运行起来会有问题,所以建议使用高版本的内核,我使用的是ubuntu22.04,内核版本为6.2。

2.1 libbpf

libbpf是开发ebpf的核心部分,一般需要将其作为子模块(库)使用,在很多开源项目中都存在libbpf的文件,但是里面并不存在源码需要自行下载编译。

$ git submodule update --init
$ git submodule add https://github.com/libbpf/libbpf/ libbpf

2.2 安装依赖-Debian/Ubuntu

主要的依赖有 libbpf, llvm, clang, libxdp和 libelf;
LLVM+clang主要是将按照 ebpf 规范编写的 .c 文件(一般命名为*.bpf.c)编译为BPF 字节码,这些字节码会存储在一个 ELF 目标文件中(libelf),elf文件一般会命名为*.bpf.o,然后通过 libbpf 通过 bpf()函数的系统调用加载到内核中。libxdp 里有管理xdp的函数。

$ sudo apt install clang llvm libelf-dev libpcap-dev build-essential
$ sudo apt install linux-perf
$ sudo apt install linux-tools-$(uname -r)

2.3 内核头文件依赖关系

$ sudo apt install linux-headers-$(uname -r)

2.4 bpftool工具

$ sudo apt install linux-tools-common linux-tools-generic

参考:
ebpf Lab
Setup dependencies

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值