XCP-ng 是由 Linux 基金会主办的 Xen Project 孵化项目,近日,其团队发博客称将要将 Rust 引入 Xen 项目,使用 Rust 重写一些 Xen 组件。
Xen 是由剑桥大学开发的 x86 开源虚拟机监控器 (VMM),支持在单个机器上高性能地虚拟化多个操作系统。
XCP 项目的整个平台包含许多不同的程序:Xen(管理程序)、XAPI(API/工具栈)、SMAPI(存储堆栈)和访客工具等其他组件。它们混合了多种语言,如 C、Python、OCaml 甚至 Go,有些组件不知何故变得非常陈旧且不易维护。
至于选择 Rust ,团队也给出了相应的解释,首先是 Rust 同时带来性能和内存安全,这对于 XCP-ng 这样的虚拟化平台非常优秀,其次,Rutst 没有垃圾收集器,还有借用检查器等额外功能... 最最最重要的是,Rust 能在不同级别的场景中工作,它既能代替 Go 和 Python 写应用层,也能代替 C 语言写底层逻辑。
当然,一口吃不成胖子,XCP-ng 团队肯定不会一下子用 Rust 重写整个 Xen 管理程序,现在的目标是开始替换一些较小的组件,让项目的编程语言相对统一化。目前最新的计划是用 Rust 重写 两个组件:Linux 来宾工具(目前在 Go 中)和指标守护程序(目前在 OCaml 中)。
感兴趣的人可以在 XCP-ng 博客上了解更多详细信息。