zl程序教程

您现在的位置是:首页 >  其他

当前栏目

三天高效入门 eBPF的开发

2023-03-07 09:09:59 时间

入门(5-7h)

  • Google 或者其他搜索引擎查找:eBPF
  • 询问 ChatGPT 之类的东西:eBPF 是什么?

推荐:

回答三个问题:

  1. 了解 eBPF 是什么东西?为啥要有这个玩意,不能用内核模块?
  2. 它有什么功能?能在 Linux 内核里面完成哪些事情?有哪些 eBPF 程序的类型和 helper(不需要知道全部,但是需要知道去哪里找)?
  3. 能拿来做什么?比如说在哪些场景中进行运用?网络、安全、可观测性?

了解如何开发 eBPF 程序(10-15h)

了解并尝试一下 eBPF 开发框架:

其他开发框架:Go 语言或者 Rust 语言,请自行搜索并且尝试(0-2h)

有任何问题或者想了解的东西,不管是不是和本项目相关,都可以在本项目的 discussions 里面开始讨论。

回答一些问题,并且进行一些尝试(2-5h):

  1. 如何开发一个最简单的 eBPF 程序?
  2. 如何用 eBPF 追踪一个内核功能或函数?有很多种方法,举出对应的代码;
  3. 有哪些方案能通过用户态和内核态通信?如何从用户态向内核态传送信息?如何从内核态向用户态传递信息?举出代码示例;
  4. 编写一个你自己的 eBPF 程序,实现一个功能;
  5. eBPF 程序的整个生命周期里面,分别在用户态和内核态做了哪些事情?