先弄清楚:这门课解决什么工作场景
后端开发和运维排查线上问题时,常遇到一个痛点:服务突然变慢或丢包,但日志没报错,常规监控抓不到根因。这门课针对的就是这类需要深入内核态观测的场景。它聚焦在 eBPF 的 tracepoint 能力上,带你用 Go 语言编写工具,去挂载内核追踪点,把网络连接、进程切换、文件读写等底层事件抓出来看。课程没有泛泛讲理论,而是围绕具体问题展开:怎么同时抓到 TCP 连接的请求和响应、怎么监控进程任务调度、怎么拿到程序写入磁盘的真实内容。如果你平时做基础架构、云原生运维或后端性能调优,这套内容能直接补上你对系统底层可观测性的认知短板。
门槛与基础:适合什么人学
这套资料不适合零基础转行的人。它默认你已经能写基本的 Go 代码,对 Linux 系统调用、网络协议和进程模型有基础认知。如果以前没接触过 eBPF,需要知道它是运行在内核里的虚拟机,能让你在不修改内核源码、不加补丁的前提下,安全地动态追踪系统行为。课程前半部分用 Go 配合相关开发库写代码,要求你能看懂结构体和指针操作;后半部分转向 bpftrace 工具,这部分门槛稍低,适合用来做快速验证。建议在看课程前,先确认自己的开发环境是 Linux 发行版,且内核版本支持对应的追踪机制,否则代码跑不起来。
资料怎么配合练习,学完能做什么
拿到资料后,建议先跳过第一讲的开场白,直接从追踪 TCP 连接和状态变化的几讲看起。这几节是核心,跟着把代码敲一遍,理解程序是如何挂载到内核追踪点上的。等 Go 代码部分跑通,再去看 bpftrace 的几节补充课。bpftrace 是一种脚本语言,课程从安装、写脚本到条件判断和全局变量,讲得比较细。你可以把 bpftrace 当作“随手排查工具”,把 Go 代码当作“需要固化下来的监控工具”。配合练习时,不要只看视频,必须自己在终端里跑。比如讲到监听程序 IO 写事件,你就自己起一个会写文件的进程,用课程给的代码去抓它的写入内容,抓到了才算学会。学完后,你应当能独立写出一个 Go 程序,用来监控本机 TCP 连接状态异常,或者用 bpftrace 脚本快速统计某个进程的执行次数和内存分配情况。
eBPF我们专门开设了专栏。之前几篇我们讲解了基本的网络知识如xdp、tc和arp等。本课程我们开始对单知识点做相对全面的讲解,先从tracepoint开始。我
课程目录
* 第1讲:开张课、基本课程内容、监听网络连接请求
* 第2讲:同时追踪网络连接请求和响应
* 第3讲:监听tcp状态变化的基本代码写法
* 第4讲:监听程序IO写事件、以及如何获取写入的内容
* 第5讲:如何监听进程任务切换
* 第6讲:补充课: bpftrace 工具的基本安装和使用基操入门(1)
* 第7讲:bpftrace学习(2) 构建bt脚本文件和初步运行
* 第8讲:bpftrace学习(3) if else条件语句和获取程序参数
* 第9讲:bpftrace学习(4) 全局变量的使用、统计程序执行次数
* 第10讲:bpftrace学习(5) 获取进程执行名和参数
* 第11讲:bpftrace (6) 内存分配之kmalloc入门、获取分配内存






