O XEN tem suporte para ARM e também é possível executá-lo em uma CPU sem cap VHE (virtual hardware extension) que foi introduzido com a extensão ARMV8.1-A. Pelo que entendi, o kernel linux de uma vm convidada se comunica com o hipervisor xen por meio de chamadas HVC. A chamada HVC é um recurso de hardware, pois acho que está disponível apenas no sistema habilitado para VHE. Mas como funciona sem VHE? Também com HVCs, mas como algum tipo de chamada de software? Por favor, corrija-me se eu estiver errado no meu entendimento.
relate perguntas
-
Como /proc/net/wireless é um "clone" de /proc/net/dev?
-
Danos no kernel do Linux Mint
-
Como os desenvolvedores do kernel Linux lidam com seu trabalho com milhões de linhas de código? É um método? [fechado]
-
Passe o sistema de arquivos raiz por rótulo para o kernel do Linux
-
Acesse o sistema de arquivos como usuário root
O Xen on Arm normalmente usa as extensões de virtualização que estão presentes nos chips ARMv7 de ponta desde 2010, e são uma parte não opcional do ARMv8. A virtualização de braço adiciona um nível de privilégio extra, o hipervisor, que possui sua própria virtualização de memória. A relação entre o sistema e o hipervisor é muito semelhante à relação entre o usuário e o sistema: a MMU realiza uma tradução dos endereços virtuais (VA) do usuário (usando o mapeamento de memória de cada partição do usuário) para os endereços do sistema (IPA — “endereço físico intermediário”), e então outra conversão (usando o mapeamento de memória de cada partição do sistema) de endereços de sistema para endereços físicos (PA). O código do modo de usuário chama a instrução SVC para entrar no modo do sistema e o código do modo do sistema chama a instrução HVC para entrar no modo de hipervisor.
Quando um kernel contém um hypervisor, o próprio hypervisor é executado no modo hypervisor. O restante do kernel pode ser executado no modo de hipervisor ou no modo de sistema, dependendo do design desse kernel. Até onde eu sei, o Xen roda o Linux no modo de sistema mais partes específicas do Xen no modo hypervisor.
As extensões de host de virtualização v8.1- A simplificam o design de um kernel mais hipervisor como o Xen, permitindo que um kernel praticamente não modificado seja executado com privilégios de hipervisor. As partes do kernel (chamadas por instruções SVC ou por interrupções no nível do sistema) não precisam fazer chamadas HVC para executar operações do hypervisor. Isso ajuda no desempenho porque as chamadas HVC exigem opções de contexto adicionais que requerem alguma invalidação de cache, salvamento de registro e entradas TLB extras, pois cada nível tem seus próprios mapeamentos de memória.
(Também havia uma versão inicial do Xen ARM que não usava as extensões de virtualização. Embora esse projeto fosse chamado de “Secure Xen on ARM” , pelo que sei, ele só podia executar kernels convidados paravirtualizados e não havia segurança limite entre os kernels convidados e o host.)