ebpf的CO-RE功能介绍

目录

CO-RE

引入

思路

介绍

使用 


CO-RE

引入

因为ebpf需要深入内核,但内核中的数据结构很可能在不同版本中定义不同(尤其是结构体,可能会增加某个字段)

但我们在访问结构体时,比如一般通过指针+偏移量来拿到特定变量的首地址

  • 如果定义变化,偏移量就会变化,就会需要多份ebpf代码
  • 这样就会增加维护成本,每推出一个新的内核版本,就要根据更新的内容来重新编写代码,太麻烦了
  • 所以就需要引入BTF机制以及相关的技术

思路

其实我们可以自己想想,如何可以实现不同内核版本的兼容性

  • 其实也就是数据结构定义会不同嘛
  • 那我们就可以不预先规定如何拿取内核中的数据结构
  • 而是在程序加载时,再拿到内核数据结构的定义
  • 因为代码的编写,肯定是使用的当前版本的结构,然后需要时,在定义中查找就行

如何查找呢?

  • 还记得我们的动态库吗,他是在程序运行时动态确定函数地址
  • 首先在编译时会确定该函数在文件内的偏移量,在程序需要时,加载进内存中,然后动态拿到基地址,内存基地址+偏移量,就可以定位函数的具体位置了(当然,实际情况比这里复杂的多得多,看的我头都大了还没咋看懂)
  • 总之,我们可以借鉴这个原理,在ebpf程序加载时,将结构定义文件加载进内存中,当程序需要用到某个数据结构时直接访问具体定义,然后计算某个字段的偏移量

介绍

首先是要拿到当前版本的内核数据结构定义:

其次,编译器要支持这样动态计算偏移量的行为:

最后就是实际的重定位操作了:

使用 

总得来说,当我们需要使用 CO-RE 功能时:

  • 要在内核层的eBPF程序里包含"vmlinux.h"头文件,否则就是不使用
  • 需要内核打开 CONFIG_DEBUG_INFO_BTF 配置选项

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/289196.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法打卡day20

今日任务: 1)669.修剪二叉搜索树 2)108.将有序数组转换为二叉搜索树 3)538.把二叉搜索树转换为累加树 669.修剪二叉搜索树 题目链接:669. 修剪二叉搜索树 - 力扣(LeetCode) 给你二叉搜索树的根…

【机器学习】代价函数

🎈个人主页:豌豆射手^ 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:机器学习 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进…

是德科技安捷伦 E5052B信号源分析仪

181/2461/8938产品概述: Keysight E5052B(安捷伦)信号源分析仪,10 MHz 至 7 GHz,具有许多增强的性能特性。它在表征 VCO 或其他类型的高频信号源以及高速数据通信系统中的时钟抖动评估方面提供了世界上最高的测量吞吐…

Vuepress 2从0-1保姆级进阶教程——美化与模板

Vuepress 2 专栏目录 1. 入门阶段 Vuepress 2从0-1保姆级入门教程——环境配置篇Vuepress 2从0-1保姆级入门教程——安装流程篇Vuepress 2从0-1保姆级入门教程——文档配置篇Vuepress 2从0-1保姆级入门教程——范例与部署 2.进阶阶段 Vuepress 2从0-1保姆级进阶教程——全文搜索…

一分钟开服 《幻兽帕鲁》游戏专属服务器by京东云主机

使用京东云服务器搭建幻兽帕鲁Palworld游戏联机服务器教程,非常简单,京东云推出幻兽帕鲁镜像系统,镜像直接选择幻兽帕鲁镜像即可一键自动部署,不需要手动操作,真正的新手0基础部署幻兽帕鲁,阿腾云atengyun.…

精品凉拌菜系列热卤系列课程

这一系列课程涵盖精美凉拌菜和美味热卤菜的制作技巧。学员将学习如何选材、调味和烹饪,打造口感丰富、色香俱佳的菜肴。通过实践训练,掌握独特的烹饪技能,为家庭聚餐或职业厨艺提升增添亮点。 课程大小:6.6G 课程下载&#xff1…

【测试开发学习历程】MySQL增删改操作 + 备份与还原 + 索引、视图、存储过程

前言: SQL内容的连载,到这里就是最后一期啦! 如果有小伙伴要其他内容的话,我会追加内容的。(前提是我有学过,或者能学会) 接下来,我们就要开始python内容的学习了 ~ ~ 目录 1 …

蓝鹏为何专注智能测量仪的加工定制?

