eBPF 来源于 Linux 内核子系统 Berkeley Packet Filter (BPF),最早用于提升网络包过滤的性能。后来,随着 BPF 技术的逐步完善,它的应用范围从内核空间扩展到了用户空间,并逐步在网络、可观测以及安全等方面获得了大量的应用。
技巧一:虽然对内核源码的理解很重要,但切记,不要陷入内核的实现细节中。
eBPF 的学习和使用绕不开对内核源码的理解和应用,但并不是说学习 eBPF 就一定要掌握所有的内核源码。实际上,如果你一开始就陷入了内核的具体实现细节中,很可能会因为巨大的困难而产生退意。
学习 eBPF 的目的并不是掌握内核,而是利用 eBPF 这个强大的武器去解决网络、观测、排错以及安全等实际的问题。因而,对初学者来说,掌握 eBPF 的基本原理以及编程接口才是学习的重点。最后再强调一遍,学习时要分清主次,不要陷入内核的实现细节中。
技巧二:边学习边实践,并大胆借鉴开源项目。
eBPF 的基本原理当然重要,但只懂原理而不动手实战,并不能真正掌握 eBPF。只有用 eBPF 解决了实际的问题,eBPF 才真正算是你的武器。
得益于开源软件,无论在 Linux 内核中还是在 GitHub 等开源网站上,你都可以找到大量基于 eBPF 的开源案例。在动手实践 eBPF 时,你可以大胆借鉴它们的思路,学习开源社区中解决同类问题的办法。
技巧三:多交流、多思考,并参与开源社区讨论。
作为一个实践性很强,并且在飞速发展的技术,eBPF 的功能特性还在快速迭代中。同时,由于新技术总有一个成熟的过程,在开始接触和应用 eBPF 时,我们也需要留意它在不同内核版本中的限制。
在学习 eBPF 的过程中,做到多交流、多思考。你可以随时在评论区给我留言,写下自己的疑问、思考和总结,和我还有其他的学习者一起讨论切磋。看到优秀的开源项目时,你也可以去参与贡献,和开源社区的大拿们共同完善 eBPF 生态。
在学习 eBPF 技术时,你也不需要掌握所有相关技术的细节,只要重点把握 eBPF 基本原理和编程接口,再配合大量的工作实践,你就可以完全掌握 eBPF 技术。
此文章为3月Day4 学习笔记,内容来源于极客时间《eBPF 核心技术与实战》,推荐该课程。