openEuler 22.03LTS版本测试ebpf c编程hello world

1 环境准备

        使用c语言编写ebpf代码需要系统安装llvm和clang,使用openEuler系统自动配置的yum源即可安装。安装命令为:yum -y install llvm clang

下载openEuler 22.03LTS版本的内核源码,下载链接:https://gitee.com/openeuler/kernel/repository/archive/openEuler-22.03-LTS.zip

解压后,拷贝系统配置文件到内核源码根目录

cp /boot/config-5.10.0-60.18.0.50.oe2203.x86_64 .config

再执行

make oldconfig

make modules_prepare

make headers_install

2 编写测试代码 

        环境准备好后就可以开始写测试代码了,测试代码有两个,一个是hello_user.c,一个是hello_kern.c,从字面容易看出hello_user.c编译后是在用户空间运行的,hello_kern.c编译后是要被内核空间运行的。

代码位置为

代码内容分别如下:

//hello_user.c

#include"bpf_load.h"
#include <stdio.h>
#include <unistd.h>
#include <bpf/libbpf.h>
#include "trace_helpers.h"

int main(void)
{
    if(load_bpf_file("hello_kern.o"))
        return -1;

    read_trace_pipe();

    return 0;
}
//hello_kern.c

# include<uapi/linux/bpf.h>
#include <bpf/bpf_helpers.h>

SEC("kprobe/sys_write")

int bpf_prog(void *ctx)
{

    char msg[]= "hello world!\n";

	bpf_trace_printk(msg, sizeof(msg));

	return 0;
}

char _license[] SEC("license")= "GPL";

3 修改Makefile

 4 编译

在内核源码根路径下执行 make M=samples/bpf

 编译完成后可以在samples/bpf路径下生成一个可执行的二进制文件hello

5 运行

执行结果如下图所示

 

参考资料:

BPF C 编程入门_Linux_内核_make

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
您可以通过访问以下链接来下载openEuler 22.03 LTS操作系统:https://repo.openeuler.org/openEuler-22.03-LTS-SP1/OS/x86_64/ 这个链接将带您进入openEuler的官方下载页面,您可以选择适合您系统的版本进行下载。 另外,根据引用中的信息,openEuler 22.03-LTS是基于5.10内核构建的,这将为您提供更好的操作系统性能和稳定性。希望这个信息对您有所帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [在OpenEuler 22.03 LTS-SP1上下载yum源并安装tar命令](https://blog.csdn.net/m0_63428773/article/details/130177326)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [openEuler22.03LTS操作系统用pip安装saltstack3003.1所需的文件包](https://download.csdn.net/download/forestqq/87339063)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [国产操作系统安装之openEuler-22.03-LTS](https://blog.csdn.net/WeiHao0240/article/details/126024754)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值