02 | 先利其器:如何高效学习eBPF?
倪朋飞
你好,我是倪朋飞。
上一讲,我们一起了解了 eBPF 的发展历程、基本原理和主要应用场景。eBPF 来源于 Linux 内核子系统 Berkeley Packet Filter (BPF),最早用于提升网络包过滤的性能。后来,随着 BPF 技术的逐步完善,它的应用范围从内核空间扩展到了用户空间,并逐步在网络、可观测以及安全等方面获得了大量的应用。
了解过这些的你,很可能遇到了我曾经有过的疑惑:作为 Linux 内核的一部分,eBPF 这么底层的技术,到底该如何学习才能更高效地掌握它?
这是初学者经常遇到的问题:在学习 eBPF 的知识和原理时,找不到正确的方法,只是照着网络上并不全面的片段文章操作,或者直接去啃内核的源码,这样往往事倍功半。甚至,还可能被海量的信息淹没,失去了持续学习的信心,“从入门到放弃” 。那么今天,我们就一起来看看,怎么才能高效且深入地学习 eBPF。
学习这门课需要什么基础?
首先,在学习 eBPF 之前你要明白,eBPF 是 Linux 的一部分,它所有的应用都需要在 Linux 系统中完成(虽然 Windows 也已经支持了 eBPF,但暂时不够成熟)。所以,我希望你至少熟练掌握一种 Linux 系统(比如 Ubuntu、RHEL)的基本使用方法,包括:
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文介绍了高效学习eBPF技术的方法和技巧。作者首先强调了学习eBPF需要具备一定的Linux系统基础和编程基础,然后重点强调了理解eBPF的基本原理、掌握eBPF的编程接口以及通过实践将eBPF应用到实际工作场景中。此外,作者还分享了学习技巧,包括不陷入内核实现细节、边学习边实践并借鉴开源项目、多交流多思考并参与开源社区讨论等。整体而言,本文为读者提供了学习eBPF技术的基础知识和学习技巧,帮助读者更高效地掌握这一技术。文章内容涵盖了eBPF技术的学习前提、基本原理、编程接口以及学习技巧,为读者提供了全面的学习指导。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《eBPF 核心技术与实战》,新⼈⾸单¥59
《eBPF 核心技术与实战》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(5)
- 最新
- 精选
- 莫名曾基于 BPF 做过一个容器平台的链路追踪系统,分解出单个请求在服务端经过的节点、网络设备、耗时等信息,便于快速定位网络抖动时主要延迟的具体发生点。 遇到最多的是内核版本差异引起的各类编译问题,要么跑不起来,要么运行结果不符合预期。尤其 4.9 内核问题很多,5.x 版本的内核自己在测试环境用一用还行,线上的内核版本相对会保守,几年前 3.10 的占比很高。不过好消息是,新机器的内核一般都直接使用 4.x,甚至 5.x。BPF 落地生产环境的环境阻力小了很多。 如果公司的环境暂时还不能应用 BPF 技术,不妨碍先进行知识储备,自己先玩起来,等到真正被需要的时候就可以发挥作用了。
作者回复: 很赞的分享,谢谢!欢迎分享更多的实践经验。
2022-01-191136 - ermaot从倪老师的linux性能篇,了解到了ebpf,就买了《bpf之巅》自学了一阵,现在居然倪老师也出了ebpf的课程,果断入手,希望认识能更上一个台阶
作者回复: 嗯嗯,这本书不错,我们一起加油!
2022-01-19512 - ranger正在接触混沌工程和其中一款开源产品chaos-mesh,一个基于bpf实现的内核故障注入的模块bpfki
作者回复: 👍 欢迎在留言区分享你的学习和实践经验。
2022-01-307 - includestdio.h第一次接触bpf是通过老师的 linux性能优化专栏,然后看到老师有推荐性能之巅这本书,果断入手并断断续续看完了,目前实际工作中还没有接触过ebpf,因此也无从入手,希望通过专栏能收获更多
作者回复: 感谢对专栏的支持,其实我们性能优化专栏里面已经用了很多的ebpf工具,这门课之后我们就可以自己按需来构建自己的性能优化工具了
2022-01-1922 - 秋名山犬神想知道下k8s中的哪些功能是老师贡献的
作者回复: k8s开源的,所有贡献Github上面都可以搜到😊
2022-01-2421
收起评论