Após 8 meses de desenvolvimento, foi lançado o release do hipervisor gratuito Xen 4.21. Empresas como Amazon, Arm, EPAM Systems e AMD participaram do desenvolvimento da nova versão. O código do projeto é escrito em C e é distribuído sob a licença GPLv2+. O desenvolvimento é realizado sob a organização Linux Foundation.
Mudanças principais no Xen 4.21:
- Foi garantido suporte completo ao modelo de dispositivos Linux stubdomain, permitindo a execução de componentes para emulação de dispositivos sob um usuário não privilegiado. O modelo Linux stubomains foi desenvolvido pelo projeto QUBES OS e suporta o uso de drivers de emulação das últimas versões do QEMU, bem como as funcionalidades auxiliares disponíveis no QEMU para sistemas convidados.
- Mudanças para sistemas baseados na arquitetura x86:
- Foi adicionado suporte a um novo algoritmo de compressão da estrutura PDX (Page inDeX), que melhora o funcionamento do Xen em processadores Intel Sierra Forest e Granite Rapids com mapeamento físico de memória não linear (sparse memory map), permitindo a existência de áreas vazias.
- Foi adicionada a possibilidade de controlar o atributo de cache em MTRR (Memory Type Range Registers) para o registro BAR (Base Address Register) de dispositivos PCI básicos da plataforma Xen, utilizado por sistemas convidados em modo HVM. Por padrão, em MTRR, a memória refletida dos dispositivos PCI é atribuída com o atributo UC (uncacheable), que faz sentido para dispositivos PCI reais, mas apenas diminui o desempenho do dispositivo PCI na plataforma Xen.
- Para processadores AMD, foi adicionado um novo driver amd-cppc/amd-cppc-epp, que controla a alteração da frequência da CPU para alcançar desempenho otimizado. O driver utiliza o mecanismo CPPC (Collaborative Processor Performance Control), que, ao contrário do acpi-cpufreq, não é limitado a três níveis de desempenho e permite uma resposta mais rápida às mudanças de estado.
- Na versão da camada xenstore-stubdom, utilizada para executar o xenstored sem privilégios do Dom0, foi implementado suporte para atualização ao vivo em ambientes paravirtualizados no modo PVH.
- Para o Dom0 no modo PVH, foi implementado suporte à tecnologia Resizable BAR (Resizable Base Address Register), permitindo acesso imediato a toda a memória do dispositivo PCI Express, e não apenas em relação a blocos.
- Foi implementada a possibilidade de passar dispositivos PCI para ambientes domU no modo HVM (virtualização de hardware completa) em configurações onde o dom0 opera no modo PVH (uma combinação de virtualização de hardware e paravirtualização).
- Mudanças para sistemas baseados na arquitetura ARM:
- Adicionada a capacidade de ativar o mecanismo de proteção de pilha (compilação com a flag "-fstack-protector"), que se baseia na adição de marcas de canário à pilha — sequências aleatórias. Em caso de estouro de buffer durante a exploração da vulnerabilidade, a marca canário é sobrescrita por outros dados, o que leva à ativação da verificação de integridade da marca e à iniciação de um término anômalo do aplicativo.
- Suporte para o mecanismo eSPI (Extended Shared Peripheral Interrupts) foi adicionado, fornecido pelos controladores de interrupção GICv3.1.
- Implementado o tratamento de SMMU (System Memory Management Unit) ao passar dispositivos PCIe.
- Adicionado suporte para controladores de host PCI usados na quarta geração de SoC Renesas R-Car.
- Suporte inicial para os processadores Cortex-R52 e Cortex-R82 com MPU (Memory Protection Unit) foi adicionado.
- No port Xen para arquitetura RISC-V, foi implementado suporte básico para UART e a capacidade de tratamento de interrupções externas (APLIC/IMSIC) no modo hipervisor.
- Continuada a implementação das exigências para o desenvolvimento de software seguro e confiável em language C, conforme estabelecido nas especificações MISRA-C para sistemas críticos.
- O suporte para versões antigas do GCC e Clang foi encerrado; agora, para construção é necessário pelo menos GCC 5.1, Clang 11, Binutils 2.25 e GNU Make 3.80.
Fonte: opennet.ru
