# Xen vs. KVM: comparação entre dois hipervisores de código aberto

Na era da computação em nuvem, hipervisores como **KVM** e **Xen** são absolutamente essenciais. Em que estas tecnologias de virtualização diferem? Nesta comparação entre Xen e KVM, abordamos as semelhanças e particularidades de cada uma.

## Resumo do hipervisor Xen

O [hipervisor](https://www.ionos.com/pt-pt/digitalguide/servidores/know-how/o-que-e-um-hipervisor/) Xen é um software de virtualização de código aberto que permite executar simultaneamente **vários sistemas operativos convidados no mesmo computador anfitrião**. O hipervisor Xen é responsável por distribuir os recursos de hardware do computador anfitrião.

### Que tipo de hipervisor é o Xen?

O Xen, um **hipervisor de tipo 1 ou bare-metal**, é instalado diretamente no sistema físico. Ele comunica-se com o hardware através dos seus próprios controladores. Os sistemas host e guest são instalados sobre o hipervisor Xen. O Xen atribui os sistemas operacionais instalados aos domínios **dom0** e **domU** para distinguir entre **níveis de privilégio**. O sistema operativo anfitrião pertence ao dom0 e, portanto, desfruta do nível mais alto de privilégio. Todos os sistemas operativos convidados fazem parte do domU, como sistemas sem privilégios, ou *unprivileged*.

No entanto, o sistema operativo anfitrião e o hardware não comunicam diretamente através dos controladores do sistema operativo, mas sim através de uma **API especial do Xen** por meio do hipervisor. A integração profunda do hipervisor Xen garante uma utilização mais eficiente do hardware, com menos sobrecarga e uma menor superfície de ataque.

### Xen: maior eficiência graças à paravirtualização

O Xen utiliza a **paravirtualização** para aumentar a eficiência. Neste caso, **o hipervisor não emula** os componentes de hardware, pelo que o sistema anfitrião sabe que está a ser executado num ambiente virtualizado. Desta forma, a comunicação entre os sistemas operativos anfitriões e o hipervisor Xen ocorre mais rapidamente, o que aumenta o desempenho. No entanto, esta técnica tem exigências especiais para os sistemas operativos instalados no Xen, entre as quais se encontram que o núcleo do sistema operativo suporte a paravirtualização ou que existam controladores especializados. De qualquer forma, há anos que os núcleos dos sistemas operativos típicos, como Linux e BSD, já cumprem estes requisitos.

Se não for possível ou desejável paravirtualizar o sistema operativo, o Xen também suporta uma **virtualização completa**, na qual os componentes de hardware são emulados virtualmente. Esta opção torna a virtualização mais lenta, mas oferece **maior compatibilidade**. Assim, também é possível executar no Xen sistemas operativos que não permitem a paravirtualização.

Dica Além do KVM, também existem muitas outras alternativas ao Xen. Apresentamos algumas delas neste artigo.

## Características do hipervisor KVM

KVM (do inglês ***Kernel-based** **Virtual** **Machine***) é outro hipervisor de código aberto com o qual é possível executar vários sistemas operativos convidados num único computador físico. Embora, em princípio, o KVM e o Xen tenham a mesma finalidade, eles baseiam-se em princípios de funcionamento diferentes e, portanto, são ideais para casos de uso distintos.

### Que tipo de hipervisor é o KVM?

No passado, o KVM costumava ser classificado como **um hipervisor do tipo 2**, pois só conseguia comunicar com o hardware através dos controladores do sistema operativo do host. Também não permitia a paravirtualização, e todos os componentes de hardware do sistema hospedeiro tinham de ser emulados pelo KVM.

Desde então, o KVM adicionou a função de paravirtualização, embora funcione de maneira diferente do Xen, pois no KVM não é instalado no sistema operativo anfitrião. Em vez disso, o KVM **integra-se diretamente no núcleo do Linux** e utiliza os componentes de software do sistema Linux para administrar os sistemas virtualizados e os seus processos. No KVM, cada sistema operativo convidado tem o seu próprio hardware virtualizado, incluindo interface de rede, armazenamento em disco rígido, etc. Para acelerar essa **virtualização total**, o KVM utiliza a **Virtualização Assistida por Hardware**, já integrada na maioria dos processadores modernos.

No entanto, com o KVM, nem todos os componentes são totalmente virtualizados. Para acelerar os sistemas e aplicações, ele oferece algumas **interfaces paravirtualizadas** que podem se comunicar diretamente com o hipervisor através da **API Virtio**. Portanto, a paravirtualização no KVM é oferecida principalmente para **dispositivos de entrada e saída**, como **interfaces de rede**, de modo que este hipervisor fornece mais uma **paravirtualização parcial**.

## KVM vs. Xen: qual hipervisor tem melhor desempenho?

A principal diferença entre esses dois hipervisores é o **nível do conjunto de software em que operam**. Como parte do núcleo Linux, o KVM utiliza virtualização assistida por hardware para virtualizar totalmente muitos componentes de hardware sem prejudicar significativamente o desempenho. As interfaces IO mais importantes são paravirtualizadas; esse é provavelmente o fator mais importante para a maioria das aplicações de servidor. Por sua vez, o Xen é instalado de forma clássica como hipervisor de tipo 1 **no** sistema operativo correspondente. É o próprio hipervisor que se encarrega de distribuir os recursos de hardware, o que garante que **o Xen possa, em teoria, oferecer uma comunicação mais eficiente e com maior desempenho** com o hardware. No entanto, o Xen e o KVM têm um desempenho semelhante graças ao controlador Virtio do KVM e à virtualização assistida por hardware.

### Fixação da CPU

Evidentemente, os dois hipervisores não funcionam da mesma forma com todas as aplicações. O KVM oferece aos seus utilizadores mais potência do que o Xen, especialmente no que diz respeito ao **CPU Pinning**. Graças à afinidade do processador, o KVM pode atribuir um processador físico (ou núcleo do processador) a um processador virtualizado para que apenas o sistema virtual possa usar o processador. Isso é especialmente vantajoso para aplicações que consomem muita CPU e só é possível com o KVM.

### Desempenho da rede

Em termos de desempenho de rede, o Xen leva vantagem. Embora ambos os hipervisores ofereçam interfaces de rede paravirtualizadas, no KVM cada sistema virtualizado tem o seu próprio dispositivo de rede. No Xen, todos os sistemas hospedeiros partilham uma única interface de rede virtual, o que garante uma melhor eficiência.

### Conclusão

Para saber qual hipervisor é melhor, se o Xen ou o KVM, deve pensar nas suas necessidades. O KVM costuma ser mais fácil de usar, pois além de ser líder de mercado, integra-se ao núcleo do Linux e permite a virtualização completa. O Xen oferece, em princípio, um desempenho superior graças à paravirtualização completa. Portanto, tudo depende das aplicações que deseja virtualizar e do seu nível de experiência.


This is a markdown version of: [https://www.ionos.com/pt-pt/digitalguide/servidores/know-how/xen-vs-kvm/](https://www.ionos.com/pt-pt/digitalguide/servidores/know-how/xen-vs-kvm/) for AI/LLM consumption.