前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【性能工程 - eBPF 技术】小白也能学会的 eBPF 技术——初步了解 eBPF 技术(一)

【性能工程 - eBPF 技术】小白也能学会的 eBPF 技术——初步了解 eBPF 技术(一)

作者头像
Lokinli
发布2024-07-13 08:54:53
1370
发布2024-07-13 08:54:53
举报
文章被收录于专栏:以终为始

eBPF,即扩展的伯克利包过滤器(Extended Berkeley Packet Filter),是从早期的BPF技术发展而来,起初用于高效地过滤网络数据包。随着时间的推移,eBPF已经成为一个强大的、灵活的内核技术,不仅限于网络数据包处理,还可以用于跟踪、安全、网络策略实施、性能分析等多个领域。

知道名字和缩写

起源与发展
  • BPF起源:BPF首次出现在1992年的BSD操作系统中,由Steven McCanne和Van Jacobson设计。它作为一种高效的用户级数据包捕获机制,利用内核中的虚拟机执行用户定义的过滤程序,避免了不必要的用户空间到内核空间的数据复制。
  • eBPF的进化:随着时间的推移,BPF经历了多次改进和扩展,形成了今天的eBPF。eBPF拥有更丰富的指令集、更大的寄存器集合,以及更强的安全性和灵活性。它可以编写更为复杂的程序,并且能够在内核中执行各种任务,远远超出了最初的包过滤功能。

知道最初的起源,来源于 BPF,用于处理网络包。

核心特点
  1. 字节码执行:用户编写eBPF程序,然后使用LLVM/CLang等编译器将其编译成字节码。这个字节码随后被加载到内核中。
  2. 安全验证内核在执行eBPF字节码前会进行严格的验证,确保程序没有死循环、不会消耗过多资源或影响内核稳定性,这是通过一个复杂的验证器实现的。(因为要放到内核中运行,严格的检查是很好理解的,不然就崩溃了)
  3. 动态加载与执行:通过bpf()系统调用,eBPF程序可以动态加载到内核中,并在需要时执行。JIT(即时编译)技术可进一步将字节码转换成本地机器码,以提高执行效率。
  4. 广泛的钩子函数:eBPF程序可以通过各种钩子(hook)插入到内核的多个位置,包括但不限于系统调用入口/出口、网络栈的各个层级(如XDP,即eXpress Data Path)、kprobes(内核函数探测点)和uprobes(用户空间函数探测点)等,使得它能够对系统行为进行深度监控和操控。
  5. 应用领域
    • 网络:eBPF可用于高级网络策略实施,比如使用XDP进行高性能的数据包处理。
    • 性能监控:eBPF可以帮助收集详细的性能指标,如CPU使用情况、磁盘I/O、系统调用跟踪等。
    • 安全:实现细粒度的安全策略,比如进程监控、审计、防火墙规则等。
    • 调试与诊断:提供强大的内核和用户空间程序的调试能力。
工作流程
  1. 编写与编译:开发者使用eBPF语言或LLVM前端语言编写程序,并通过LLVM编译成字节码。
  2. 加载与验证:通过bpf()系统调用将字节码加载到内核,内核验证程序的安全性。
  3. 即时编译(JIT):内核使用JIT技术将字节码编译成本地机器码,提高执行效率。
  4. 挂载与触发:根据程序的用途,将其挂载到相应的内核钩子点。当钩子点被触发时,eBPF程序自动执行。

这个工作流程就是一个简单的总结,实际上开发人员在编写 eBPF 时可以通过现在各种前端或者框架,很方便的进行使用。 eBPF技术以其高度的灵活性、安全性以及低开销的特点,正在成为现代云原生、容器化环境、以及需要高性能监控和安全控制场景下的关键技术。随着持续的发展和社区的支持,eBPF的应用前景非常广阔。

参考资料

1.超细节!十年码农讲述eBPF和XDP技术!知乎 https://zhuanlan.zhihu.com/p/558509760 2.eBPF怎么玩(一)哔哩哔哩 https://m.bilibili.com/read/cv15768069/ 3.全面介绍eBPF-概念-charlieroro-博客园 https://www.cnblogs.com/charlieroro/articles/13403672.html 4.ebpf深入理解和应用介绍-CSDN博客 https://m.blog.csdn.net/gengzhikui1992/article/details/105364645 5.01|技术概览:eBPF的发展历程及工作原理-知乎 https://zhuanlan.zhihu.com/p/458753388 6.【万字干货!eBPF的原理与入门技巧-知乎 https://zhuanlan.zhihu.com/p/529225001 7.游戏王 把卡破坏和把卡送入墓地有什么区别?芝士回答 https://page.sm.cn/blm/midpage-317/ 8.游戏王特召只能攻击表示?芝士回答 https://page.sm.cn/blm/midpage-317 9.罗克韦尔ABPF40P系列变频器-变频器产业网 http://m.ebpq.cn/mall/41722.html 10.一文看懂eBPF、eBPF的使用(超详细)哔哩哔哩 https://www.bilibili.com/read/mobile?id=16232093

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-07-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 起源与发展
  • 核心特点
  • 工作流程
  • 参考资料
相关产品与服务
应用性能监控
应用性能监控(Application Performance Management,APM)是一款应用性能管理平台,基于实时多语言应用探针全量采集技术,为您提供分布式性能分析和故障自检能力。APM 协助您在复杂的业务系统里快速定位性能问题,降低 MTTR(平均故障恢复时间),实时了解并追踪应用性能,提升用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档