From e9da7bfe6cab18e3ff87b19537c2a10c1e3e497c Mon Sep 17 00:00:00 2001 From: yunwei37 <1067852565@qq.com> Date: Sat, 28 Jan 2023 19:44:45 +0800 Subject: [PATCH] reorder README --- 7-execsnoop/README.md | 4 ++++ README.md | 28 ++++++++++++++-------------- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/7-execsnoop/README.md b/7-execsnoop/README.md index d5a8e6f..e38b02c 100644 --- a/7-execsnoop/README.md +++ b/7-execsnoop/README.md @@ -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 源文件。示例代码如下: diff --git a/README.md b/README.md index 3224de2..3eae59d 100644 --- a/README.md +++ b/README.md @@ -10,20 +10,6 @@ Gitee 镜像: -## 让 chatGPT 来帮助我们 - -本教程借助 chatGPT 来学习编写 eBPF 程序,同时我们尝试教会 chatGPT 编写 eBPF 程序,大概步骤如下: - -1. 告诉它基本的 eBPF 编程相关的常识 -2. 告诉它一些案例:hello world,eBPF 程序的基本结构,如何使用 eBPF 程序进行追踪,并且让它开始编写教程 -3. 手动调整教程,并纠正代码和文档中的错误 -4. 把修改后的代码再喂给 chatGPT,让它继续学习 -5. 尝试让 chatGPT 自动生成 eBPF 程序和对应的教程文档!例如 - -![ebpf-chatgpt-signal](imgs/ebpf-chatgpt-signal.png) - -完整的对话记录可以在这里找到: [chatGPT.md](chatGPT.md) - ## 目录 - [lesson 0-introduce](0-introduce/README.md) 介绍 eBPF 的基本概念和常见的开发工具 @@ -81,3 +67,17 @@ eunomia-bpf 由一个编译工具链和一个运行时库组成, 对比传统的 > - eunomia-bpf 项目 Github 地址: > - gitee 镜像: + +## 让 chatGPT 来帮助我们 + +本教程借助 chatGPT 来学习编写 eBPF 程序,同时我们尝试教会 chatGPT 编写 eBPF 程序,大概步骤如下: + +1. 告诉它基本的 eBPF 编程相关的常识 +2. 告诉它一些案例:hello world,eBPF 程序的基本结构,如何使用 eBPF 程序进行追踪,并且让它开始编写教程 +3. 手动调整教程,并纠正代码和文档中的错误 +4. 把修改后的代码再喂给 chatGPT,让它继续学习 +5. 尝试让 chatGPT 自动生成 eBPF 程序和对应的教程文档!例如 + +![ebpf-chatgpt-signal](imgs/ebpf-chatgpt-signal.png) + +完整的对话记录可以在这里找到: [chatGPT.md](chatGPT.md)