如何系统地学习并掌握eBPF技术?

摘要:目录重要网站eBPF大会编程eBPF 汇编ebpf-librarieslibbpf-bootstraplibbpfBCCbpftracebpftimeubpfrbpf技术专题入门man手册编译器KfuncFentryCO-REpahole
目录重要网站eBPF大会编程eBPF 汇编ebpf-librarieslibbpf-bootstraplibbpfBCCbpftracebpftimeubpfrbpf技术专题入门man手册编译器Kfunc/FentryCO-REpaholeTail CallMAPbpftool调试网络XDPCiliumeCapture内核子系统中的eBPF性能优化开销代码分析 重要网站 帮助手册:https://docs.ebpf.io/ bpf man:https://man7.org/linux/man-pages/man2/bpf.2.html https://ebpf.io/ 内核中的BPF文档汇总 深入浅出 eBPF eBPF学习教程 ARTHURCHIAO'S BLOG https://www.bolipi.com/ebpf/index https://github.com/iovisor https://github.com/libbpf https://github.com/cilium/ 深入理解 BPF:一个阅读清单 libbpf API 列表 bpf doc Andrii Nakryiko's Blog ebpf-slide Collection of Linux eBPF slides/documents. https://blog.csdn.net/qq_17045267 https://github.com/mannkafai/bpf-inside https://asphaltt.github.io/post/ https://eunomia.dev/tutorials/ eBPF大会 第三届 第二届 第一届 主会场 分会场一 分会场二 分会场三 编程 不同类型的eBPF程序可以调用内核函数 使用bpftool feature probe可以得到,下面是6.5版本内核的系统中输出的结果 bpftool_feature_6_5.xml eBPF 汇编 LLVM eBPF 汇编编程 eBPF的汇编指令集、如何将字节码反汇编等 BPF Standardization eBPF Spec eBPF assembly with LLVM 内核中实现的ebpf汇编器、反汇编器和调试器 tools/bpf/bpf_asm.c tools/bpf/bpf_jit_disasm.c tools/bpf/bpf_dbg.c ebpf-libraries https://ebpf.io/infrastructure#ebpf-libraries libbpf-bootstrap https://github.com/libbpf/libbpf-bootstrap libbpf-bootstrap 基础 一文搞懂如何从头开发一个Hello World级eBPF程序 使用libbpf-bootstrap构建第一个libbpf+BPF CO-RE程序 libbpf-bootstrap Makefile阅读 BPF编程-使用libbpf-bootstrap构建BPF应用程序【译】 Building BPF applications with libbpf-bootstrap libbpf 内核中的libbpf文档 简介 API指南 Sec段的介绍:Program Types and ELF Sections BCC to libbpf conversion guide HOWTO: BCC to libbpf conversion BTF:实践指南,以XDP为例 Linux内核中的参考程序 samples/bpf tools/testing/selftests/bpf http://arthurchiao.art/blog/cilium-bpf-xdp-reference-guide-zh/#26-内核测试 BCC中的基于libbpf开发的实用工具 bcc/libbpf-tools/ BCC bcc参考手册 BCC python前端开发 BCC中基于python开发的实用工具:bcc/tools 使能eBPF需要开启的内核配置 eBPF的不同特性分别是在哪个内核版本引入的 bpftrace MAN手册 https://bpftrace.org/ bpftrace使用案例学习 bpftime bpftime: 让 eBPF 从内核扩展到用户空间 ubpf https://github.com/iovisor/ubpf rbpf https://github.com/qmonnet/rbpf 技术专题 入门 What is eBPF? 学习eBPF电子书 https://docs.ebpf.io/ eBPF 工作原理浅析 eBPF 概述 eBPF 技术简介 Linux超能力BPF技术介绍及学习分享 linux-bpf-learning BPF Documentation Cilium:BPF 和 XDP 参考指南(2021) BPF and XDP Reference Guide Cilium:BPF和XDP参考指南 高效入门eBPF Linux Tracing System浅析 & eBPF开发经验分享 Linux 核心設計: 透過 eBPF 觀察作業系統行為 内核之旅文档 Lifetime of BPF objects 深入理解 Linux eBPF:一个完整阅读清单(转载) eBPF application development: Beyond the basics man手册 bpf-helpers(7) — Linux manual page bpf系统调用 perf_event_open 编译器 clang Getting Started: Building and Running Clang github:https://github.com/llvm/llvm-project/tree/main/clang/ gcc BPFBackEnd Kfunc/Fentry fentry/fexit (aka kfunc/kretfunc) BPF trampoline support libbpf-bootstrap中fentry的示例程序 BPF Kernel Functions (kfuncs) CO-RE BPF 可移植性和 CO-RE(一次编译,到处运行) BPF CO-RE reference guide BPF的可移植性和CO-RE (Compile Once – Run Everywhere) BPF CO-RE (Compile Once – Run Everywhere) BPF Type Format (BTF) BPF BTF 详解 btfgen-internals BTF deduplication and Linux kernel BTF BPF BTF 详细介绍 eBPF BTF GENERATOR: The road to truly portable CO-RE eBPF programs pahole Tools that generate BTF information http://arthurchiao.art/blog/cilium-bpf-xdp-reference-guide-zh/#24-bpftool pahole安装及使用 https://github.com/aquasecurity/btfhub/blob/main/docs/how-to-use-pahole.md pahole(1) - Linux man page https://wiki.bwhpc.de/e/Pahole https://git.kernel.org/pub/scm/devel/pahole/pahole.git https://git.kernel.org/pub/scm/devel/pahole/pahole.git/tree/README.btf https://github.com/acmel/dwarves https://git.kernel.org/pub/scm/devel/pahole/pahole.git/ Tail Call eBPF: 从 BPF to BPF Calls 到 Tail Calls The Cost of BPF Tail Calls MAP 揭秘 BPF map 前生今世 BPF 进阶笔记(三):BPF Map 内核实现 bpftool 上手 bpftool eBPF中bpftool的常见用法 Features of bpftool: the thread of tips and examples to work with eBPF objects 调试 BPF drgn tools BPF 进阶笔记(四):调试 BPF 程序 BPF tips & tricks: the guide to bpf_trace_printk() and bpf_printk() 网络 eBPF网络程序新手指南 用Linux内核的瑞士军刀-eBPF实现socket转发offload XDP XDP (eXpress Data Path):在操作系统内核中实现快速、可编程包处理 实现一个基于XDP_eBPF的学习型网桥 Cilium:BPF 和 XDP 参考指南(2021) 深入理解 Cilium 的 eBPF 收发包路径 Cilium https://docs.cilium.io/en/stable/ 深入理解 Cilium 的 eBPF 收发包路径 https://youtu.be/Kmm8Hl57WDU?si=wpxJnRRD1KY_6ofz eCapture https://github.com/gojue/ecapture 使用ebpf 编写C 语言的网络抓包工具,参考开源项目 eCapture 内核子系统中的eBPF 当 BPF 邂逅 CPU 调度器 PATCH 测试程序 性能优化 eBPF 火焰图演示 开销 The pros and cons of eBPF profiling Building an eBPF-Based Profiler 代码分析 BPF 内核实现详解 Ring Buffer BPF 环形缓冲区 BPF ring buffer:使用场景、核心设计及程序示例 PATCH 迭代器 BPF 通用迭代器机制 Linux Bpf+Bcc (目录) How eBPF program connects with tracepoint Linux bpf 1.1、BPF内核实现 eBPF内核实现之TRACING Linux eBPF内核源码sample/bpf全网最细解析(一) BPF 进阶笔记(一):BPF 程序(BPF Prog)类型详解:使用场景、函数签名、执行位置及程序示例 BPF 进阶笔记(二):BPF Map 类型详解:使用场景、程序示例 BPF 进阶笔记(三):BPF Map 内核实现 eBPF程序注入到内核中的流程,现在就带你研究(上) 微信公众号 eBPF程序注入到内核中的流程,现在就带你研究(下) 微信公众号