# Xen

Xen est un logiciel libre de virtualisation, plus précisément un hyperviseur de machine virtuelle, de type 1.
Son développement a débuté sous la forme d'un projet de recherche de l'université de Cambridge au Royaume-Uni. La société XenSource a par la suite été créée et en a poursuivi le développement. Xen permet de faire fonctionner plusieurs systèmes d'exploitation virtuels (invités) sur une seule machine hôte. Xen est en partie intégré à la partie principale du noyau linux depuis la version 3.0.

## Présentation

Xen permet d'exécuter plusieurs systèmes d'exploitation (et leurs applications) de manière isolée sur une même machine physique sur plate-forme x86, x86-64, IA-64 et PowerPC, ARM Cortex-A7 et Cortex-A15 (bientôt sur SPARC). Les systèmes d'exploitation invités partagent ainsi les ressources de la machine hôte.
Xen est un « paravirtualiseur » ou un « hyperviseur » de machines virtuelles. Les systèmes d'exploitation invités ont « conscience » du Xen sous-jacent, ils ont besoin d'être « portés » (adaptés) pour fonctionner sur Xen. Linux, NetBSD, FreeBSD, Plan 9 et GNU Hurd peuvent d'ores et déjà fonctionner sur Xen.
Xen 3 peut également exécuter des systèmes non modifiés comme Windows sur des processeurs supportant les technologies VT d'Intel ou AMD-V (nom de projet: Pacifica) de AMD.
Les architectures x86, x64, IA-64, PowerPC et ARM et SPARC sont supportées. Le multiprocesseur (SMP) et partiellement l’Hyper-Threading sont supportés.

## Architecture de Xen

Chaque système d'exploitation invité tourne dans un « domaine ». Xen est une fine couche fonctionnant directement sur le matériel.
* Logiciels de contrôle Xen
* Xeno-Linux
* Pilotes Xen
* Espace utilisateur
* Linux
* Pilotes Xen
* Espace utilisateur
* NetBSD
* Pilotes Xen
* Espace utilisateur
* FreeBSD
* Pilotes Xen
* Espace utilisateur
* Plan 9
* Pilotes Xen
Xen :
Matériel :
processeur, mémoire, stockage, réseau, etc. :

## Acteurs industriels

* Ian Pratt, le chef du projet, a créé XenSource, une société spécialisée dans le développement de Xen, sa promotion et son support. Des investisseurs ont injecté des millions de dollars dans cette société.
* Red Hat, projet Fedora, SuSE, Mandriva, Ubuntu Linux, Debian, Gentoo, CentOS et Arch Linux ont intégré Xen dans leur distribution.
* AMD a annoncé en février 2005 l'intégration de la technologie de virtualisation matérielle dans ses processeurs 64 bits (AMD64) sous le nom de code Pacifica, renommée maintenant en AMD-V. Cette virtualisation matérielle est utilisée par Xen version 3 (décembre 2005).
* HP a annoncé affecter des personnes pour contribuer au projet Xen.
* Citrix Systems a annoncé le 15 août 2007 l'acquisition de XenSource pour un montant d'environ 500 millions de dollars. Citrix entre ainsi dans le marché prometteur de la virtualisation sur les serveurs et les stations de travail.
* Depuis le 15 avril 2013, la fondation Linux a pris le contrôle du projet.

## Comparaison avec d'autres solutions de virtualisation

Généralement, la virtualisation nécessite un système d'exploitation hôte installé sur le matériel, et optionnellement une couche intermédiaire. Un ou plusieurs systèmes d'exploitation invités peuvent alors être installés en parallèle.
* Les logiciels de virtualisation de type QEMU, VirtualBox, VMware Workstation/GSX ou VirtualPC sont des machines virtuelles complètes pour les systèmes d'exploitation invités, incluant même un BIOS logiciel (« firmware »). Le système d'exploitation invité s'exécute comme s'il était seul sur un matériel, or ce matériel est « virtuel» ou « simulé » par le logiciel de virtualisation, le système d’exploitation invité fonctionne comme s'il n'était pas en environnement virtualisé. Ils sont toutefois les plus simples à mettre en œuvre. Les performances sont limitées pour une catégorie. On approche de la vitesse native (c'est-à-dire qu'aucune perte de performance n'est perceptible) pour l'autre catégorie. Voir Hyperviseur.
* Le logiciel de virtualisation de type VMware ESX permet des machines virtuelles complètes pour les systèmes d'exploitation invités, incluant même un BIOS, mais à la différence des machines virtuelles complètes précédemment citées, il y a empilage léger, la machine virtuelle se repose sur un noyau léger nommé « vmkernel ». C'est une architecture similaire à Xen en ce qu'il n'y a pas de système hôte visible, en revanche les systèmes invités n'ont pas à être modifiés, et n'ont pas accès directement au matériel de la machine.
* Les logiciels de type chroot, Linux-VServer, LXC, OpenVZ ou BSD Jail ne font qu'isoler certains aspects ou ressources du système d'exploitation hôte comme les systèmes de fichiers ou les espaces mémoire. Ces solutions sont très performantes, du fait du peu de surcharge, le noyau et parfois les bibliothèques du système hôte sont utilisés. Dans le cas de tous ces logiciels, sauf chroot, les environnements virtualisés sont peu, ou pas complètement, isolés.
* User Mode Linux (d'acronyme UML) est un noyau Linux compilé pour fonctionner en espace mémoire utilisateur (en dehors de l'espace noyau privilégié). Il se lance donc comme une application dans le système d'exploitation hôte. UML peut lancer et gérer ses applications de manière isolée des autres UML qui tournent sur la même machine. Solution très peu performante, car deux noyaux sont empilés, elle sert surtout au développement du noyau ou à la réalisation de « Pot de Miel ».
* Le logiciel de virtualisation de VirtualLogix est destiné au monde de l'embarqué. Il s'agit d'un paravirtualiseur très proche dans son principe de Xen. Il s'agit d'une solution propriétaire qui n'est donc intégrée dans aucune distribution ; elle est en revanche portable sur d'autres architectures de processeurs comme ARM et TI C64xx.
Du fait de cette « paravirtualisation » (adaptation du système d'exploitation invité) et de sa légèreté, Xen est un outil de virtualisation des plus performants. En effet les systèmes invités peuvent avoir un accès direct au matériel, ce qui offre un bien meilleur potentiel d'optimisation. Cependant, faire fonctionner une machine virtuelle Windows dont le code source est fermé pose quelques problèmes de stabilité sous forte charge.