《BPF Performance Tools —— 洞悉Linux系统和应用性能》学习笔记 —— 第一章 介绍(1)

本章介绍了一些关键术语,概述了相关技术,并演示了一些BPF性能工具。这些技术将在以下章节中进行更详细的阐明。

1.1 BPF和eBPF是什么?

BPF是Berkeley Packet Filter的缩写,一种于1992年首次开发的鲜为人知、晦涩难懂的技术,其引入了性能或数据包捕获工具。2013年,阿列克谢·斯塔罗沃伊托夫(Alexei Starovoitov)对BPF进行了重大改写,由Alexei和Daniel Borkmann进一步开发,并于2014年包含在Linux内核中。这将BPF变成了一个通用执行引擎,可以用于各种事情, 包括先进(高级)性能分析工具的创建。

BPF很难准确解释,因为它可以做很多事情。BPF提供了一种在各种内核和应用程序事件上运行迷你程序的方法。如果你熟悉JavaScript,你能够看到一些相似之处:JavaScripts允许一个网站在浏览器事件(如鼠标点击)上运行迷你程序,从而启用各种基于web的应用程序。BPF 允许(Linux)内核在系统和应用事件上运行迷你程序(如磁盘I/O),从而使能新的系统技术。BPF使得内核完全可编程,允许用户(包括非内核开发人员)自定义及控制他们的系统,以解决现实世界中的问题。

BPF是一种灵活有效的技术,由指令集存储对象辅助函数组成。由于其虚拟指令集规范,BPF可以被视为虚拟机。这些指令由Linux内核BPF runtime执行,其包括一个解释器和一个JIT编译器,用于将BPF指令转换为本机指令以供执行。BPF指令必须首先通过一个检查安全性的验证器,以确保编写不合逻辑的程序不会崩溃或损坏内核(然而,它并不能阻止最终用户编写那些可以执行的但没有意义的不合逻辑的程序)。BPF的组成部分在第2章详细阐明。

到目前为止,BPF的三个用途是联网、可观察性和安全性。本书聚焦于可观察性(追踪)。

扩展BPF通常缩写为eBPF,但官方缩写仍然是BPF,没有“e”,因此在本书中,使用BPF来指代扩展的BPF。内核只包含一个执行引擎,BPF(扩展BPF),它同时运行扩展BPF和“经典”BPF。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝天居士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值