mirror of
https://github.com/eunomia-bpf/bpf-developer-tutorial.git
synced 2026-02-03 02:04:30 +08:00
reorder README
This commit is contained in:
@@ -4,6 +4,10 @@ eBPF (Extended Berkeley Packet Filter) 是 Linux 内核上的一个强大的网
|
||||
|
||||
本文是 eBPF 入门开发实践教程的第七篇,主要介绍如何捕获 Linux 内核中进程执行的事件,并且通过 perf event array 向用户态命令行打印输出,不需要再通过查看 /sys/kernel/debug/tracing/trace_pipe 文件来查看 eBPF 程序的输出。通过 perf event array 向用户态发送信息之后,可以进行复杂的数据处理和分析。
|
||||
|
||||
## perf buffer
|
||||
|
||||
eBPF 提供了两个环形缓冲区,可以用来将信息从 eBPF 程序传输到用户区控制器。第一个是perf环形缓冲区,,它至少从内核v4.15开始就存在了。第二个是后来引入的 BPF 环形缓冲区。本文只考虑perf环形缓冲区。
|
||||
|
||||
## execsnoop
|
||||
|
||||
通过 perf event array 向用户态命令行打印输出,需要编写一个头文件,一个 C 源文件。示例代码如下:
|
||||
|
||||
28
README.md
28
README.md
@@ -10,20 +10,6 @@
|
||||
|
||||
Gitee 镜像: <https://gitee.com/yunwei37/bpf-developer-tutorial>
|
||||
|
||||
## 让 chatGPT 来帮助我们
|
||||
|
||||
本教程借助 chatGPT 来学习编写 eBPF 程序,同时我们尝试教会 chatGPT 编写 eBPF 程序,大概步骤如下:
|
||||
|
||||
1. 告诉它基本的 eBPF 编程相关的常识
|
||||
2. 告诉它一些案例:hello world,eBPF 程序的基本结构,如何使用 eBPF 程序进行追踪,并且让它开始编写教程
|
||||
3. 手动调整教程,并纠正代码和文档中的错误
|
||||
4. 把修改后的代码再喂给 chatGPT,让它继续学习
|
||||
5. 尝试让 chatGPT 自动生成 eBPF 程序和对应的教程文档!例如
|
||||
|
||||

|
||||
|
||||
完整的对话记录可以在这里找到: [chatGPT.md](chatGPT.md)
|
||||
|
||||
## 目录
|
||||
|
||||
- [lesson 0-introduce](0-introduce/README.md) 介绍 eBPF 的基本概念和常见的开发工具
|
||||
@@ -81,3 +67,17 @@ eunomia-bpf 由一个编译工具链和一个运行时库组成, 对比传统的
|
||||
|
||||
> - eunomia-bpf 项目 Github 地址: <https://github.com/eunomia-bpf/eunomia-bpf>
|
||||
> - gitee 镜像: <https://gitee.com/anolis/eunomia>
|
||||
|
||||
## 让 chatGPT 来帮助我们
|
||||
|
||||
本教程借助 chatGPT 来学习编写 eBPF 程序,同时我们尝试教会 chatGPT 编写 eBPF 程序,大概步骤如下:
|
||||
|
||||
1. 告诉它基本的 eBPF 编程相关的常识
|
||||
2. 告诉它一些案例:hello world,eBPF 程序的基本结构,如何使用 eBPF 程序进行追踪,并且让它开始编写教程
|
||||
3. 手动调整教程,并纠正代码和文档中的错误
|
||||
4. 把修改后的代码再喂给 chatGPT,让它继续学习
|
||||
5. 尝试让 chatGPT 自动生成 eBPF 程序和对应的教程文档!例如
|
||||
|
||||

|
||||
|
||||
完整的对话记录可以在这里找到: [chatGPT.md](chatGPT.md)
|
||||
|
||||
Reference in New Issue
Block a user