Iniciativa de reelaboración de Xen Hypervisor Toolkit en Rust

Los desarrolladores de la plataforma XCP-ng, desarrollada bajo el ala del proyecto Xen, han publicado un plan para crear un reemplazo para varios componentes de la pila de software Xen en el lenguaje Rust. No hay planes para reelaborar el hipervisor Xen en sí; el trabajo se centra principalmente en reelaborar componentes individuales del conjunto de herramientas.

Actualmente, la plataforma utiliza componentes C, Python, OCaml y Go, algunos de los cuales están desactualizados y plantean desafíos de mantenimiento. Cabe señalar que el uso de Rust no conducirá a un aumento general en la cantidad de lenguajes involucrados, ya que en Go solo se implementa un componente, que se planea reemplazar primero.

Se eligió Rust como un lenguaje que combina código de alto rendimiento con capacidades de seguridad de memoria, no requiere un recolector de basura, es adecuado para desarrollar componentes de bajo y alto nivel y proporciona características adicionales para reducir posibles errores, como un pedir prestado el verificador). Rust también está más extendido que el lenguaje OCaml utilizado actualmente en XAPI, lo que facilitará la atracción de nuevos desarrolladores al proyecto.

La primera fase consistirá en desarrollar reemplazos para varios componentes para probar procesos y preparar la base para el reemplazo de otras partes de la pila de software. En particular, en primer lugar, las herramientas invitadas de Linux, para las que actualmente se utiliza el lenguaje Go, y el proceso en segundo plano para recopilar métricas, escrito en OCaml, se reescribirán en Rust.

La necesidad de reelaborar las herramientas invitadas de Linux (xe-guest-utilities) se debe a problemas con la calidad del código y el desarrollo fuera del Proyecto Xen bajo el control del Cloud Software Group, lo que dificulta la integración de paquetes y la influencia de la comunidad en el desarrollo. Planean crear una nueva versión del kit de herramientas (xen-guest-agent) completamente desde cero, haciéndolo lo más simple posible y separando la lógica del agente de las bibliotecas. Se decidió reelaborar el proceso en segundo plano para recopilar métricas (rrdd), ya que es compacto y separado, lo que simplifica los experimentos sobre el uso de un nuevo lenguaje durante el desarrollo.

El año que viene, es posible que se comience a trabajar en el desarrollo del componente xenopsd-ng en Rust, que optimizará la arquitectura de la pila de software. La idea principal es concentrar el trabajo con API de bajo nivel en un componente y organizar el suministro de todas las API de alto nivel a otros componentes de la pila a través de él.

Arquitectura actual de la pila Xen:

Iniciativa de reelaboración de Xen Hypervisor Toolkit en Rust

Arquitectura de pila Xen propuesta basada en xenopsd-ng:

Iniciativa de reelaboración de Xen Hypervisor Toolkit en Rust


Fuente: opennet.ru

Añadir un comentario