Virtualisation uml presents

From UnixWiki

Jump to: navigation, search


Contents

[edit] Présentation générale

La technologie UML (User Mode Linux), à ne pas confondre avec Unified Modeling Language, est une solution de virtualisation pour Linux, comparable à Xen. A l'heure ou cette page est écrite, la dernière version du noyau stable est la 2.6.22, et UML est intégré au noyau de Linux, sans qu'il ne soit nécessaire d'appliquer un patch. C'est donc une solution totalement libre, mais qui n'est pas universelle puisqu'elle est réservée à Linux.

[edit] Principe de fonctionnement

Le principe de UML est de fabriquer un noyau invité, généralement appelé vmlinux, qui fonctionnera comme n'importe quel programme normal. C'est à dire que le noyau produit sera un exécutable que vous pouvez lancer depuis un shell, et qu'il fonctionnera en mode utilisateur (User Mode, à l'inverse du Kernel Mode qui signifie en mode noyau). Cela signifie que le noyau invité sera contrôlé par le noyau hôte, et qu'en cas de problème avec le noyau invité, il sera possible de l'interrompre par exemple avec la commande "killall vmlinux".

[edit] Principe de mise en place

Pour mettre en place UML, il vous suffit de compiler un noyau invité, ce qui produira un fichier vmlinux et les modules qui l'accompagnent. Il n'est pas indispensable de modifier le noyau hôte, le noyau hôte pourra directement d'exécuter. Cependant, il est préférable de recompiler le noyau hôte avec le patch SKAS, afin que le noyau invité puisse fonctionner avec un ralentissement moindre. Vous pouvez télécharger ce patch ici: Patch SKAS pour linux-2.6

[edit] Résultats

Le noyau invité fonctionnera de façon transparente pour les programmes. Vous obtiendrez un système qui fonctionnera normalement, et que vous pourrez contrôler par le noyau hôte. Pour cela, il vous faudra cependant préparer un système, c'est à dire l'ensemble des programmes qui utilisent le noyau. Cela s'apparente à l'installation d'un système Linux normal, mais quelques modifications sont nécessaires pour que tout fonctionne correctement. Dans ce tutoriel, nous nous baseront sur la distribution Gentoo, avec l'archive starge3.tar.bz2 qui fournit une base directement exploitable.

Il faut savoir que le système invité fonctionne moins rapidement qu'un système normal, mais vous pouvez réduire cet impact en patchant le noyau hôte avec SKAS. Si vous souhaitez obtenir un système avec de meilleures performances, il est préférable d'utiliser la technologie Xen.

[edit] Domaines d'utilisation

Etant donné que UML ne fournit ni une utilisation universelle (comme VMWare qui fonctionne avec tous les systèmes), ni des performances quasi identiques à un système réel (comme Xen qui ne ralentit presque pas le système), cette technologie a peu d'intérêts pour les utilisateurs finaux.

Cette technologie est plutôt destinée aux développeurs, notamment aux développeurs du noyau Linux, qui ont besoin d'une protection contre le plantage du système en cas de bug dans un module en cours de développement. En effet, comme le noyau invité fonctionne sous le contrôle du système hôte, il est possible de reprendre la main en cas de plantage du noyau invité. Par ailleurs, il est possible de travailler sur ce programme avec des outils conventionnels, car le noyau invité est un programme normal. Vous pourrez donc le déboguer avec gdb, ce qui simplifie grandement le déboguage de code qui se trouve dans un noyau.

Suite

Personal tools
Reference cards