|
1 | | -# eBPF Tutorial / eBPF 入门教程 |
| 1 | +# eBPF Tutorial |
2 | 2 |
|
3 | 3 | <div align="center"> |
4 | 4 |
|
|
7 | 7 |
|
8 | 8 | **A comprehensive guide to learning eBPF from scratch** |
9 | 9 |
|
10 | | -[English](#english) | [中文](#中文) |
11 | | - |
12 | 10 | </div> |
13 | 11 |
|
14 | 12 | --- |
15 | 13 |
|
16 | | -## English |
17 | | - |
18 | 14 | ### 📚 About This Tutorial |
19 | 15 |
|
20 | 16 | This is a hands-on eBPF tutorial designed to help developers master eBPF programming from basic concepts to advanced techniques. Each lesson includes detailed explanations, complete code examples, and practical exercises. |
@@ -140,68 +136,8 @@ This tutorial is open source and available for educational purposes. |
140 | 136 |
|
141 | 137 | --- |
142 | 138 |
|
143 | | -## 中文 |
144 | | - |
145 | | -### 📚 关于本教程 |
146 | | - |
147 | | -这是一个从零开始学习 eBPF 的实战教程,旨在帮助开发者从基础概念到高级技术全面掌握 eBPF 编程。每节课都包含详细的讲解、完整的代码示例和实践练习。 |
148 | | - |
149 | | -### 📖 教程目录 |
150 | | - |
151 | | -| 课程 | 主题 | 状态 | 文档 | |
152 | | -| ---- | ---- | ---- | ---- | |
153 | | -| 1 | Hello World 入门 | ✅ 已完成 | [lesson_1_helloworld.md](lesson_1_helloworld.md) | |
154 | | -| 2 | Kprobe 内核探针 | ✅ 已完成 | [lesson_2_kprobe.md](lesson_2_kprobe.md) | |
155 | | -| 3 | Uprobe 用户态探针 | ✅ 已完成 | [lesson_3_uprobe.md](lesson_3_uprobe.md) | |
156 | | -| 4 | 用户态 Map 操作 | ✅ 已完成 | [lesson_4_user_map.md](lesson_4_user_map.md) | |
157 | | -| 5 | 内核态与用户态 Map 通信 | ✅ 已完成 | [lesson_5_kernel_user_map.md](lesson_5_kernel_user_map.md) | |
158 | | -| 6 | eBPF Go 语言开发 | ✅ 已完成 | [lesson_6_golang_develop.md](lesson_6_golang_develop.md) | |
159 | | -| 7 | Ring Buffer 与 Perf Buffer | ✅ 已完成 | [lesson_7_ringbuffer_perfbuffer.md](lesson_7_ringbuffer_perfbuffer.md) | |
160 | | -| 8 | Tracepoint 静态跟踪点 | ✅ 已完成 | [lesson_8_tracepoint.md](lesson_8_tracepoint.md) | |
161 | | -| 9 | Raw Tracepoint 原始跟踪点 | ✅ 已完成 | [lesson_9_raw_tracepoint.md](lesson_9_raw_tracepoint.md) | |
162 | | -| 10 | BTF 与 CO-RE 技术 | ✅ 已完成 | [lesson_10_btf.md](lesson_10_btf.md) | |
163 | | -| 11 | TC Ingress 入站流量控制 | ✅ 已完成 | [lesson_11_tc_ingress.md](lesson_11_tc_ingress.md) | |
164 | | -| 12 | TC Egress 出站流量控制 | ✅ 已完成 | [lesson_12_tc_egress.md](lesson_12_tc_egress.md) | |
165 | | - |
166 | | -### 🎯 学习内容 |
167 | | - |
168 | | -- **eBPF 基础**: 理解 eBPF 架构和核心概念 |
169 | | -- **挂载机制**: Kprobe、Uprobe、Tracepoint 和 Raw Tracepoint |
170 | | -- **数据结构**: Maps、Ring Buffer 和 Perf Buffer |
171 | | -- **多语言开发**: C 和 Go 语言的 eBPF 开发 |
172 | | -- **高级主题**: BTF、CO-RE 和跨内核版本兼容性 |
173 | | - |
174 | | -### 🚀 开始学习 |
175 | | - |
176 | | -1. **前置要求** |
177 | | - - Linux 内核 >= 5.4(推荐 5.8+ 以支持 Ring Buffer) |
178 | | - - C 语言编程基础 |
179 | | - - Linux 系统编程基础知识 |
180 | | - |
181 | | -2. **开发环境** |
182 | | - - 安装 libbpf、bpftool 等相关工具 |
183 | | - - Go 语言开发需要 Go 1.18+ |
184 | | - |
185 | | -3. **开始学习** |
186 | | - - 从 [第一课:Hello World](lesson_1_helloworld.md) 开始 |
187 | | - - 按顺序学习效果最佳 |
188 | | - |
189 | | -### 📝 贡献 |
190 | | - |
191 | | -欢迎贡献!您可以: |
192 | | -- 报告问题或 bug |
193 | | -- 提出改进建议 |
194 | | -- 提交 Pull Request |
195 | | -- 分享您的学习经验 |
196 | | - |
197 | | -### 📄 许可证 |
198 | | - |
199 | | -本教程开源,可用于学习目的。 |
200 | | - |
201 | | ---- |
202 | | - |
203 | 139 | <div align="center"> |
204 | 140 |
|
205 | | -**Keep Learning, Keep Growing! / 持续学习,不断进步!** |
| 141 | +**Keep Learning, Keep Growing!** |
206 | 142 |
|
207 | 143 | </div> |
0 commit comments