发起了用 Rust 改造 Xen Hypervisor 的倡议

Xen的

Xen 是一种管理程序,可提供安全隔离、资源控制、服务质量保证和虚拟机迁移。

MGI XCP-ng 平台开发人员, 它是在 Xen 项目的支持下开发的, 已经发布了创建 Rust 替代品的计划 软件堆栈的各种组件 en

Xen hypervisor 本身还有待处理,工作主要集中在重新设计工具集的各个组件。

该平台目前使用 C、Python、OCaml 和 Go 中的组件, 其中一些已经过时并导致维护问题。 据观察, 使用 Rust 不会导致整体提升 在涉及的语言数量上,由于 Go 中只实现了一个组件,因此计划首先将其替换。

显然不要指望我们第一次尝试用 Rust 重写 Xen hypervisor 和所有东西。 事实上,我们的目标是开始替换它周围的一些较小的组件,让我们能够“发展”语言本身,并考虑如何为整个平台逐块替换东西。

Rust 被选为兼具高代码性能的语言 产生安全内存能力,不需要使用垃圾收集器,适用于开发低级和高级组件,提供额外的功能来减少潜在的错误,例如变量借用器(borrow checker)。 Rust 也比当前的 XAPI 语言 OCaml 更广泛,这将更容易吸引新的开发人员加入该项目。

在第一阶段 计划开发各种组件的替代品 c为了解决流程并准备基础以替换软件堆栈的其他部分。 具体来说,首先,Linux guest tools 将用目前使用 Go 语言的 Rust 重写,收集指标的后台进程将用 OCaml 编写。

既然 Rust 既安全又快速,我们还需要什么呢? 我们还需要一种能够在不同级别(堆栈的底部和顶部)工作的编程语言。 我不相信 Go 或 Python 可以处理我们可以在 XCP-ng 中拥有的如此低级的东西,同样也不相信 C 可以做更高级别的事情。 Rust 的使用提供了成为 到处 在 XCP-ng 堆栈中'。

此外,Rust 不再是一种“小众”语言。 例如,即使它很棒,OCaml(在 XAPI 中使用)也不为人所知,这降低了我们轻松雇用具有这种语言经验的人的机会。 这也降低了开源社区获得贡献者的能力。 我们认为 Rust 不会成为这方面的障碍(包括招聘和贡献),甚至可能恰恰相反:吸引更多人的驱动力,因为它是一种“想要”的技术。

需要重新设计 的工具 Linux 来宾工具 (xe-来宾实用程序) 是由于 Xen 项目之外的开发和代码质量问题 在 Cloud Software Group 的控制下,这使得打包和社区对开发的影响变得困难。 计划完全从头开始创建工具集的新变体 ( xen-guest-agent ),使其尽可能简单并将代理逻辑与库分开。 我们决定重新设计用于收集指标 (rrdd) 的后端流程,因为它紧凑且独立,使得在开发过程中尝试使用新语言变得容易。

明年,可能会开始开发工作 Rust 中的 xenopsd-ng 组件,这将使我们能够优化软件堆栈的架构。 主要思想是将低级 API 的工作集中在一个组件中,并通过它组织为堆栈的其余部分提供所有高级 API。

最后,如果你有兴趣了解更多,可以咨询详情 在下面的链接中。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。