搭建 ebpf 开发测试环境

2023-12-05

0 内容说明

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

1 ebpf在线学习

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

搭建 ebpf 开发测试环境 的相关文章

  • Threejs 汽车模型的展示和选配(vue3)

    继续跟着b站 老陈打码 一起学习threejs gltf文件下载 https pan baidu com s 15PHhoj3qmNiDhiAu9S7b0A 提取码 6666 1 搭建项目 使用vue脚手架搭建项目 vue create a
  • javascript的常用类型包括,javascript的用途有哪些?

    大家好 给大家分享一下javascript有哪些常用的属性和方法 很多人还不知道这一点 下面详细解释一下 现在让我们来看看 java的函数有四种调用方式 每种方式的不同之处是在于初始化的不同 下面就以实例来说明四种函数方式的调用 一 函数调
  • 手机怎么用广角镜头拍摄,手机怎么用word文档

    大家好 给大家分享一下手机怎么用数据线给电脑传文件 很多人还不知道这一点 下面详细解释一下 现在让我们来看看 在手机应用程序开发中 经常需要获取和设置手机的时间 JavaScript是一种强大的脚本语言 可以轻松地在网页中操作和修改时间 P

随机推荐

  • 【源码篇】基于SpringBoot+Vue实现的在线考试系统

    文章目录 系统说明 技术选型 成果展示 账号地址及其他说明 系统说明 基于SpringBoot Vue实现的在线考试系统是为高校打造的一款在线考试平台 系统功能说明 1 系统共有
  • 探索新的内容策略,伪原创API是关键【详细教程】

    大家好 今天来聊聊探索新的内容策略 伪原创API是关键 希望能给大家提供一点参考 以下是针对论文重复率高的情况 提供一些修改建议和技巧 探索新的内容策略 伪原创API是关键 一 背景介绍 随着互联网信息的爆炸式增长 内容创作已经成为许多企业
  • prometheus|云原生|轻型日志收集系统loki+promtail的部署说明

    一 日志聚合的概念说明 日志 每一个程序 服务都应该有保留日志 日志的作用第一是记录程序运行的情况 在出错的时候能够记录错误情况 简单来说就是审计工作 例如nginx服务的日志 kubernetes集群的pod运行日志 Linux系统的系统
  • MySQL InnoDB 如何实现行锁?

    行级锁是 MySQL 中粒度最小的一种锁 他能大大减少数据库操作的冲突 INNODB 的行级锁有共享锁 S LOCK 和排他锁 X LOCK 两种 共享锁允许事物读一行记录 不允许任何线程对该行记录进行修改 排他锁允许当前事物删除或更新一行
  • MySQL中一些重要的日志文件:二进制日志binlog、事务日志redolog

    MySQL包含多个重要的日志文件 用于记录数据库的操作和状态信息 下面是MySQL中一些重要的日志文件 错误日志 Error Log 错误日志记录了MySQL服务器在启动 运行和关闭过程中发生的错误和警告信息 它是排查和解决问题的重要依据
  • 超出重复率情况说明【一文读懂】

    大家好 今天来聊聊超出重复率情况说明 希望能给大家提供一点参考 以下是针对论文重复率高的情况 提供一些修改建议和技巧 超出重复率情况说明 在数据处理和分析过程中 有时会遇到数据重复率超出预定范围的情况 智能写作 这种情况可能会导致数据质量下
  • 论文重复率和查重率一样吗【详细教程】

    大家好 今天来聊聊论文重复率和查重率一样吗 希望能给大家提供一点参考 以下是针对论文重复率高的情况 提供一些修改建议和技巧 论文重复率和查重率一样吗 摘要 在论文撰写过程中 了解论文重复率和查重率的概念及其关系是非常重要的 伪原创 本文将详
  • MySQL中,什么是脏页和干净页?

    MySQL 为了操作的性能优化 会把数据更新先放入内存中 之后再统一更新到磁盘 当内存数据和磁盘数据内容不一致的时候 我们称这个内存页为脏页 内存数据写到磁盘后 内存的数据和磁盘上的内容就一致了 我们称为 干净页 在MySQL中 脏页 Di
  • MySQL InnoDB 存储引擎有几种锁算法?

    Record Lock 单个行记录上的锁 Gap Lock 间隙锁 锁定一个范围 不包括记录本身 Next Key Lock 锁定一个范围 包括记录本身 MySQL InnoDB存储引擎主要使用两种锁算法 分别是行级锁和间隙锁 行级锁 Ro
  • 浅谈安科瑞无线测温设备在挪威某项目的应用

    摘要 安科瑞无线温度设备装置通过无线温度收发器和各无线温度传感器直接进行温度值的传输 并采用液晶显示各无线温度传感器所测温度 Absrtact Acre wireless temperature device directly transm
  • yum 操作,出现Cannot retrieve metalink for repository: epel/x86_64

    详细报错如下 Loaded plugins fastestmirror Determining fastest mirrors One of the configured repositories failed Unknown and yu
  • 2024年甘肃省职业院校技能大赛(中职教师组)网络安全竞赛样题卷④

    2024年甘肃省职业院校技能大赛 中职教师组 网络安全竞赛样题卷 2024年甘肃省职业院校技能大赛 中职教师组 网络安全竞赛样题卷 A模块基础设施设置 安全加固 本模块200分 A 1任务一 登录安全加固 Windows A 2任务二 本地
  • 什么是Redo Log Buffer缓冲区?

    Redo Log 重做日志 会先存储在内存中 在MySQL中 Redo Log是一种事务日志 用于记录正在进行中的事务的修改操作 当事务执行更新操作 如插入 更新 删除 时 MySQL会先将对应的Redo Log记录写入到内存中的Redo
  • MySQL 刷脏页的速度很慢可能是什么原因?

    在 MySQL 中单独刷一个脏页的速度是很快的 如果发现刷脏页的速度很慢 说明触发了 MySQL 刷脏页的 连坐 机制 MySQL 的 连坐 机制是指当 MySQL 刷脏页的时候如果发现相邻的数据页也是脏页也会一起刷掉 而这个动作可以一直蔓
  • 使用idea如何快速的搭建ssm的开发环境

    文章目录 唠嗑部分 言归正传 1 打开idea 点击新建项目 2 填写信息 3 找到pom xml先添加springboot父依赖
  • netty源码:(3) ThreadPerTaskExecutor

    这个类封装了一个ThreadFactory 同时提供了一个execute方法 用来把Runnable提交给ThreadFactory来执行
  • Jmeter接口自动化测试 —— Jmeter变量的使用

    专注于分享软件测试干货内容 欢迎点赞 收藏 留言 如有错误敬请指正 交流讨论 欢迎加入我们一起学习 资源分享 耗时200 小时精选的 软件测试 资料包 最困难的时候 也就是我们离成功不远的时候 在使用jmeter进行接口测试时 我们难免会遇
  • C#与Java的不同

    https www cnblogs com Yan3399 p 17324904 html 1 C 对应java中关键字 base super this this sealed final 1 base关键字 对应java super C
  • 英伟达狂卖50万台GPU!AI爆火背后,是显卡的争夺

    据市场跟踪公司Omdia的统计分析 英伟达在第三季度大约卖出了50万台H100和A100 GPU 此前 Omdia通过英伟达第二季度的销售额 估计其大概卖出了900吨GPU 大语言模型火爆的背后 英伟达建立起了强大的显卡帝国 在人工智能的大
  • 搭建 ebpf 开发测试环境

    0 内容说明 这部分主要讲述了如何通过官网学习ebpf 以及如何搭建自己的ebpf开发测试环境 主要是需要安装哪些工具链 1 ebpf在线学习 ebpf官网中提供了一个快速在线学习ebpf的路径 在这个学习平台中一共有两项学习内容 一个是学