O Citrix XenServer é um sistema que tem como principal função gerenciar domínios (máquinas virtuais). Fazendo com que seja possível em um mesmo hardware alocar vários sistemas operacionais, de forma que as máquinas sejam independentes entre si, isoladas no uso de um mesmo hardware, usando hypervisor.
O sistema operacional que se baseia o XenServer é o CentOS um sistema baseado nos sistemas operacionais da Red Hat, que tem um foco na área empresarial. Como servidores em geral são usados para gerenciamento de dados ou máquinas virtuais por exemplo, o XenServer é um sistema operacional que não possui uma ampla variedade de programas convencionais disponíveis, a maioria dos programas são do próprio CentOS. É mais recomendável atualizar o servidor apenas se necessário ou por questão de segurança, sendo esta de duas formas, baixando as atualizações disponibilizadas pela Citrix pelo próprio XenServer, na máquina física ou de uma forma remota utilizando o XenCenter, também disponibilizado pela Citrix.
O funcionamento da virtualização através do Xen baseia-se em dois conceitos: domínio e hypervisor. Os domínios são as máquinas virtuais e podem ser de dois tipos: privilegiadas (domínio 0 ou Dom0) e não privilegiadas (domínio U ou DomU).
DomU, são as máquinas virtuais. O hypervisor é uma camada de software responsável pelo controle dos recursos de comunicação, de memória e de processamento das máquinas virtuais, mas que não possui driver de dispositivos, por isso não é possível que o mesmo execute um sistema operacional diretamente. Essa impossibilidade, faz necessário que um sistema inicial seja preciso para fazer a comunicação entre o hypervisor e os sistemas virtuais. Existem dois tipos de hypervisor, o tipo 1, conhecido como Bare-Metal ou também nativo em que o software executa diretamente sobre o hardware, e o tipo 2, conhecido como Hosted que executa sobre um sistema operacional, o Xen utiliza o tipo 1 mostrado no esquema abaixo.
O sistema inicial chama-se de dom0. Sendo o mesmo uma máquina virtual que executa um kernel Linux modificado e possui privilégios suficientes para acessar as outras máquinas virtuais, as DomU’s, e também os dispositivos de entrada e saída da máquina física. As DomU’s podem rodar outros sistemas operacionais, criadas, desligadas e inicializadas através do Dom0. As mesmas para usufruir de recursos de memória ou do processador do sistema físico deve se comunicar diretamente com o hypervisor, pois ele é o responsável por controlar estes recursos.
O Dom0 possui os drivers dos dispositivos da máquina física, além dos drivers de requisição de acesso à rede e ao disco enviadas pelas máquinas virtuais. Assim, essas requisições de uso de máquina real feitas pelo DomU, são tratadas pelo Dom0 ao serem enviadas ao hypervisor. A centralização de drivers no Dom0 diminui a incompatibilidade que há entre os sistemas operacionais, facilitando a virtualização de máquinas com SO's diferentes. Muitas distribuições Linux já possuem suporte ao Xen, facilitando o processo de instalação e implantação.
Primeiramente o Xen foi desenvolvido com a premissa da para-virtualização, mas para isso era necessário modificar os sistemas hóspedes dando a noção aos mesmos para executar em função do Hypervisor, limitando o Xen a sistemas de código aberto, Unix por exemplo. E é a partir da versão 3, que o Xen passa então a disponibilizar a versão de virtualização-total, podendo executar então em sistemas de código fechado, mas isso tudo graças a evolução da Intel e AMD, ao lançarem arquiteturas com suporte a virtualização, Intel VT e AMD-V.