BPF
  • 2024-12-05文献解读:大气条件对风电机组次声测量的影响
    题目:大气条件对风电机组次声测量的影响关键词:风电机组次声;叶片通过频率等级;预测模型;大气湍流;室外次声测量;1中文摘要  随着风电机组的规模和数量不断增加,过去十年中,人们对风电机组低频和次声的研究更加关注。但大气条件对风电机组噪声影响的研究较少,如大气边界层的湍流特征
  • 2024-12-04eBPF 运行原理和流程
    前言极客时间eBPF核心技术与实战的学习笔记.本章说一下ebpf的运行原理,本章有些内容是直接copy自课程原文eBPF虚拟机(执行器)包含了什么官方的说话,eBPF是运行在eBPF虚拟机中,而不是直接作用于系统.但是也有人说,eBPF执行系统更应该称之为执行器,因为他并不如
  • 2024-12-01ebpf发展简史
    前言极客时间eBPF核心技术与实战的学习笔记.本章简单介绍一下eBPF的发展和概述正文eBPF发展历史注意区分BPF和eBPF提案1992年USENUX会议上提出BPF机制来在linux中进行包过滤在内核态中引入虚拟机执行BPF指令在用户态使用BPF字节码来进行表达式的自定
  • 2024-11-30AI大模型就业全攻略:职位选择、薪资待遇与学习资源
    前言随着AI技术的迅猛发展,大模型(如GPT系列、BERT、ERNIE等)已经成为推动人工智能创新的重要力量。AI大模型的崛起预计将为中国乃至全球带来大量的就业机会,这些岗位将覆盖多个领域。为了帮助大家更好地把握这些机会,以下是对AI大模型相关就业机会的概述,以及一系列学习资料的推
  • 2024-08-20使用cilium开发ebpf程序
    使用go开发ebpf程序最常见的一个框架就是cilium。开发前需要了解ebpf,了解go语言的基础知识。在本地安装go之后下载bpf2gogogetgithub.com/cilium/ebpf/cmd/bpf2go从最简单的开发框架开始下载示例源码gitclonehttps://github.com/cilium/ebpf.git在ebpf/examples下是官方
  • 2024-08-14(转)《eBPF 核心技术与实战》
    原文:https://fanlv.fun/2022/11/05/study-ebpf/概览eBPF 是什么呢?从它的全称“扩展的伯克利数据包过滤器(ExtendedBerkeleyPacketFilter)”来看,它是一种数据包过滤技术,是从 BPF(BerkeleyPacketFilter) 技术扩展而来的。BPF 提供了一种在内核事件和用户程序事件发
  • 2024-07-30基于BPF提升postgres可观测性的前提或条件
    最近看到一个新产品(dbdoctor)使用了eBPF技术,可实现对sql级别的监控,其涵盖了,cpu,内存,io,网络等,功能非常强大,目前mysql版本的已经开卖了。经过一番了解发现,该技术对于数据库的性能分析,故障排查方面很有用处。下面对了解到的内容总结一下。参考:Linux可观测性BPF&eBPF以及BCC&bpf
  • 2024-07-16eBPF bpf_redirect函数
    函数定义https://www.man7.org/linux/man-pages/man7/bpf-helpers.7.html网卡响应报文网卡要响应报文,不是经过该网卡就可以。报文必须进入这个网口才行,bpf_redirect表示进入这个网口(虚拟机网口除外,需要指定BPF_F_INGRESS才行)。因为网卡响应在tcingress之前,所以左侧流程虚拟
  • 2024-07-11eBPF 容器持久化map到宿主机上
    问题现象k8s上启动pod后,使用主机网络的容器,加载eBPF程序到网口上,持久化map只能保存在容器文件系统/sys/fs/bpf中。容器复位后,新容器与原来eBPF程序使用的不是同一个map。问题分析新容器使用新的文件系统,无法找回原来的/sys/fs/bpf挂载点,需要持久化到宿主机上。k8s挂载传播,实现
  • 2024-07-11eBPF 用户态和内核态基于ringbuf交互
    相比于perf_event_array,ringbuf优势在于1.读取数据是有序的,即提交顺序和消费顺序保持一致。2.避免数据复制,即提交数据到map和传递到用户态都不需要拷贝。内核态ringbuf/ringbuf.c#include"../headers/vmlinux.h"#include"../headers/bpf_endian.h"#include"../headers/b
  • 2024-05-19eBPF常用map类型
    map种类map类型特点HashMapBPF_MAP_TYPE_HASHhashmap。BPF_MAP_TYPE_PERCPU_HASHpercore的hashmap。BPF_MAP_TYPE_LRU_HASHmap塞满之后,继续插入,自动删除最近最少使用的entry。ArrayMapBPF_MAP_TYPE_ARRAY数组,key是整数。
  • 2024-05-05eBPF约束
    内核态约束1.内核态eBPF无法使用C语言标准库。因为不支持malloc,所以无法扩展skb空间且无法直接从内核态拷贝整个报文到用户态。2.内核态eBPF无法获取当前时间,bpf_ktime_get_ns函数返回系统启动后运行纳秒数,不包括系统暂停时间。https://www.man7.org/linux/man-pages/man7/bpf
  • 2024-04-24ebpf在Android安全上的应用:ebpf的一些基础知识(上篇)
    ebpf在Android安全上的应用:ebpf的一些基础知识(上篇)一、ebpf介绍eBPF是一项革命性的技术,起源于Linux内核,它可以在特权上下文中(如操作系统内核)运行沙盒程序。它用于安全有效地扩展内核的功能,而无需通过更改内核源代码或加载内核模块的方式来实现。(PS:介绍来源于https://ebpf.i
  • 2024-04-14eBPF指定网口丢弃icmp报文
    安装eBPF依赖#安装编译工具aptinstall-yllvmclang#确认内核具有BTF支持,路径存在,内核没有BTF支持,使用vmlinux.h无法通过编译ls/sys/kernel/btf#生成vmlinux.h#aptinstall-ylinux-tools-genericaptinstall-ylinux-tools-6.5.0-26-genericbpftoolbtfdump
  • 2024-04-11转载 ebpf sockmap/redirection 提升 socket 性能(2020)
    利用ebpfsockmap/redirection提升socket性能(2020)转自:https://arthurchiao.art/blog/socket-acceleration-with-ebpf-zh/译者序本文翻译自2020年的一篇英文博客 HowtouseeBPFforacceleratingCloudNativeapplications。原文标题非常宽泛,但内容其实很技术:展示了
  • 2024-04-08【Learning eBPF-3】一个 eBPF 程序的深入剖析
    从这一章开始,我们先放下BCC框架,来看仅通过C语言如何实现一个eBPF。如此一来,你会更加理解BCC所做的底层工作。在这一章中,我们会讨论一个eBPF程序被执行的完整流程,如下图所示。一个eBPF程序实际上是一组eBPF字节码指令。因此你可以直接使用这种特定的字节码来编写e
  • 2024-04-01【Learning eBPF-2】eBPF 的“Hello world”
    前一章讲了eBPF为什么这么吊,不理解没关系,现在开始,我们通过一个“Helloworld”例子,来真正入门一下。BCCPython框架是上手eBPF的最友好方式。来看。2.1BCC的HelloWorld下面的程序是一段BCC框架的HelloWorld程序。#!/usr/bin/python3frombccimportBPFpr
  • 2024-03-29Wireshark过滤基础语法简析
    1.简介Wireshark是一款强大的网络分析工具,它可以捕获和显示网络上的数据包,并提供多种过滤功能,让用户可以快速地找到自己感兴趣的数据包。Wireshark的过滤功能分为两种:捕获过滤和显示过滤。捕获过滤是在数据包进入Wireshark之前就对其进行筛选,只保留符合条件的数据包,从而减少捕
  • 2024-03-29【Learning eBPF-1】什么是 eBPF?为什么它很吊?
    本书中,eBPF被称为一种革命性的内核技术,被广泛应用于网络、观测和安全工具中。这种技术允许你在不重新编译内核的情况下,使能你的自定义工具,与内核数据进行交互。听起来很厉害。1.1追踪溯源,伯克利包过滤器eBPF的祖宗就是伯克利包过滤器,英文名:TheBerkeleyPacketFilter,
  • 2024-03-26BTF:实践指南
    BPF是Linux内核中基于寄存器的虚拟机,可安全、高效和事件驱动的方式执行加载至内核的字节码。与内核模块不同,BPF程序经过验证以确保它们终止并且不包含任何可能锁定内核的循环。BPF程序允许调用的内核函数也受到限制,以确保最大的安全性以防止非法的访问。尽管BPF为编写事件
  • 2024-03-19AOSP平台编写Android-ebpf程序(tracepoint)的一些map定义和使用问题,导致map和prog无法产生的原因。
     前言本片文章并不主要讲解在AOSP平台ebpf程序的整个编写流程,只是一些的map的定义使用问题,如有需要可查看,aosp平台的整个下载流程,以及简单的程序的编译和如何push到手机运行,这位up是我在ebpf领域探索的领路人,本站ID:LiujiaHuan13,如果有需要up本人后面会考虑写一篇aosp程序书写
  • 2024-03-07BPF BTF 详解
    1.介绍BTF(BPFTypeFormat)是内嵌在BPF(BerkeleyPacketFilter)程序中的数据结构描述信息。BPF原本是用于数据包过滤的编程语言,但随着eBPF(extendedBPF)的发展,它的用途已经扩展到多种内核子系统中,包括性能监测、网络安全和配置管理等。BTF是为了实现更复杂的eBPF程序而设计的。其
  • 2024-03-07使用BPF之前和之后生成直方图过程的对比
    以bitehist为例:使用BPF之前:1、在内核中:开启磁盘IO事件的插桩观测。2、在内核中,针对每个事件:向perf缓冲区写入一条记录。如果使用了跟踪点技术(推荐方式),记录中会包含关于磁盘IO的几个元数据字段。3、在用户空间:周期性地将所有事件的缓冲区内容复制到用户空间4。在用户空间:
  • 2024-03-06Linux超能力BPF技术介绍及学习分享(转)
    Linux超能力BPF技术介绍及学习分享版权属于原作者,地址 https://cloud.tencent.com/developer/article/1698426 文章被收录于专栏:大卫李的技术分享​​背景介绍近两年BPF技术跃然成为了一项热门技术,在刚刚结束的KubeCon2020Europe会议上有7个关于BPF的