相关文章

【BPF入门系列-12】【译】eBPF 和 Go 经验初探

原文地址:https://networkop.co.uk/post/2021-03-ebpf-intro/ 本站相关文档:使用 Go 语言管理和分发 ebpf 程序 1. 前言 eBPF 的生态欣欣向荣,无论是 eBPF 本身及其各种应用(包括 XDP) 方面都有大量的学习资源。但当…

【BPF入门系列-1】eBPF 技术简介

由范老师和我一起翻译的图书 《Linux内核观测技术BPF》 已经在 JD 上有现货,欢迎感兴趣 BPF 技术的同学选购。链接地址 https://item.jd.com/72110825905.html “eBPF 是我见过的 Linux 中最神奇的技术,没有之一,已成为 Linux 内核中顶级子模…

BPF内核实现之TRAMPOLINE

一、FTRACE概述 BPF中的trampoline这个概念,弹簧,听起来有点抽象。想要理解这个机制的作用和原理,我们首先要理解ftrace的一些原理。按照使用方式的不同,ftrace分为静态trace和动态trace(DYNAMIC FTRACE)。…

bpf的加载流程分析

文章目录 前言elf结构简介load_bpf_file函数准备工作创建map处理所有的重定向section加载ebpf程序 参考 前言 我们知道,使用clang/llvm编译生成的target为bpf的elf文件,使用load_bpf_file函数加载进入内核。 所以,这里,我们需要…

BPF入门:通过Hello World踏上内核编程之旅

Part 1 概述 1. 背景 BPF 技术被列为近些年 Linux 内核领域最火热的新领域之一。它成功的给 Linux 内核赋予了少量的动态可编程性,可以在 Linux 内核运行时,实时修改内核的行为,但不需要重新编译和重启内核。据此,BPF 在 Linux …

深入理解 BPF map 实现机制

揭秘 BPF map 前生今世 目录 揭秘 BPF map 前生今世1. 前言2. 简单的使用样例用户空间与内核 BPF 辅助函数参数对比 3. 深入指令分析3.1 查看 BPF 指令3.2 加载器创建 map 对象3.3 第一次变身: map fd 替换3.4 第二次变身: map fd 替换成 map 结构指针 4…

BPF技术学习分享

什么是BPF程序: BPF is a highly flexible and efficient virtual machine-like construct in the Linux kernel allowing to execute bytecode at various hook points in a safe manner. BPF程序 ----LLVMClang----> BPF字节码 ----JIT----> BPF指令集&…

【BPF入门系列-2】BPF 学习路径总结

1. 为什么要学习 BPF 可以先从 ebpf.io 网站获取一个简单的了解,首页内容翻译如下。 Linux 内核一直是实现监控/可观察性、网络和安全性的理想场所。不幸的是,这往往是不切实际的,因为它需要改变内核源代码或加载内核模块,并导致…

BPF介绍

Thank Zhihao Tao for your hard work. The document spent countless nights and weekends, using his hard work to make it convenient for everyone. If you have any questions, please send a email to zhihao.taooutlook.com 文章目录 1. 概述1.1 发展1.2 优势1.3 限制1…

BPF 程序与信号交互大揭秘

本文地址 : BPF 程序与信号交互大揭秘 | 深入浅出 eBPF 原文:Signaling from within: how eBPF interacts with signals 1. 背景2. 动机3. 场景:拦截 openat(2)4. 内核如何处理 SIGKILL 信号?5. 什么信号要后置处理6. 通过 BPF程…

BPF之事件源

基础 1. BPF和eBPF概念 BPF 原是 Berkeley Packet Filter(伯克利数据包过滤器)的缩写,1992诞生,用于网络包过滤。2014经过修改并入 Linux 内核主线,从此 BPF 变成了一个更通用的执行引擎,主要用于网络、可…

DPDK BPF

DPDK BPF DPDK 自版本 18.05 已集成了 librte_bpf, 主要利用rte_eth_rx_burst/rte_eth_tx_burst 回调函数机制, 执行eBPF字节码. 当前支持以下特性: base eBPF ISA (except tail-pointer)JIT (x86_64 and arm64 only)eBPF code verifieruser-defined helper functions (64-bi…

BPF:BCC(BPF Compiler Collection)工具集认知

写在前面 博文内容为 《BPF Performance Tools》 读书笔记整理内容涉及 BCC 工具整体介绍理解不足小伙伴帮忙指正 😃,生活加油 不必太纠结于当下,也不必太忧虑未来,当你经历过一些事情的时候,眼前的风景已经和从前不一样了。——村…

eBPF学习 - 入门

BPF和eBPF是什么? BPF是Berkeley Packet Filter(伯克利数据包过滤器)得缩写,诞生于1992年,其作用是提升网络包过滤工具得性能,并于2014年正式并入Linux内核主线。 BPF提供一种在各种内核事件和应用程序事件…

【无标题】Android上使用BPF工具获取内核信息

一、BPF介绍 eBPF是extended BPF的缩写,而BPF是Berkeley Packet Filter的缩写。最新的BPF经过两次功能扩展,已经不仅能够网络数据包的的过滤。 eBPF主要专注的是性能领域,通过各种钩子,能在用户空间得到系统各种性能指标。 eBP…

初识 BPF:从 Hello World 开始的内核编程之旅

Part 1 概述 1. 背景 BPF 技术被列为近些年 Linux 内核领域最火热的新领域之一。它成功的给 Linux 内核赋予了少量的动态可编程性,可以在 Linux 内核运行时,实时修改内核的行为,但不需要重新编译和重启内核。据此,BPF 在 Linux …

01-BPF架构

BPF不仅仅通过提供指令集来定义自己,还围绕它提供了进一步的基础设施,如作为高效键值存储的映射(maps)、与内核功能交互和利用的辅助函数(helper functions)、调用其他BPF程序的尾调用(tail cal…

BPF入门1:BPF技术简介

目录 cbpf 介绍ebpf 介绍ebpf 和 cbpf对比ebpf和内核模块的对比 ebpf应用ebpf架构Why BPF is FAST指令虚拟机JIT How BPF extends KernelLLVM 编写ebpf程序BCCBPFTraceC 语言原生方式 国内大厂使用ebpf的实践经验参考 cbpf 介绍 BPF(Berkeley Packet Filter &#…

字符集和字符编码(Charset Encoding)

相信大家一定碰到过,打开某个网页,却显示一堆像乱码,如"бЇЯАзЪСЯ"、"�????????"?还记得HTTP中的Accept-Charset、Accept-Encoding、Accept-Language、Content-Encoding、Content-…

arduino烧录esp32-cam

文章目录 前言一、esp32-cam的组成二、使用底板烧录三、使用ttl转USB烧录四、总结 前言 我使用esp32-cam已经有两个星期了,两个星期都没能烧录进去,最后发现是底板的问题,在今天使用ttl转usb烧录成功并且可以使用了,我在这里就把…