分类 BPF 中的文章

Rust 系列 03:深入理解 Kprobes 与 Kretprobes

本文地址:https://www.ebpf.top/post/03-lets-understand-kprobes-kretprobes 1. 工作原理 2. 注意事项 3. 实战示例 3.1 跟踪目标进程 PID 4. eBPF 程序逻辑:提取 HTTP 头 4.1 跟踪连接建立:kretprobe/__sys_accept4 4.2 跟踪数据读取……

阅读全文

Rust 系列 02:理解 eBPF 核心构建单元

本文地址:https://www.ebpf.top/post/02-understanding-ebpf-core-building-blocks 1. BPF 程序类型与钩子点 2. BPF 验证器:安全守护者 3. BPF map:数据存储与通信 4. 辅助函数:内核 API 5. BTF & CO-RE:一次编写,到处运行 6. BPF 尾调用(……

阅读全文

Rust 系列 01: eBPF 和 Rust 简介

本文地址:https://www.ebpf.top/post/01-intro-into-ebpf-and-rust 1. 什么是 eBPF? 2. 为什么选择 Rust? 3. 可用的 Rust 库 3.1 libbpf-rs 3.2 Aya 4. 为什么选择 libbpf-rs 4.1 什么是 libbpf? 4.2 CO-RE 的工作原理 4.3 为什么选择 libbpf-rs 4.5 为什么 libbpf-rs 适合我的场景 5. eBPF + Rust:架……

阅读全文

eBPF 进阶:5种循环方式你都掌握了吗?

本文地址:https://www.ebpf.top/post/bpf_five_loops 1. 前言 本文的主题是在 eBPF 技术中代码如何编写循环。 循环几乎是我们所能接触到的所有编程语言中的通用概念,但在 eBPF 中,它们可能要复杂一些。更不用说,截止到目前 eBPF 提供了5+ 种不同的循环方式 - 那么我们应该……

阅读全文

使用 eBPF 追踪进程 capabilities 变化

本文地址:https://www.ebpf.top/post/bpf_capabilities_debug 作者:kira skyler 前言 借助 eBPF 大展身手 追踪权能变化 屠龙 前言 在 Linux 操作系统中," 权能 " (capabilities) 是一种权限机制,用于 linux 系统中的全部特权,细粒度地划分为多个独立的权限位。这样,用户或……

阅读全文

BPF 调度器 sched_ext 实现机制、调度流程及样例

本文地址:https://www.ebpf.top/post/bpf_sched_ext_dive_into Linux 进程调度器 CFS 调度器 EEVDF 调度器 通用调度器的窘境 BPF 调度扩展器 sched_ext 实现机制 新增1: SCHED_EXT 调度类 新增2:eBPF 自定义调度器函数 SCHED_EXT 调度类工作流程 调度队列 DSQ(Dispatch Queue……

阅读全文

Linus 强势拍板 6.11 合入: BPF 赋能调度器终成正果

本文地址:https://www.ebpf.top/post/bpf_sched_ext 1. 插拔调度器的萌芽【2004 年】 在 2004 年,Linux 社区的 Con Kolivas 提出了可插拔式调度器想法,旨在让内核中存在多个调度器,用户可在引导时选择。提交 patch 的工作原理是将大量代码拆分为 kernel/sched.c 公共部分和私有部分,同……

阅读全文

BPF 跟踪机制之原始跟踪点 rawtracepoint 介绍、使用和样例

本文地址:https://www.ebpf.top/post/bpf_rawtracepoint 1. eBPF Trace 跟踪常见的 Hook 类型 2. BPF 原始跟踪点 rawtracepoint 2.1 跟踪性能优化提升 20% 2.2 rawtracepoint 跟踪事件查看及数量统计 2.3 传递参数变化 3. BPF 程序中使用 rawtracepoint 样例 3.1 libbpf 库 (基于 CO-RE) 3.2 bpftrace 样例代码 参考 1. eBPF Trace 跟踪常见的 Hook 类型 通过……

阅读全文

BPF 管理器 bpfman 简介

本文地址:https://www.ebpf.top/post/bpfman_fedora_40 1. 背景 2. bpfman 介绍 3. 单机部署流程 4. Kubernetes 集群部署流程 5. 总结 附录:bpfman 单机验证 开发环境搭建 下载代码和编译 bpfman 测试程序管理功能 1. 背景 Fedora 40 提案建议将 bpfman 作为默认的程序管理器 ,开源项目 bpfman 可以实现对 eBPF……

阅读全文