Rust 中的 Xen 管理程序工具包返工計劃

在 Xen 項目的支持下開發的 XCP-ng 平台的開發人員發布了一項計劃,為 Xen 軟件堆棧的各種組件創建 Rust 替代品。 Xen 管理程序本身尚未進行處理,工作主要集中在重新設計工具包的各個組件。

該平台目前使用 C、Python、OCaml 和 Go 中的組件,其中一些已經過時並導致維護問題。 需要注意的是,使用 Rust 不會導致涉及的語言數量整體增加,因為 Go 中只實現了一個組件,計劃首先將其替換。

Rust 被選中是因為它結合了高輸出代碼性能和內存安全功能,無垃圾收集器,適用於開發低級和高級組件,並提供額外的功能來減少潛在的錯誤,例如變量借用檢查器(借用檢查器)。 Rust 也比當前的 XAPI 語言 OCaml 更廣泛,這將更容易吸引新的開發人員加入該項目。

在第一階段,計劃開發幾個組件的替代品,以便制定流程並為替代軟件堆棧的其他部分奠定基礎。 特別是,首先,Linux 客戶工具將用 Rust 重寫,目前使用的是 Go 語言,收集指標的後台進程用 OCaml 編寫。

Linux guest tools(xe-guest-utilities)由於代碼質量問題和在雲軟件集團控制下的Xen Project之外的開發需要重新設計,難以打包和社區影響開發。 計劃完全從頭開始創建新版本的工具包 (xen-guest-agent),使其盡可能簡單,並將代理邏輯與庫分開。 決定重新設計用於收集指標 (rrdd) 的後台進程,因為它緊湊且獨立,這使得在開發過程中更容易嘗試使用新語言。

明年,可能會開始使用 Rust 開發 xenopsd-ng 組件,這將使我們能夠優化軟件堆棧的架構。 主要思想是將低級 API 的工作集中在一個組件中,並通過它組織為堆棧的其餘部分提供所有高級 API。

當前的 Xen 堆棧架構:

Rust 中的 Xen 管理程序工具包返工計劃

建議基於 xenopsd-ng 的 Xen 堆棧架構:

Rust 中的 Xen 管理程序工具包返工計劃


來源: opennet.ru

添加評論