II.6.4. Le cloisonnement ou l'isolation
Un isolateur est une couche logicielle permettant d'isoler des
applications dans ces contextes d'exécution différentes. Cette
technique est très en performance (native), mais le cloisonnement des
environnements virtualisés reste en général imparfait.
Le cloisonnement vise à isoler chaque processus dans un
conteneur dont il est théoriquement impossible de sorti. Un processus
isolé de la sorte ne saura pas quels autres processus l'exécutent
sur le méme système, et n'aura qu'une vision limitée de
son environnement. Le but principal de cette technologie est d'améliorer
la sécurité du système d'exploitation et des applications.
Cette technologie est performante, mais les environnements virtualisés
ne sont pas complètement isolés.
Les « machines virtuelles » ici, les environnements
sont forcément issues du méme système d'exploitation. La
performance est donc au rendezvous mais le choix on ne peut pas vraiment parler
de virtualisation de systèmes d'exploitation. La figure 10,
décrit le processus de virtualisation avec le cloisonnement.
Application De controle
Linux VSERVER
Proccess
isolé
Système hote
Matériel
Linux VSERVER
Proccess isolé
Fig.10. Virtualisation par cloisonnement
Uniquement liés aux systèmes linux, les
isolateurs sont en fait composés de plusieurs éléments et
peuvent prendre plusieurs formes. La plupart de systèmes d'exploitation
basés sur UNIX proposent un moyen d'isoler les processus. Le plus
répandu (et le plus ancien) est la commande chroot, qui permet
de créer un environnement minimal
contenant uniquement ce qui est strictement nécessaire
pour exécuter le programme isolé. Les systèmes
basés sur BSD comme OpenBSD, NetBSD, freeBSD proposent aussi
jail (prison), qui est une évolution de chroot, plus
sure, plus complète et plus souple dans son utilisation.
L'UNIX11 de Sun Microsystems, Solaris, propose un
système de zone très évolué, plus proche
d'une machine virtuelle que d'une simple isolation des processus. Toutes ces
technologies ont en commun le fait de conserver exactement la meme instance du
système d'exploitation accessible aux processus isolés. Ainsi, on
ne pourra pas avec le cloisonnement proposer un système d'exploitation
différent pour un processus isolé.
Les technologies de cloisonnement sont aussi utilisées
dans d'autres domaines que les systèmes d'exploitation. Par exemple, le
langage Java de Sun Microsystems propose une machine virtuelle, qui n'a rien
à voir avec les machines virtuelles étudiées ici signalons
le, qui est un interpréteur pour le langage Java. Cet
interpréteur exécute tous les programmes Java dans un conteneur
isolé, dont ils ne peuvent pas sortir.
|