
Hipervisor tipo-1 e Monitor de Máquina Virtual de código aberto que oferece isolamento seguro para x86, ARM e RISC-V, com arquitetura Dom0/DomU, xenstore e suporte a boot confiável Intel TXT.
############################################################
\ / /___ _ __ _ _ _ __ | | __ | | | | ___
\ // _ \ ' \ | | | | ' / __| / ` | ' | |/ _
/ \ / | | || || | | | _ \ || (| | |) | | __/
//__|| || _,|| ||/__,|.__/||___|
############################################################
Xen é um Virtual Machine Monitor (VMM) originalmente desenvolvido pelo Systems Research Group do Laboratório de Computação da Universidade de Cambridge, como parte do projeto XenoServers financiado pelo UK-EPSRC. O Xen é software Open Source livremente distribuível, lançado sob a GNU GPL. Desde seu lançamento público inicial, o Xen cresceu uma grande comunidade de desenvolvimento, liderada por xen.org (https://www.xen.org).
Este arquivo contém algumas instruções de início rápido para instalar o Xen em seu sistema. Para mais informações, consulte https://www.xen.org/ e https://wiki.xen.org/
Primeiro, este é apenas um guia de início rápido. Para informações mais abrangentes, consulte o arquivo INSTALL e a wiki do Xen em https://wiki.xenproject.org e, em particular, https://wiki.xenproject.org/wiki/Getting_Started.
Segundo, há uma série de pré-requisitos para compilar uma versão do código-fonte do Xen. Certifique-se de ter todos os seguintes instalados, seja visitando a página do projeto ou instalando um pacote pré-compilado fornecido pelo distribuidor do seu sistema operacional: * GNU Make v3.80 ou posterior * Compilador e linker C: - Para x86: - GCC 5.1 ou posterior - GNU Binutils 2.25 ou posterior ou - Clang/LLVM 11 ou posterior - Para ARM: - GCC 5.1 ou posterior - GNU Binutils 2.25 ou posterior - Para RISC-V 64-bit: - GCC 12.2 ou posterior - GNU Binutils 2.39 ou posterior * awk compatível com POSIX * Instalação de desenvolvimento do zlib (ex.: zlib-dev) * Instalação de desenvolvimento do Python 2.7 ou posterior (ex.: python-dev) * Instalação de desenvolvimento do curses (ex.: libncurses-dev) * Instalação de desenvolvimento do uuid (ex.: uuid-dev) * Instalação de desenvolvimento do json-c 0.15 ou posterior (ex.: libjson-c-dev) ou yajl (ex.: libyajl-dev) * Instalação de desenvolvimento do libaio (ex.: libaio-dev) versão 0.3.107 ou superior. * Instalação de desenvolvimento do GLib v2.0 (ex.: libglib2.0-dev) * Instalação de desenvolvimento do Pixman (ex.: libpixman-1-dev) * pkg-config * pacote bridge-utils (/sbin/brctl) * pacote iproute (/sbin/ip) * GNU bison e GNU flex * Compilador ACPI ASL (iasl)
Além dos itens acima, há uma série de pré-requisitos de compilação opcionais. Omiti-los fará com que os recursos relacionados sejam desabilitados em tempo de compilação: * grep com suporte a busca binária (se compilar o Xen com suporte a CET) * Instalação de desenvolvimento do Ocaml (ex.: ocaml-nox e ocaml-findlib). Necessário para compilar componentes ocaml que incluem o xenstored alternativo em ocaml. * cmake (se compilar domínios stub vtpm) * pandoc, transfig, pod2{man,html,text} para renderizar várias peças de documentação em formatos alternativos * figlet (para gerar o tradicional banner de início do dia do Xen) * Arquivos de desenvolvimento do daemon systemd * Instalação de desenvolvimento do libnl3 (ex.: libnl-3-200, libnl-3-dev, etc). Necessário se o buffering de rede for desejado ao usar Remus com libxl. Consulte docs/README.remus para informações detalhadas. * Assembler, loader e compilador x86 de 16 bits para rombios (dev86 rpm ou bin86 & bcc debs) * Instalação de desenvolvimento do liblzma para rombios * Instalação de desenvolvimento do libbz2, liblzma, liblzo2 e libzstd para descompressão do kernel DomU.
Em segundo lugar, você precisa adquirir um kernel adequado para uso no domínio 0. Se possível, você deve usar um kernel fornecido pelo distribuidor do seu sistema operacional. Se nenhum kernel adequado estiver disponível no distribuidor do seu sistema operacional, consulte https://wiki.xen.org/wiki/XenDom0Kernels para sugestões de kernels adequados a usar. Se você pretende compilar um kernel Dom0 a partir do código-fonte, consulte https://wiki.xen.org/wiki/XenParavirtOps.
[NB. Salvo indicação em contrário, todas as etapas a seguir devem ser executadas com privilégios de root.]
Baixe e descompacte o arquivo tarball do código-fonte. Este será um arquivo chamado xen-unstable-src.tgz, ou xen-$version-src.tgz. Você também pode obter a versão atual dos repositórios git ou mercurial em https://xenbits.xen.org/
Assumindo que você está usando a árvore unstable, isto irá descompactar em xen-unstable. O restante das instruções usa a árvore unstable como exemplo; substitua unstable pela versão.
cd para xen-unstable (ou qualquer nome que você sensatamente lhe der).
Para a primeira compilação, ou se você quiser destruir as árvores de compilação, execute as seguintes etapas:
Consulte a documentação no arquivo INSTALL para mais informações.
Isto criará e instalará na máquina local. Ele compilará o binário xen (xen.gz), as ferramentas e a documentação.
Você pode substituir o destino do make install definindo DESTDIR com algum valor.
Para recompilar uma árvore existente sem modificar a configuração:
Isto compilará e instalará o xen, as ferramentas e a documentação no diretório dist/ local.
Você pode substituir o destino do make install definindo DISTDIR com algum valor.
make install e make dist diferem porque make install faz as coisas certas para a sua máquina local (instalando a versão apropriada dos scripts udev, por exemplo), mas make dist inclui todas as versões desses scripts, para que você possa copiar o diretório dist para outra máquina e instalar a partir dessa distribuição.
O Xen usa um banco de dados de configuração chamado xenstore [0] para manter informações de configuração e status compartilhadas entre domínios. Um daemon é implementado como parte do xenstore para atuar como interface de acesso ao banco de dados para o dom0 e os guests. Dois daemons xenstored são suportados: um escrito em C, ao qual nos referimos como xenstored (às vezes chamado de cxenstored), e outro escrito em Ocaml chamado oxenstored. Detalhes sobre o xenstore e as diferentes implementações podem ser encontrados no guia de referência do xenstore da wiki [1] e na página xenstored [2]. Você pode escolher qual xenstore deseja habilitar como padrão em um sistema através do configure:
./configure --with-xenstored=xenstored
./configure --with-xenstored=oxenstored
Por padrão, o oxenstored será usado se as ferramentas de desenvolvimento ocaml forem encontradas. Se você habilitar o oxenstored, o xenstored ainda será compilado e instalado, e o xenstored usado pode ser alterado através do arquivo de configuração:
/etc/sysconfig/xencommons ou /etc/default/xencommons
Você pode alterar o xenstored preferido que deseja usar na configuração, mas como não podemos parar o daemon, será necessário reiniciar para que a alteração tenha efeito.
[0] https://wiki.xen.org/wiki/XenStore [1] https://wiki.xen.org/wiki/XenStoreReference [2] https://wiki.xen.org/wiki/Xenstored
Várias ferramentas, como o pygrub, têm as seguintes dependências de runtime:
* Python 2.7 ou posterior.
URL: https://www.python.org/
Debian: python