在这个日新月异的科技时代,自动化工厂层出不穷,并且是在不断地升级改造,为了产品的高速高质高效的自动化生产,智能测量仪的重要性不言而喻。智能测量仪的种类很多,蓝鹏一直致力于专业仪器定制,但你有没有想…

STM32通用输入输出

一、GPIO介绍 功能: 输入(Input): 浮空:输入没有接上拉和下拉 模拟:输入没有走上拉和下拉走的是模拟输入 上拉:上拉电阻是合上的,接入点为上拉电阻 下拉:下拉电阻是合上的 输…

蓝桥杯 - 小明的背包1(01背包)

解题思路: 本题属于01背包问题,使用动态规划 dp[ j ]表示容量为 j 的背包的最大价值 注意: 需要时刻提醒自己dp[ j ]代表的含义,不然容易晕头转向 注意越界问题,且 j 需要倒序遍历 如果正序遍历 dp[1] dp[1 - vo…

Radio Silence for mac 好用的防火墙软件

Radio Silence for Mac是一款功能强大的网络防火墙软件,专为Mac用户设计,旨在保护用户的隐私和网络安全。它具备实时网络监视和控制功能,可以精确显示每个网络连接的状态,让用户轻松掌握网络活动情况。 软件下载:Radio…

mysql公用表表达式CTE

公用表达式是MySQL8.0的新特性,它是一个命名的临时结果集,作用范围是当前语句。 可以理解成为当前sql语句定义了一个视图,sql语句的任何地方都可以使用这个视图,如果被多次使用就体现出了公用表达式的特点公用。 依据语法结构和执…

从零开始的深度学习入门指南

1. 引言 1.1. 深度学习的定义和背景:深度学习是一种复杂的机器学习技术,其目的是训练一个深度神经网络来解决现实世界中的各种问题。深度学习由一组相互连接的神经元组成,每个神经元都有自己的权重,这些权重被优化以实现预测和分…

2024河北煤炭装备展览会|河北采煤装备展会|河北煤博会

2024中国(石家庄)国际煤炭装备及矿山设备博览会 时间:2024年7月4-6日 地点:石家庄国际会展中心.正定在快速发展的科技时代,能源行业始终是国家发展的重要支柱。作为传统的能源巨头,煤炭产业在面临转型升…

git最常用的命令与快捷操作说明

git最常用的命令与快捷操作说明 最常用的git三条命令1、git add .2、git commit -m "推送注释"3、git push origin 远程分支名:本地分支名 其他常用命令本地创建仓库分支删除本地指定分支切换本地分支合并本地分支拉取远程仓库指定分支代码过来合并推送代码到远程分支…

Gitlab 实现仓库完全迁移,包括所有提交记录、分支、标签

1 方案一&#xff1a;命令 cd <项目目录> git fetch --all git fetch --tags git remote rename origin old-origin #可以不保留 git remote add origin http://***(项目的新仓库地址) #git remote set-url origin <项目的新仓库地址> git push origin --all git…

(1) 易经与命运_学习笔记

个人笔记&#xff0c;斟酌阅读 占卦的原理 三个铜板&#xff0c;正面是3&#xff0c;反面2&#xff0c;三个一起转&#xff0c;得出6,7,8,9 数字象6老阴7少阳8少阴9老阳 生数和成数 生数和成数应该说出自《河图》。其中一二三四五为生数&#xff0c;六七八九十为成数。 生…

NLP深入学习:结合源码详解 BERT 模型(三)

文章目录 1. 前言2. 预训练2.1 modeling.BertModel2.1.1 embedding_lookup2.1.2 embedding_postprocessor2.1.3 transformer_model 2.2 get_masked_lm_output2.3 get_next_sentence_output2.4 训练 3. 参考 1. 前言 前情提要&#xff1a; 《NLP深入学习&#xff1a;结合源码详…

分享:vue3+OpenTiny UI+cesium 实现三维地球

效果图 使用vue3 OpenTiny UI cesium 实现三维地球 node.js > v16.0 opentiny vue3 ui安装指南 https://opentiny.design/tiny-vue/zh-CN/os-theme/docs/installation yarn add opentiny/vue3 项目依赖 "dependencies": {"opentiny/vue": "3…

【图像合成】基于DCGAN典型网络的MNIST字符生成(pytorch)

关于 近年来&#xff0c;基于卷积网络&#xff08;CNN&#xff09;的监督学习已经 在计算机视觉应用中得到了广泛的采用。相比之下&#xff0c;无监督 使用 CNN 进行学习受到的关注较少。在这项工作中&#xff0c;我们希望能有所帮助 缩小了 CNN 在监督学习和无监督学习方面的成…