Arquitetura do Xen
A arquitetura do Xen é composta por três partes:
    • O hipervisor Xen, que é propriamente dito a interface entre os sistemas operacionais visitantes e o hardware da máquina real (memória, cpu, dispositivos de e/s e discos).
    • O domínio 0 é o domínio do sistema operacional visitante que possui mais pridvilégios e também mais responsabilidades pois é neste domínio que são gerenciados os dispositivos de entrada e saída e a memória da máquina por exemplo. É inicializado junto com a própria máquina (ou seja, quando o computador é ligado) e permite ao administrador do sistema acessar qualquer outra máquina virtual que não esteja neste domíno.
    • Observação importante: no domínio 0 não é permitido que o sistema a ser instalado seja o Windows, apenas versões de Linux com kernel 2.4 ou 2.6 (ou núcelo) modificados.
    • O domínio U (de unprivileged, não-privilegiado em inglês) é o domíno das máquinas virtuais que recebem os sistemas operacionais hóspedes, e que não tem privilégio de acesso direto ao nível mais baixo de abstração. Para acessar os recursos de hardware, as aplicações que são executadas neste domíno devem obrigatoriamente acessar-los através do domíno 0.


graphic
Figura 5 – Arquitetura do Xen (Retirado de [7])

       Na virtualização total, como cada sistema hóspede não tem consciência de que está sendo executado em uma máquina virtual, qualquer alteração na tabela de páginas da máquina virtual precisa ser imediatamente avisada ao hipervisor para que este também altere a tabela de páginas da memória real. O problema é que o SO hóspede não sabe que se faz necessário este aviso. Enquanto isso, na paravirtualização (ou seja, refere-se especialmente ao Xen), o sistema hóspede sabe que precisa notificar a alteração ao hipervisor, já que este foi modificado para suportar estes inconvenientes. Sobre isto, Tanenbaum [1] escreveu: “ele primeiro realiza todas as modificações necessária para depois gerar uma chamada de hipervisor informando sobre a nova tabela”. Consequentemente, não é necessário a atualização das páginas na memória real a cada mudança nas páginas da memória virtual, tornando assim o acesso àquela mais eficiente.


       Em relação aos dispositivos de entrada e saída, o Xen faz com que cada sistema visitante passe as chamadas para o sistema que está no domínio 0. Em relação ao tipo 1, estes hipervisores são melhores porque a máquina no domínio 0 já contém todos os drivers de cada dispositivo.

       Como o Xen é um paravirtualizador, o sistema operacional hóspede deve ser modificado. Porém, ao contrário do que se possa pensar, não é necessário quaisquer modificações nas aplicações que são executadas nestes sistemas em modo usuário (mais especificamente em modo usuário virtual). Esta observação foi feita por Rosen no artigo [8].