0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

BPF编程的环境搭建方法

CHANBAEK 来源:技术简说 作者:董旭 2022-10-14 17:02 次阅读

BPF编程环境搭建

本来想写一篇“BPF 深度分析、环境搭建与案例分析”的文章,但是篇幅过长,于是先把BPF编程的环境搭建先放出来。接下来的文章将对BPF深度分析(包括BPF虚拟机、BPF程序指令、BPF目标文件分析、BPF程序类型、BPF加载、翻译】运行分析),并对一些内核中的例子进行分析,最后尝试改写一些程序。

1、安装编译所依赖的工具

poYBAGNJJFGABU6gAAAZOPTeisE747.png

2、下载内核源码

建议下载与当前操作系统运行一致的内核版本,避免后续编译时出现不兼容问题。

pYYBAGNJJG6AaA-PAABFchoJqKg943.png

3、构建环境

pYYBAGNJJIyAKb4_AAA8wg0_7hM170.png


4、编译可能遇到的问题

error: ‘test_attr__enabled’ undeclared (first use in this function)

解决:

poYBAGNJJKKAFsAyAAAKyVuxUhM129.png

error:'asm/mmiowb.h' file not found

解决:

通过查找发现系统中的头文件有对应的文件

在 include 文件中创建 asm 目录,并将该 /usr/src/linux-headers-5.4.0-52-generic/arch/x86/include/generated 目下的全部文件复制到 include/asm 目录下:

pYYBAGNJJLaAR9f5AAAUgk-diH4426.png

在 include 文件中创建 asm 目录,并将该 /usr/src/linux-headers-4.15.0-72-generic/arch/x86/include/generated 目下的全部文件复制到 include/asm 目录下:

pYYBAGNJJN6AAU_VAAAWxrB0wis154.png

error:'generated/bounds.h' file not found

解决:

pYYBAGNJJPaARhpfAAATEoiHlUo401.png

5、编译成功

测试:

poYBAGNJJQeAMFu-AAAqHS4IlWw857.png

接下来的文章将对BPF深度分析(包括BPF虚拟机、BPF程序指令、BPF目标文件分析、BPF程序类型、BPF加载、翻译】运行分析),并对一些内核中的例子进行分析,最后尝试改写一些程序。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 虚拟机
    +关注

    关注

    1

    文章

    908

    浏览量

    28069
  • 环境搭建
    +关注

    关注

    0

    文章

    53

    浏览量

    9045
  • BPF
    BPF
    +关注

    关注

    0

    文章

    24

    浏览量

    3975
收藏 人收藏

    评论

    相关推荐

    一种简单的OpenHarmony环境搭建方法

    本文介绍一种简单的OpenHarmony环境搭建方法
    的头像 发表于 03-14 13:58 3387次阅读
    一种简单的OpenHarmony<b class='flag-5'>环境</b><b class='flag-5'>搭建</b><b class='flag-5'>方法</b>

    SoC验证环境搭建方法的研究

    本文从SoC (System on a Chip)验证环境外在的框架结构、内在的验证数据的组织与管理和体现其工作原理的系统脚本的设计思想三方面出发,讨论SoC 验证环境搭建方法,并
    发表于 12-14 09:52 22次下载

    arduino轻松入门一(编程环境搭建)

    arduino arduino轻松入门一(编程环境搭建)
    发表于 12-22 15:25 22次下载

    如何搭建寄存器的工程环境详细方法步骤说明

    本文档的主要内容详细介绍的是如何搭建寄存器的工程环境详细方法步骤说明。
    发表于 09-19 08:00 0次下载
    如何<b class='flag-5'>搭建</b>寄存器的工程<b class='flag-5'>环境</b>详细<b class='flag-5'>方法</b>步骤说明

    如何学习Python?Python编程环境搭建详细说明

    本文档的主要内容详细介绍的是如何学习Python?Python编程环境搭建详细说明。
    发表于 04-26 08:00 25次下载
    如何学习Python?Python<b class='flag-5'>编程</b><b class='flag-5'>环境</b><b class='flag-5'>搭建</b>详细说明

    保证BPF程序安全的BPF验证器介绍

    1. 前言 我们可以使用BPF对Linux内核进行跟踪,收集我们想要的内核数据,从而对Linux中的程序进行分析和调试。与其它的跟踪技术相比,使用BPF的主要优点是几乎可以访问Linux内核
    的头像 发表于 05-03 11:27 1850次阅读
    保证<b class='flag-5'>BPF</b>程序安全的<b class='flag-5'>BPF</b>验证器介绍

    KEIL5开发环境搭建与芯片安装使用方法

    KEIL5开发环境搭建与芯片安装使用方法
    发表于 06-10 10:21 37次下载

    OpenHarmony开发环境搭建方法

    本文介绍一种简单的OpenHarmony环境搭建方法
    的头像 发表于 03-02 13:49 2361次阅读
    OpenHarmony开发<b class='flag-5'>环境</b><b class='flag-5'>搭建</b><b class='flag-5'>方法</b>

    【手把手教程】使用Sublime搭建的C/Python环境

    一文介绍使用Sublime搭建轻量级的C语言编程环境和Python编程环境
    的头像 发表于 07-10 21:14 3659次阅读
    【手把手教程】使用Sublime<b class='flag-5'>搭建</b>的C/Python<b class='flag-5'>环境</b>

    BPF为内核编程提供了一个新的参考模型

    这个新的编程环境混合使用了 C语言扩展以及运行时环境的组合实现的,这个运行时环境包含了 Clang、用户空间的 BPF 加载器库(libbp
    的头像 发表于 10-19 11:27 1104次阅读

    ESP32使用MiroPython编程环境搭建

    大家好!我是ST,今天和大家聊一聊ESP32使用MrioPython编程环境搭建过程。
    的头像 发表于 11-07 10:54 2927次阅读

    如何搭建Python编程环境

    Python是一种高级编程语言,被广泛用于科学计算、数据分析、人工智能、Web开发等领域。想要学习Python编程,首先需要搭建一个合适的编程环境
    的头像 发表于 04-14 12:07 5096次阅读

    内核观测技术BPF详解

    补丁和不断完善代码,BPF程序变成了一个更通用的执行引擎,可以完成多种任务。简单来说,BPF提供了一种在各种内核时间和应用程序事件发生时运行一小段程序的机制。其允许内核在系统和应用程序事件发生时运行一小段程序,这样就将内核变得完全可编程
    的头像 发表于 11-10 10:34 1189次阅读

    php运行环境搭建方法

    搭建PHP运行环境是开发PHP应用程序的基础,本文将详尽、详实、细致地介绍从零开始搭建PHP运行环境方法,包括选择操作系统、安装Web服务
    的头像 发表于 12-04 14:56 1203次阅读

    TI RF Transceiver EVM自动化环境搭建方法

    电子发烧友网站提供《TI RF Transceiver EVM自动化环境搭建方法.pdf》资料免费下载
    发表于 09-04 09:35 0次下载
    TI RF Transceiver EVM自动化<b class='flag-5'>环境</b><b class='flag-5'>搭建</b><b class='flag-5'>方法</b>