高温预警 今晚8点 eBPF工作原理浅析 边听边练

语言: CN / TW / HK

讲师介绍

狄卫华,资深云原生架构师,《 Linux 内核观测技术 BPF 》译者之一, eBPF 技术的爱好者和布道者,国内网站 ebpf.top 和公众号 [ 深入浅出 BPF] 的维护者。平时喜欢研究底层技术,乐于将自己的学习心得与大家分享。

直播内容

简要描述        

如今基于 eBPF 技术的工具越来越多,我们的使用也越来越便利,但使用久了,你是否有想法了解工具底层的运行原理或者有自己编写 eBPF 工具的想法,却发现系统了解原理面临着资料零散,无法一览全貌的困难?本次分享就尝试从一个最基本的 Hello World eBPF 程序开始,带你一起了解 eBPF 程序从编写、编译、加载、验证和运行整个流程背后协作的原理,希望能够让希望更加深入学习 eBPF 的同学能够知其然之其所以然,相信这次分享你能够了解到 eBPF 一些独有特色,而且也会有一种原来是如此的感觉。

本次分享的代码如下,大家可以提前思考一下,这段简单代码到底涵盖了哪些信息量,最终是如何在内核中运行起来的:

```
#include <linux/bpf.h>
#define SEC(NAME) __attribute__((section(NAME), used))


static int (*bpf_trace_printk)(const char *fmt, int fmt_size,
...) = (void *)BPF_FUNC_trace_printk;


SEC("tracepoint/syscalls/sys_enter_execve")
int bpf_prog(void *ctx) {
char msg[] = "Hello, BPF World!";
bpf_trace_printk(msg, sizeof(msg));
return 0;
}


char _license[] SEC("license") = "GPL";
```

eBPF 初学者环境体验

初学者指引        

为了满足同学们听讲座时 上手 实操的渴望, 这次讲座我们提前准备好了ebpf的 远程 运行环境。哪怕是从未使用过ebpf的同学也可以通过这个环境直接上手,来运行讲师提供的代码。

我们不仅希望通过这个环境来帮助那些对ebpf已有了解的同学和讲师在直播中得到更好的互动,更希望所有对ebpf感兴趣的新同学能够不用被环境搭建的问题困扰,能够迅速上手ebpf,加入到ebpf学习者这个大家庭中来。

以下是环境的使用引导:

登陆远程环境

打开以下任一网址,远程登录初学者环境 tryebpf

http://43.138.84.71/c1/
http://43.138.84.71/c2/
http://43.138.84.71/c3/
密码:11223300

打开终端

编辑并执行

在testcode目录中创建你的代码文件,使用VSCode网页版在线编辑你的代码,并通过终端运行,即可看到你的结果~

希望大家能在这个环境中尽力折腾,多多进益。

关于直播

本次直播我们将在腾讯会议、B站、CSDN、微信视频号等多个平台同步进行直播,大家可以选择自己合适的平台来观看。

讲座时间

2022年6月18日(星期六)晚上20:00。

腾讯会议直播地址

http://meeting.tencent.com/dm/IeOyHAlQzR6B

哔哩哔哩直播地址

http://live.bilibili.com/22809483

CSDN直播地址

http://t.csdn.cn/wkqR3