eBPF的发展演进---从石器时代到成为神(五)


风晓
风晓 2024-01-04 11:04:41 51883
分类专栏: 资讯

6.走向未来
未来BPF将如何发展呢?它已经具备图灵机的雏形,拥有巨大的计算能力潜能。它目前的计算能力仍然受到约束,但是已经足够改变现有应用开发的基础,必将引发应用的蓬勃发展,会衍生出开发工具、测试方法等等的发展,使业务逻辑的开发与BPF的开发统一在一个开发模型当中,甚至引发新的开发语言出现。当在应用领域中生根后,就会继续发芽壮大,需要吸收计算能力作为养料才能抽枝散叶。BPF应用与BPF技术内涵的发展就像两面相对的镜子,相互映照,形成斑斓的德罗斯特效应图景。

随着近几年云计算、人工智能、智能设备的蓬勃发展,信息系统基础设施结构、设备类型、业务复杂度都迎来再一次的变革。

Linux系统作为现今最为广泛使用的操作系统,其自身也在发展变化。初期,沿着原有的技术路线,通过量的积累,足以应对时代的演进,这一点从代码增长就可以看出来,其背后是Linux支持的设备、驱动、特性、机制也来越多。产品构型也越来也复杂,Web服务器、并行计算、异构计算、桌面、智能终端、嵌入式系统。Linux的技术设施,需要面对不同的应用场景和问题。量的积累,可以解决一段时间的问题。但是,当这种变化积累到一定程度时,需要新的手段,才能支持上层结构的灵活度。

需要指出的是,现有的文档中,大多将BPF定位为网络和安全工具的利器。但是BPF作为一种通用的动态逻辑机制,绝不仅仅可以应用这两个地方。

6.1.通用性
BPF已经从最初网络报文分析技术,扩展到了很多应用领域,以后必然成为一种通用的内核开发技术,在定制化和功能扩展两方面推动内核发展。

目前BPF的核心组建基本轮廓已经确定,由运行上下文、帮助函数、Map、指令集、Verifier、JIT、系统调用等关键模块构成BPF的核心运行机制。

运行上下文是BPF程序运行的语境,目前除了网络语境发展比较快速之外,其他程序类型的运行上下文发展相对落后,文件系统目前甚至还没有。

对于运行上下文应该设计成什么样子,达到什么要求,有怎样的约束,还没有统一的范式,主要由各程序类型根据实际应用需要进行定义。彼此间缺乏共通性,发展比较随意,还处于比较原始的阶段。

帮助函数还不完备,各个程序类型存在差异。程序类型的定义,缺乏逻辑基础,其设计元语还需澄清。语境相关部分和通用部分划分不清楚,影响到安全机制也无法针对性设计,安全性无法验证。

Map担负的角色过于宽泛,既是通讯机制,也是存储机制,既是Local的也是Global的。是对BPF核心机制补全的过渡手段。随着,远程调用、间接调用、跳转表、全局变量等的实现,Map的作用和使用方式也将改变。

6.2.表达能力
内核已经在扩展性方面在不断改进,但是这些始终还是不能根本解决问题,引入更多编译器技术特别是动态编译技术、可信编译技术才是解决问题的根本。

目前BPF的程序的表达能力相当于弱化的C语言,这显然是不够的。实现一种和传统应用开发相同的开发体验,让程序员专注于理解业务逻辑,自由地表达,需要编译器填补通用语言与BPF自身限制之间的沟壑,需要语言层面的扩展,也需要运行时和工具链的支持。

6.3.开发工具
目前还没有在前端支持BPF的开发工具,只是实现了后端的支持,这显然还远远不够。这种情况,正说明了BPF的发展急需编译器的支持,在前端支持BPF,通过语言特性的扩展和新的开发支持库,实现BPF与通用编程语言的融合,将大大缩减包含BPF特性的应用程序的开发、测试和维护难度。对于BPF作为一项应用开发技术大力推广至关重要。

6.4.开发流程
目前,在设计阶段,需要将BPF的逻辑部分和一般编程逻辑部分分离出来,这增加了设计的开销,同时对于设计人员的要求加大。原本的应用设计人员,只了解业务逻辑,这显然不够,还需要了解内核的基本原理,才能够做好逻辑划分工作。既了解内核又懂应用开发和业务逻辑的人员,是交叉性人才,这样的人员往往少且难以培养。如果让原本的应用开发人员,学习掌握内核相关的知识,以便可以满足BPF应用开发的需要,显然费时费力不说,费效比更是难以达到商业决策的最低门槛。

