Linux内核 eBPF基础 ftrace基础:ftrace_init初始化 荣涛 2021年5月12日 本文相关注释代码:https://github.com/Rtoax/linux-5.10.13从整体架构来看,ftrace位于内核态,提供对内核函数的trace功能。图片链接:http://tinylab.org/ftrace-principle-and-practice/静态探测点,
转载 2024-01-04 19:39:54
141阅读
 运行在 Android 上的难题BCC 及 BPFTrace 使用的是基于 CMake 的编译方式,与 Android 使用的 gradle,Android BP 的编译系统是不一致的BCC 项目中以 python 包为基础,那意味着需要有 python 运行环境,这在 anroid 里也是没有的可行的思路思考可行的思路,可以使用的方案如下没条件就创造条件,将 BCC&BPFT
转载 7月前
80阅读
android ebpf应用是一个新兴的领域,特别是在移动设备的大环境下,eBPF(Extended Berkeley Packet Filter)为Android平台提供了高效的网络包过滤、性能分析和安全监测等能力。在这篇文章中,我将深入探讨android eBPF应用的实现及挑战,同时按照逻辑结构详细记录这个过程。 ## 协议背景 首先必须了解eBPF的基本概念和其在Android中的应用
原创 6月前
92阅读
一、eBPF是什么eBPF是extended BPF的缩写,而BPF是Berkeley Packet Filter的缩写。对linux网络比较熟悉的伙伴对BPF应该比较了解,它通过特定的语法规则使用基于寄存器的虚拟机来描述包过滤的行为。比较常用的功能是通过过滤来统计流量,tcpdump工具就是基于BPF实现的。而eBPF对它进行了扩展来实现更多的功能。主要区别如下:1)允许使用C 语言编写代码片段
转载 2021-05-11 14:56:40
1064阅读
android BLE系列:android蓝牙BLE(一) —— 扫描android蓝牙BLE(二) —— 通信android蓝牙BLE(三) —— 广播一、蓝牙基础协议    想了解蓝牙通信之前,需要先了解蓝牙两个最基本的协议:GAP 和 GATT。1、GAP(Generic Access Profile)简介   &nbsp
转载 2023-07-10 00:18:00
185阅读
一、简介1. Android 从9.0版本开始全面支持eBPF,其主要用在流量统计上。此外,eBPF可以与内核的 kprobe/tracepoints/skfilter 等模块相结合,hook内核事件从而监控相应的系统状态。二、bpf服务启动与程序加载1. AndroideBPF 提供了许多封装的库,并设计了 eBPF 加载器 bpfloader,主要模块如下:(1) bpfloader:
转载 2023-08-02 17:00:15
876阅读
1. ebpf概述1.1 ebpf发展历史 BPF,及伯克利包过滤器Berkeley Packet Filter,最初构想提出于 1992 年,其目的是为了提供一种过滤包的方法,并且要避免从内核空间到用户空间的无用的数据包复制行为。它最初是由从用户空间注入到内核的一个简单的字节码构成,它在那个位置利用一个校验器进行检查 —— 以避免内核崩溃或者安全问题 —— 并附着到一个套接字上,接着在每个接收到
转载 2024-05-27 14:37:43
167阅读
1.BPF起源BPF源头起源于一篇1992年的论文,这篇论文主要提出一种新的网络数据包的过滤的框架,如下图所示。提出bpf的原因其实也很简单,早期我们从网卡中接收到很多的数据包,我们要想从中过滤出我们想要的数据包,我们需要将网卡接收的数据包都要从内核空间拷贝一份到用户空间。然后,用户程序在对这些进行过滤。那么,我们可以从中就能够发现一个问题。数据包必须全部拷贝。然后再过滤出所需的数据包,那么对于那
转载 2021-05-11 15:06:25
595阅读
一、介绍简要介绍eBPF 全称"扩展的伯克利数据包过滤器 (Extended Berkeley Packet Filter)" ,是从 BPF (Berkeley Packet Filter) 技术扩展而来的,顾名思义 BPF 技术来源于伯克利大学,最早应用于网络数据包过滤器,它比当时最先进的抓包技术快20倍。随着内核的发展,BPF 的功能随之丰富以及扩展,从最早的数据包过滤扩展到了网络、内核、安
原创 2024-03-12 09:04:46
557阅读
实现 "ebpf TOA" 的步骤和代码解释: ## 1. 了解 eBPF TOA 首先,让我们来了解一下 "ebpf TOA" 是什么。ebpf TOA 是一种使用 eBPF(Extended Berkeley Packet Filter)技术来实现的网络数据包透明传输的方法。它可以在数据包经过 Linux 内核网络协议栈的各个层级时,对数据包进行处理和修改,以实现各种网络功能。 ## 2
原创 2024-01-10 00:13:46
160阅读
1.什么是ebpf ebpf(extended berkeley package filter),中文意思扩展的伯克利包过滤器,随着ebpf不断完善和加强,现在的ebpf已经不在限于过滤网络数据包了。 2.基本原理 网上很有名的图,参考:https://cloud.tencent.com/developer/article/1970119 其实就是在用户态,将c语言程序编译成bpf字节码(使用c
原创 1月前
35阅读
1 什么是 eBPFeBPF 全称 extended Berkeley Packet Filter,中文意思是 扩展的伯克利包过滤器。一般来说,要向内核添加新功能,需要修改内核源代码或者编写 内核模块 来实现。而 eBPF 允许程序在不修改内核源代码,或添加额外的内核模块情况下运行。从 eBPF 的名字看,好像是专门为过滤网络包而创造的。其实,eBPF 是从 BPF(也称为 cBPF:classi
原创 2024-03-18 08:43:00
292阅读
no space left on device 无处遁形最近在生产环境中遇到了几次创建容器报错 ”no space left o
转载 2022-11-04 09:46:25
258阅读
# 实现"ebpf kprobe"的流程及代码示例 ## 概述 在Kubernetes中,eBPF(extended Berkeley Packet Filter)是一种强大的内核技术,可以用于在不修改内核代码的情况下扩展内核功能。而KProbe是eBPF的一种类型,用于在内核函数执行时插入自定义的代码进行跟踪和监控。本文将介绍如何在Kubernetes中使用eBPF的KProbe功能。 ##
原创 2024-05-22 10:10:28
63阅读
BPF BPF 概述 BPF 最初代表伯克利包过滤器 (Berkeley Packet Filter)是基于寄存器的虚拟机运行于内核空间,能够在linux内核内
原创 2024-01-04 09:35:39
138阅读
# 如何实现“pinpoint eBPF” ## 概述 Pinpoint是一个开源的应用性能监控工具,可以帮助开发者定位和解决应用程序中的性能问题。而eBPF(Extended Berkeley Packet Filter)是Linux内核中的一种特性,可以在不修改内核源码的情况下,通过加载和执行特定的eBPF程序来对系统进行深度观测和控制。 本文将介绍如何实现“pinpoint eBPF
原创 2024-01-10 01:25:32
133阅读
一、背景1、grpc 在微服务中使用情况分析协议、微服务框架及eBPF采集支持状态使用热度协议Golang框架Java框架协议描述eBPF支持状态1HTTPDubbo-go、go-micro、go-zero、kratos、CloudWeGo-Kitex、Goa、Jupiter、tars-goSpringBoot, Dubbohttps://cn.dubbo.apache.org/zh/docs3-
揭秘 BPF map 前生今世1. 前言众所周知,map 可用于内核 BPF 程序和用户应用程序之间实现双向的数据交换, 为 BPF 技术中的重要基础数据结构。在 BPF 程序中可以通过声明 struct bpf_map_def 结构完成创建,这其实带给我们一种错觉,感觉这和普通的 C 语言变量没有区别,然而事实真的是这样的吗? 事情远没有这么简单,读完本文以后相信你会有更大的惊喜。struct
https://mp.weixin.qq.com/s/IZUdRmxtguBbLlT3LYXt6A
原创 7月前
0阅读
# EBPF Java: 科普文章 ## 引言 在计算机科学领域,扩展 Berkeley Packet Filter(eBPF)是一种强大的技术,用于在Linux内核中执行自定义的网络处理和系统监控任务。最近,eBPF技术也开始在Java开发领域受到广泛关注。本文将简要介绍eBPF和它在Java中的应用。 ## 什么是eBPF? Berkeley Packet Filter (BPF) 是
原创 2024-02-03 06:41:40
227阅读
  • 1
  • 2
  • 3
  • 4
  • 5