diff --git a/38-btf-uprobe/index.html b/38-btf-uprobe/index.html index e44102b..f1e2559 100644 --- a/38-btf-uprobe/index.html +++ b/38-btf-uprobe/index.html @@ -178,7 +178,7 @@

eBPF 中的 “co-re” 代表“一次编译、到处运行”。这是其关键特征之一,用于解决 eBPF 程序在不同内核版本间兼容性的主要挑战。eBPF 的 CO-RE 功能可以实现在不同的内核版本上运行同一 eBPF 程序,而无需重新编译。

利用 eBPF 的 Uprobe 功能,可以追踪用户空间应用程序并访问其内部数据结构。然而,用户空间应用程序的 CO-RE 实践目前尚不完善。本文将介绍一种新方法,利用 CO-RE 为用户空间应用程序确保 eBPF 程序在不同应用版本间的兼容性,从而避免了多次编译的需求。例如,在从加密流量中捕获 SSL/TLS 明文数据时,你或许不需要为每个版本的 OpenSSL 维护一个单独的 eBPF 程序。

为了在用户空间应用程序中实现eBPF的“一次编译、到处运行”(Co-RE)特性,我们需要利用BPF类型格式(BTF)来克服传统eBPF程序的一些限制。这种方法的关键在于为用户空间程序提供与内核类似的类型信息和兼容性支持,从而使得eBPF程序能够更灵活地应对不同版本的用户空间应用和库。

-

本文是eBPF开发者教程的一部分,详细内容可访问这里。源代码在GitHub库中可用。

+

本文是eBPF开发者教程的一部分,详细内容可访问https://eunomia.dev/tutorials/。本文完整的代码请查看 https://github.com/eunomia-bpf/bpf-developer-tutorial/tree/main/src/38-btf-uprobe

为什么我们需要CO-RE?