
Hyperviseur de type 1 et moniteur de machine virtuelle open source offrant une isolation sécurisée pour x86, ARM et RISC-V, avec une architecture Dom0/DomU, xenstore et la prise en charge du démarrage de confiance Intel TXT.
############################################################
\ / /___ _ __ _ _ _ __ | | __ | | | | ___
\ // _ \ ' \ | | | | ' / __| / ` | ' | |/ _
/ \ / | | || || | | | _ \ || (| | |) | | __/
//__|| || _,|| ||/__,|.__/||___|
############################################################
Xen est un moniteur de machine virtuelle (VMM) développé à l'origine par le Systems Research Group du University of Cambridge Computer Laboratory, dans le cadre du projet XenoServers financé par le UK-EPSRC. Xen est un logiciel Open Source librement distribuable, publié sous la licence GNU GPL. Depuis sa première publication publique, Xen a développé une large communauté de développement, menée par xen.org (https://www.xen.org).
Ce fichier contient quelques instructions de démarrage rapide pour installer Xen sur votre système. Pour plus d'informations, consultez https://www.xen.org/ et https://wiki.xen.org/
Tout d'abord, ceci n'est qu'un guide de démarrage rapide. Pour des informations plus complètes, consultez le fichier INSTALL et le wiki Xen à l'adresse https://wiki.xenproject.org et en particulier https://wiki.xenproject.org/wiki/Getting_Started.
Ensuite, il existe un certain nombre de prérequis pour compiler une version source de Xen. Assurez-vous d'avoir installé tous les éléments suivants, soit en consultant la page web du projet, soit en installant un paquet précompilé fourni par le distributeur de votre système d'exploitation : * GNU Make v3.80 ou ultérieur * Compilateur et éditeur de liens C : - Pour x86 : - GCC 5.1 ou ultérieur - GNU Binutils 2.25 ou ultérieur ou - Clang/LLVM 11 ou ultérieur - Pour ARM : - GCC 5.1 ou ultérieur - GNU Binutils 2.25 ou ultérieur - Pour RISC-V 64 bits : - GCC 12.2 ou ultérieur - GNU Binutils 2.39 ou ultérieur * awk compatible POSIX * Installation de développement de zlib (par ex., zlib-dev) * Installation de développement de Python 2.7 ou ultérieur (par ex., python-dev) * Installation de développement de curses (par ex., libncurses-dev) * Installation de développement de uuid (par ex. uuid-dev) * Installation de développement de json-c 0.15 ou ultérieur (par ex. libjson-c-dev) ou yajl (par ex. libyajl-dev) * Installation de développement de libaio (par ex. libaio-dev) version 0.3.107 ou supérieure. * Installation de développement de GLib v2.0 (par ex. libglib2.0-dev) * Installation de développement de Pixman (par ex. libpixman-1-dev) * pkg-config * paquet bridge-utils (/sbin/brctl) * paquet iproute (/sbin/ip) * GNU bison et GNU flex * Compilateur ACPI ASL (iasl)
En plus de ce qui précède, il existe un certain nombre de prérequis de compilation facultatifs. Les omettre entraînera la désactivation des fonctionnalités associées au moment de la compilation : * grep capable de recherche binaire (si compilation de Xen avec support CET) * Installation de développement d'Ocaml (par ex. ocaml-nox et ocaml-findlib). Requis pour compiler les composants ocaml, ce qui inclut l'alternative ocaml xenstored. * cmake (si compilation de domaines stub vtpm) * pandoc, transfig, pod2{man,html,text} pour le rendu de divers éléments de documentation dans des formats alternatifs * figlet (pour générer la bannière traditionnelle de démarrage de Xen) * fichiers de développement du démon systemd * Installation de développement de libnl3 (par ex., libnl-3-200, libnl-3-dev, etc). Requis si la mise en mémoire tampon réseau est souhaitée lors de l'utilisation de Remus avec libxl. Voir docs/README.remus pour des informations détaillées. * assembleur, chargeur et compilateur x86 16 bits pour rombios (rpm dev86 ou debs bin86 & bcc) * Installation de développement de liblzma pour rombios * Installation de développement de libbz2, liblzma, liblzo2 et libzstd pour la décompression du noyau DomU.
Deuxièmement, vous devez acquérir un noyau approprié pour une utilisation dans le domaine 0. Si possible, vous devriez utiliser un noyau fourni par le distributeur de votre système d'exploitation. Si aucun noyau approprié n'est disponible auprès du distributeur de votre système d'exploitation, consultez https://wiki.xen.org/wiki/XenDom0Kernels pour des suggestions de noyaux appropriés à utiliser. Si vous souhaitez compiler un noyau Dom0 à partir des sources, veuillez consulter https://wiki.xen.org/wiki/XenParavirtOps.
[NB. Sauf indication contraire, toutes les étapes suivantes doivent être effectuées avec les privilèges root.]
Téléchargez et décompressez l'archive source. Il s'agira d'un fichier nommé xen-unstable-src.tgz, ou xen-$version-src.tgz. Vous pouvez également récupérer la version actuelle depuis les dépôts git ou mercurial à l'adresse https://xenbits.xen.org/
En supposant que vous utilisez l'arbre unstable, cela décompressera dans xen-unstable. Le reste des instructions utilise l'arbre unstable comme exemple ; remplacez unstable par la version appropriée.
Faites un cd vers xen-unstable (ou tout autre nom que vous lui avez judicieusement donné).
Pour la toute première compilation, ou si vous souhaitez détruire les arbres de compilation, effectuez les étapes suivantes :
Consultez la documentation dans le fichier INSTALL pour plus d'informations.
Cela créera et installera sur la machine locale. Cela compilera le binaire xen (xen.gz), les outils et la documentation.
Vous pouvez remplacer la destination de make install en définissant DESTDIR à une certaine valeur.
Pour recompiler un arbre existant sans modifier la configuration :
Cela compilera et installera xen, les outils et la documentation dans le répertoire local dist/.
Vous pouvez remplacer la destination de make install en définissant DISTDIR à une certaine valeur.
make install et make dist diffèrent en ce que make install fait ce qu'il faut pour votre machine locale (en installant la version appropriée des scripts udev, par exemple), mais make dist inclut toutes les versions de ces scripts, afin que vous puissiez copier le répertoire dist sur une autre machine et installer à partir de cette distribution.
Xen utilise une base de données de configuration appelée xenstore [0] pour maintenir les informations de configuration et d'état partagées entre les domaines. Un démon est implémenté dans le cadre de xenstore pour servir d'interface d'accès à la base de données pour dom0 et les invités. Deux démons xenstored sont pris en charge : l'un écrit en C, que nous appelons xenstored (parfois appelé cxenstored), et l'autre écrit en OCaml, appelé oxenstored. Les détails concernant xenstore et les différentes implémentations sont disponibles dans le guide de référence xenstore du wiki [1] et sur la page xenstored [2]. Vous pouvez choisir le xenstore que vous souhaitez activer par défaut sur un système via configure :
./configure --with-xenstored=xenstored
./configure --with-xenstored=oxenstored
Par défaut, oxenstored sera utilisé si les outils de développement OCaml sont détectés. Si vous activez oxenstored, xenstored sera tout de même compilé et installé ; le xenstored utilisé peut être modifié via le fichier de configuration :
/etc/sysconfig/xencommons ou /etc/default/xencommons