next up previous contents
suivant: Les tests en environnement monter: Système de tests précédent: Système de tests   Table des matières

UML

UML est un projet libre (http://user-mode-linux.sourceforge.net/) qui permet de faire tourner un Linux dans une machine virtuelle depuis n'importe quelle distribution Linux. Depuis les versions des noyaus 2.6, UML fait même partie intégrante des sources du noyau (arch/um).

La mise en oeuvre d'UML est relativement simple, il faut dans un premier temps récupérer les sources du noyau Linux et son patch UML associé :

$ wget http://www.kernel.org/pub/linux/kernel/v2.6/
linux-2.6.4.tar.bz2
$ wget http://prdownloads.sourceforge.net/user-mode-linux/
uml-patch-2.6.4-1.bz2


Puis créer ou récupérer un système de fichier compatible :

$ wget http://prdownloads.sourceforge.net/user-mode-linux/
Debian-3.0r0.ext2.bz2
$ wget http://prdownloads.sourceforge.net/user-mode-linux/
root_fs_slack8.1.bz2


Ensuite, il suffit d'appliquer le patch et de configurer le noyau en spécifiant l'architecture UML. Enfin, la compilation proprement dite crée un exécutable linux.

$ tar -xvjf linux-2.6.4.tar.bz2
$ cd linux-2.6.4
$ bzcat ../uml-patch-2.6.4-1.bz2 | patch -p1
$ make defconfig ARCH=um
$ make menuconfig ARCH=um
$ make linux ARCH=um


Une fois l'exécutable créé, il se lance comme n'importe quel binaire du système avec éventuellement des arguments comme le système de fichiers et le réseau.

Pour activer le réseau, il suffit d'ajouter à la ligne de lancement de l'UML : $eth0:tuntap,,,192.168.0.2$. Il est également nécessaire d'avoir les uml_utilities d'installées et que le binaire uml_net se trouve bien dans le path et ait les bonnes permissions. Le réseau se configure ensuite comme sous n'importe quel Linux. A noter que le système hôte doit posséder le module ``tun.o'' qui permet la réception et la transmission de paquets pour les programmes en espace utilisateur.

$ ./linux root=/dev/ubd/0 ubd0=../Debian-3.0r0.ext2 devfs=mount
eth0=tuntap,,,192.168.0.2

uml:~# uname -a
Linux uml 2.6.4-1um $1 Wed May 5 19:58:57 CEST 2004 i686 unknown


next up previous contents
suivant: Les tests en environnement monter: Système de tests précédent: Système de tests   Table des matières