Wasm + eBPF = Infinite Imaginationn (二)

系列之:展望 2023,让 eBPF 插上 Wasm 的翅膀

回望过去的 2022 年,有两项技术备受瞩目:eBPF 和 WebAssembly。

eBPF: 全新的可能性

eBPF 是一项革命性的技术,起源于Linux内核,可以在操作系统的内核中运行沙盒程序。它被用来安全和有效地扩展内核的功能,而不需要改变内核的源代码或加载内核模块。

过去一年中,可观测技术得到了极大关注,也被 Gartner 列为 2023 年十大战略技术趋势之一。eBPF 本身是对传统观测能力一个非常好的补充,在对内核无侵入的前提下,它通过动态地向内核中插入一段自己的代码,实现定义监控及跟踪等多种多样的能力。同时, eBPF 也促进了网络,安全性,应用程序配置跟踪和性能故障排除等等领域的新一代工具的开发,这些工具不再依赖现有的内核功能,而是在不影响执行效率或安全性的情况下主动重新运行。

如今, eBPF 被广泛应用在云原生、可观测、性能调优、安全、硬件加速等领域,并且其应用场景还在快速扩展,各种场景基于 eBPF 技术的创新项目呈现井喷现象,对于操作系统社区而言,eBPF 技术带来了一个全新的可能性以及广阔的天地, eBPF 的时代已然来临。

过去的 eBPF summit 2022 中,《The future of eBPF in the Linux Kernel》展望了 eBPF 相关技术的发展方向,具体的演进方向可能包含几个方面:

  • 更完备的编程语义支持:当前 eBPF 的编程能力存在一些局限性(比如不支持变量边界的循环,指令数量受限等),未来希望能进一步提供图灵完备的编程能力,增强 eBPF 的循环、内存分配等多种语言特性。
  • 更强的安全性:支持类型安全,增强运行时 Verifier,希望 BPF 也能提供媲美 Rust 的安全编程能力,以及尝试有没有可能结合 Rust 和 BPF 的特性,提供更进一步的、同时保证可移植和安全性的内核功能。
  • 更广泛的移植能力:增强 CO-RE,加强 Helper 接口可移植能力,实现跨体系、平台的移植能力。
  • 更强的内核可编程能力:支持访问/修改内核任意参数、返回值,实现更强的内核编程能力,甚至使用 BPF 来帮助构建和增强内核本身的安全性。

Wasm: 引领下一代计算范式

相对于 eBPF 主要关注于内核态或者和内核相关的应用,用户态的 WebAssembly 也成为了 2022 年新的焦点。

WebAssembly(简称 Wasm)是一个自诞生之日起就充满潜力的技术,一开始为了一个可移植的目标而设计的一种类似汇编字节码的指令格式标准,可用于编译C/C+/RUST等高级语言,使客户端和服务器应用程序能够在浏览器上部署;

时至今日,WebAssembly 正在沿着其名字中 Web 和 Assembly 两个领域之外的方向发展,使用与 Wasm 兼容的运行时,Wasm 文件可以在客户端和服务器端执行,从 “JavaScript 杀手” 到 “云计算的下一个前沿方向” 几乎覆盖了全部新兴领域,同时在从云计算、serverless 向边缘计算渗透,Wasm 已经远远超出了起作为第四种 Web 标准语言的角色。甚至重新定义了应用软件的开发模式,正逐渐接近其 “一次编写,随处运行” 的愿景。

Wasm 有几个关键的设计目标使其出生开始就自带令人亮眼的关注:

  • 可移植:Wasm 被设计为针对低级虚拟机架构,其指令由物理机单独翻译成机器代码。这意味着 Wasm 二进制文件最终可以在各种操作系统和芯片架构上运行 —— 无论是在运行 X86 笔记本电脑的浏览器中,还是在内部或云端的服务器上,在移动设备、物联网设备上等等。
  • 多语言:因为 Wasm 是一个编译目标,用于编程模块的具体语言并不重要,重要的是是否有支持将该语言编译到 Wasm。开发人员可以灵活地使用多种语言(如 C、C++、Rust、凹语言等)来构建二进制文件,并享受 Wasm 带来的红利。
  • 轻量和高效:作为一个低级别的二进制指令格式,只需要较少的操作来将 Wasm 翻译成优化的机器代码。
  • 安全:Wasm 目标之一是安全,它在一个沙盒环境中执行,对主机运行时没有初始可见性。这意味着对系统资源(如文件系统,硬件等)的访问是受限制的,除非明确导入了对应的函数以支持。因此 Wasm 极大限制了攻击面,实现了多租户环境中不受信任的代码安全受限地执行。

过去的 2022 年 Wasm 取得了不少激动人心的成就,许多新的 Wasm 初创公司涌现,老牌云服务商和公司宣布支持 Wasm,字节码联盟推出了许多新的 Wasm 标准,CNCF主办了两次 WasmDay 活动,而 Wasm 最大的用户之一 Figma 被 Adobe 以惊人的 200 亿美元收购。对于 WebAssembly 而言,2023 年很有可能也会是爆发的一年:

组件模型描述了Wasm二进制文件相互交互的方式,正在迅速成熟,已经出现了参考实现。开发人员可以声明他们的应用程序需要哪些组件,或者更抽象地说,他们的应用需要哪些功能(而不是用他们首选的源语言查找库),然后Wasm运行时可以代表用户组装正确的组件集。2023 年将是组件模型开始重新定义我们如何编写软件的一年。

Wasm改变了无服务器环境的潜力。由于几乎即时的启动时间、较小的二进制文件大小以及平台和架构中立性,Wasm二进制文件可以用运行当今无服务器基础设施所需的一小部分资源来执行。

2022年底,OCI Registry工作组宣布了一种存储容器镜像以外的其他内容的官方方式。这可能包括Helm图表、照片或Wasm应用程序。这个新功能被称为“工件存储”。

所有大型编程语言都将得到Wasm支持:Wasm GC提案很可能在 2023 年初就能可用并得到支持,因此 Kotlin 和 Dart 将很快发布Wasm编译器,Java 也很可能将成为最流行的 Wasm 开发语言。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

芯光未来

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

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

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

打赏作者

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

抵扣说明:

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

余额充值