Lanzan una iniciativa para reelaborar Xen Hypervisor en Rust
Los desarrolladores de la plataforma XCP-ng, que se desarrolla bajo el ala del proyecto Xen, han publicado un plan para crear un reemplazo de Rust para varios componentes de la pila de software Xen.
El hipervisor Xen en sí aún no se va a procesar y el trabajo se centra principalmente en volver a trabajar los componentes individuales del conjunto de herramientas.
La plataforma actualmente usa componentes en C, Python, OCaml y Go, algunos de los cuales están desactualizados y causan problemas de mantenimiento. Se observa que el uso de Rust no conducirá a un aumento general en la cantidad de idiomas involucrados, ya que solo se implementa un componente en Go, que se planea reemplazar en primer lugar.
Obviamente, no espere que reescribamos el hipervisor Xen y todo en Rust como nuestro primer intento. De hecho, nuestro objetivo aquí es comenzar a reemplazar algunos componentes más pequeños a su alrededor, lo que nos permite «aumentar» el lenguaje en sí y pensar en cómo reemplazar las cosas bloque tras bloque, para toda la plataforma.
Rust se elige como un lenguaje que combina un alto rendimiento del código resultante con capacidades de memoria segura, no requiere el uso de un recolector de basura, es adecuado para desarrollar componentes de bajo y alto nivel, proporciona características adicionales para reducir el potencial errores, como el préstamo variable (borrow checker). Rust también está más extendido que el actual lenguaje XAPI OCaml, lo que facilitará la atracción de nuevos desarrolladores al proyecto.
En la primera etapa, se planea desarrollar reemplazos para varios componentes con el fin de resolver los procesos y preparar la base para reemplazar otras partes de la pila de software. En particular, en primer lugar, las herramientas de invitado de Linux se reescribirán en Rust, para el cual se usa actualmente el lenguaje Go, y el proceso en segundo plano para recopilar métricas, se escribirá en OCaml.
Dado que Rust es seguro y rápido, ¿qué más necesitamos? También necesitamos un lenguaje de programación que sea capaz de trabajar en varios niveles (inferior y superior en la pila). Yo no confiaría en Go o Python para hacer frente a cosas de tan bajo nivel que podemos tener en XCP-ng, y -de la misma manera- tampoco en C para hacer cosas de mayor nivel. El uso de Rust brinda el potencial de estar en todas partes en la pila XCP-ng’.
Además, Rust ya no es un lenguaje de «nicho». Por ejemplo, incluso si es excelente, OCaml (usado en XAPI) no se conoce lo suficiente, lo que reduce nuestras oportunidades de contratar fácilmente a personas con experiencia en este idioma. Esto también reduce la capacidad de una comunidad de código abierto para obtener colaboradores. Creemos que Rust no será un obstáculo para eso (tanto para la contratación como para las contribuciones), probablemente incluso lo contrario: un impulsor para atraer a más personas, ya que es una tecnología «deseada» .
La necesidad de rediseñar las herramientas de Linux guest tools (xe-guest-utilities) se debe a problemas de calidad de código y desarrollo fuera del Proyecto Xen bajo el control de Cloud Software Group, lo que dificulta el empaquetado y la influencia de la comunidad en el desarrollo. Se planea crear una nueva variante del conjunto de herramientas ( xen-guest-agent ) completamente desde cero, manteniéndolo lo más simple posible y separando la lógica del agente de las bibliotecas. Se decidió volver a trabajar en el proceso de fondo para recopilar métricas ( rrdd ), ya que es compacto y está separado, lo que facilita experimentar con el uso de un nuevo lenguaje durante el desarrollo.
El próximo año, probablemente se comenzará a trabajar en el desarrollo del componente xenopsd-ng en Rust, que nos permitirá optimizar la arquitectura de la pila de software. La idea principal es concentrar el trabajo con una API de bajo nivel en un componente y organizar la provisión de todas las API de alto nivel al resto de la pila a través de él.
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.