LPC 2026 eBPF 议程前瞻:Rust 要进 verifier,BPF 被推上 CVE 空窗期前线
每年秋天,内核社区最核心的开发者都会聚到一起,把接下来一两年要落地的东西摊开来吵一遍。今年的 Linux Plumbers Conference 定在 10 月 5 日到 7 日,捷克布拉格。
每年秋天,内核社区最核心的开发者都会聚到一起,把接下来一两年要落地的东西摊开来吵一遍。今年的 Linux Plumbers Conference 定在 10 月 5 日到 7 日,捷克布拉格。
eBPF 让我们不改内核、不装模块就能往内核里放代码,但决定谁能放的,一直只是"你是不是 root",而不是"代码是谁构建的、有没有被改过"。内核模块十多年前就有签名机制,eBPF 一直缺这一环。
写一个能在本机加载的 eBPF 程序并不难;难的是让它在多发行版、多架构、多内核版本上长期可用。2026 年 6 月,开发者 kxxt 以开源工具 tracexec 的 eBPF 后端为样本,系统整理了维护负担与工程对策。下文按问题域、案例 …
BPF 程序可以用来扩展 Linux 内核的诸多方面,但有一个硬约束:程序必须在开始执行时的同一上下文中一口气跑完。Kumar Kartikeya Dwivedi 想打破这条规则,让 BPF 程序可以写成协程(coroutine)。 …
Marchesi 展示了一张功能对照表,左边 LLVM/Clang,右边 GCC 16。扫一遍下来:基础特性部分两者已基本对齐;但 production 级别的高级特性——内存序感知原子操作(memory ordering aware …
编程智能体(Coding Agents)的工作模式高度依赖短反馈回路—写代码、看错误、改代码。回路越短,智能体越高效。这也是它们擅长大规模重构等繁琐工作的原因:错误信息即时、清晰、可操作。BPF 的现状恰恰相反。要充分测试一段 BPF 代 …
uprobes 让我们能够将 eBPF 程序附着到用户空间二进制文件中的函数。这种方式为 Go 等语言编写的现代应用程序提供了强大的可观测性能力。特别是,我们将探讨如何通过将 uprobes 附加到标准库函数( …
虽然与 XDP 或 Tracepoints 等其他 eBPF 程序类型相比,Kprobes 和 Kretprobes 通常具有更高的开销,但它们的多功能性使其变得不可或缺。它们几乎可以附加到任何内核函数,从而能够深入了解系统行为 — 这也是 …
我们使用 Rust + eBPF 构建了一个系统调用跟踪器。这里,我们将解析使其工作的核心组件以及为 eBPF 工具提供核心动力的深层机制。理解这些核心组件将帮助你构建更复杂的可观测性、安全性和网络工具。
在本文中,我们将探讨如何使用 eBPF 和 Rust 构建高性能的 Linux 追踪工具。无论你是刚刚开始接触 eBPF,还是对如何将 eBPF 与现代 Rust 工具集成感到好奇,你都可以在本文有所收获。本文将带你了解 eBPF 基础知 …
Google 开源大模型 gemma,支持 2b 和 7b 参数,本文将通过一行命令带你快速搭建本地运行环境
bpfman 可以实现对 eBPF 运行状态的深入了解,从而更轻松地管理 eBPF 程序,这包括加载、卸载、运行状态查看等。该提案还需要 Fedora 工程和指导委员会 (FESCo) 的批准,如果顺利很可能会在 4 …
本文介绍了一些使用 libbpf 开发 BPF 程序的高阶技巧
Linux 内核 6.1 版本中有一个非常引人注意的变化:引入了对 Rust 编程语言的支持。Rust 是一种系统编程语言,Rust 通过提供非常强大的编译时保证和对内存生命周期的明确控制。在内核开发中引入 Rust 语言,将会为内核开发的 …
Linux 内核中的调试符号包含源代码级别的信息,如函数名称、函数调用约定、以及源代码行号到指令的映射。这些信息在调试或剖析内核的时候非常有用。在本文中,我将展示如何在 Ubuntu 上获得任何内核的调试符号。
BumbleBee 可以让我们专注于编写 eBPF 代码,其负责自动生成与 eBPF 程序相关的用户空间相关的代码(对应于用户空间的功能),自动将 eBPF 程序的数据作为日志、指标和直方图进行展示。
本文主要对 eBPF 程序跟踪 Go 程序的函数调用、Go 函数调用参数等方面进行介绍, 而且还基于 bpf_probe_write_user 函数对跟踪 Go 语言函数进行修改的样例。本文涉及的完整环境搭建,请参环境准备篇。
本文基于 Ubuntu 21.04 版本使用 Vagrnt 和 VirtualBox 打造了 BPF 编译环境,同时提供了命令行升级内核和手工编译内核升级的方式
eBPF 的生态欣欣向荣,无论是 eBPF 本身及其各种应用(包括 XDP) 方面都有大量的学习资源。但当涉及到选择库和工具来与 eBPF 进行交互时,会让人有所困惑。在选择时,你必须在基于 Python 的 BCC 框架、基于 C …
本文通过对于 Go 语言绑定 eBPF 程序的库 cilium/ebpf,iovisor/gobpf 和 dropbox/goebpf 进行了全面对比,对于 go 开发者用户提供了参考。同时基于 cilium/ebpf 库给出了样例代码的测 …
将基于 BCC 的 BPF 应用程序转换为 libbpf 和 [BPF CO-RE](https://nakryiko.com/posts/bpf-portability-and-co-re/) 的实践指南。
BTF 和 CO-RE 这两项新技术为 BPF 成为价值十亿美元的产业铺平了道路。目前,有许多 BPF(eBPF)初创公司正在构建网络,安全性和性能产品(并且更多未浮出水面的),但是要求客户安装 LLVM,Clang 和内核头文件依赖(可能 …
本文介绍了在 Ubuntu 20.04 机器上使用 qemu + gdb 进行内核调试的整体流程; 最终使用 Eclipse-CDT 进行图形化设置的主要步骤
1. 内核版本选择 补丁 Prepatch: Prepatch 或 “RC” 内核是主线内核的预发布版本,主要针对其他内核开发者和 Linux 爱好者。它们必须从源码中编译,并且通常包含新的功能,这些功能必须在稳定发布之前进行测 …