Iniciativa para retrabalhar o kit de ferramentas do hipervisor Xen em Rust

Os desenvolvedores da plataforma XCP-ng, desenvolvida sob a asa do projeto Xen, publicaram um plano para criar um substituto para vários componentes da pilha de software Xen na linguagem Rust. Não há planos para retrabalhar o hipervisor Xen em si; o trabalho está focado principalmente em retrabalhar componentes individuais do kit de ferramentas.

A plataforma atualmente usa componentes C, Python, OCaml e Go, alguns dos quais estão desatualizados e apresentam desafios de manutenção. Note-se que o uso do Rust não levará a um aumento geral no número de linguagens envolvidas, uma vez que apenas um componente é implementado no Go, que está planejado para ser substituído primeiro.

Rust foi escolhida como uma linguagem que combina código de alto desempenho com recursos de segurança de memória, não requer um coletor de lixo, é adequada para desenvolver componentes de baixo e alto nível e fornece recursos adicionais para reduzir possíveis erros, como um verificador de empréstimo.). Rust também é mais difundido que a linguagem OCaml usada atualmente no XAPI, o que facilitará a atração de novos desenvolvedores para o projeto.

A primeira fase será desenvolver substituições de diversos componentes para testar processos e preparar a base para substituição de outras partes da pilha de software. Em particular, em primeiro lugar, as ferramentas convidadas do Linux, para as quais a linguagem Go é usada atualmente, e o processo de segundo plano para coleta de métricas, escrito em OCaml, serão reescritos em Rust.

A necessidade de retrabalhar as ferramentas convidadas do Linux (xe-guest-utilities) é causada por problemas de qualidade de código e desenvolvimento fora do Projeto Xen sob o controle do Cloud Software Group, o que dificulta o empacotamento de pacotes e a influência da comunidade no desenvolvimento. Eles planejam criar uma nova versão do kit de ferramentas (xen-guest-agent) completamente do zero, tornando-o o mais simples possível e separando a lógica do agente das bibliotecas. Optou-se por retrabalhar o processo de background para coleta de métricas (rrdd), por ser compacto e separado, o que simplifica experimentos de utilização de uma nova linguagem durante o desenvolvimento.

No próximo ano, poderão começar os trabalhos de desenvolvimento do componente xenopsd-ng em Rust, que otimizará a arquitetura da pilha de software. A ideia principal é concentrar o trabalho com APIs de baixo nível em um componente e organizar o fornecimento de todas as APIs de alto nível para outros componentes da pilha por meio dele.

Arquitetura atual da pilha Xen:

Iniciativa para retrabalhar o kit de ferramentas do hipervisor Xen em Rust

Arquitetura de pilha Xen proposta baseada em xenopsd-ng:

Iniciativa para retrabalhar o kit de ferramentas do hipervisor Xen em Rust


Fonte: opennet.ru

Adicionar um comentário