而在开发阶段,BPF和应用需要分开编码,这无疑增加了联调联试的开销。特别是,出现问题的时候需要频繁的跨组跨部门沟通,效率实在太低。如果能把BPF的开发完全应用化,让一个程序员承担所有工作,成本、效率都可以得到优化。

在测试阶段,还缺少专用的高效率的工具。

因此,以开发工具的进步为基础,目前采用的开发流程也一定会同步地被改进。可以预想,未来的开发流程一定是融合和简化的。

7.结束语
Linux内核的发展,将技术发展与创新演绎得淋漓尽致。

源自于用户和开发者的需求,始终是推动技术不断进步的根本动力。在需求的推动下,Linux内核始终在快速的发展,保持着强劲的动力。

同时,热爱与坚持,还有最重要的开发原则的坚守,是Linux能够将源源不断的需求转化为创新动力的基础,而不至于被爆炸的需求摧毁。基本原则体系的维护,使Linux内核始终保持如一的设计框架。

在Linux的发展过程中,一些很小的需求,最终也可以发展成为复杂的架构。坚持与打破壁垒,是创新的范式。

在不断寻求问题的最终答案的过程中,有很多优秀的思想启发我们的认知,但限于技术发展阶段、条件是否成熟,这些优秀的思想有的潜入水底,有的浮现水面独领一段风骚。历史会有所偏好,作出它的选择,但不可否认的是这些优秀的思想,都一直在发挥着它们的作用。当历史的拐点到来的时候,它们又会重新融合,以一种全新的方式继续推动技术的进步。

BPF是内核交互问题不断挖掘、迭代后的最新答案。内核的交互问题,本质上是内核结构问题。BPF的强大计算能力,将推动更好地实现内核与用户态的动态交互,使内核能够更加灵活满足各种应用场景的需要,使整个系统的性能不因为这种能力而遭受损失。保持软件良好分层的基础上,减小分层对信息交互、资源共享的阻碍。而围绕BPF的基础设施的发展,也必定会为内核结构带来巨大改变,将安全性、规范性更加深入地融入到内核的细微层次。

安全可靠是BPF持续发展的原则的,在BPF的功能性不断扩展、计算能力不断释放的过程中,安全检查、可信编译的加持是可持续性的基础。

而作为一种全新的编程方式,BPF的开发和传统编程范式具有同样的地位和发展前景。从语言的支持到代码的生成乃至JIT的优化等等,是必不可少的一环。

BPF来源于Linux内核发展过程中,众多优秀的开发者在效率、能力方面的不断改进,以及对技术本源的孜孜以求。它是内核发展中,众多优秀思想的集大成者,但同时,它也仅仅是新时代的开始。新的方法、新的语言、新的架构都在不断出现,催生着巨大的变革,如汹涌的波涛。而BPF将成为乘波之舟,它存在很多可能性,相信以此为起点,开发者们将会谱写更华丽的篇章。这是包括作者在内的众多开发者,所期待的广阔未来。

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=34730
赞同 0
评论 0 条
风晓L1
粉丝 1 发表 522 + 关注 私信
上周热门
服贸会|范渊荣获年度创新领军人物!王欣分享安恒信息“AI+安全”探索  3508
WPS City Talk · 校招西安站来了!  3424
字节跳动“安全范儿”高校挑战赛来袭!三大赛道,赢 80 万专项基金!  3349
阿B秋招线下宣讲行程来啦,速速报名!  3236
2024海洋能源产业融合发展论坛暨博览会同期活动-海洋能源与数字化智能化论坛成功举办  3231
烽火通信2025届校园招聘宣讲行程发布!!  3191
有在找工作的IT人吗?  3175
麒麟天御安全域管平台升级!为企业管理保驾护航  3161
字节跳动校招 | 电商业务 2025 校园招聘进行中!五大职类热招,等你来投!  3068
华为全联接大会2024丨软通动力分论坛精彩议程抢先看!  3010
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
如何玩转信创开放社区—从小白进阶到专家 15
信创开放社区邀请他人注册的具体步骤如下 15
方德桌面操作系统 14
我有15积分有什么用? 13
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
中央国家机关政府采购中心:应当将CPU、操作系统符合安全可靠测评要求纳入采购需求 8

加入交流群

请使用微信扫一扫!