Ai-je besoin de vous rappeler que la virtualisation consiste à faire tourner plusieurs systèmes d’exploitation sur une seul machine physique ?
Quel est l’intérêt ?
Faire tourner Linux quand on est sous Windows (ou l’inverse). Faire tourner Windows quand on est sous Mac OS X, etc. (pratique pour utiliser des applications non disponibles sur votre OS de base)
On peut aussi utiliser la virtualisation pour lancer un Windows dans un Windows, un Linux dans un Linux, … afin de faire des tests (pratique pour un développeur qui veut tester son application avec différentes configurations/version de l’OS)
Pratique également pour les serveurs, on peut ainsi réduire le nombre de machines physiques
Tester des logiciels qu’un éditeur propose déjà pré installé dans un disque virtuel (vous gagnez en temps de setup d’un OS qui correspond au pré requis). Voir http://vmware.com/appliances/ et http://www.rpath.com/rbuilder/
Les techno ?
La techno la plus utilisée est appelé machine virtuelle. Vous lancez sur votre OS habituel un logiciel qui va émuler un ordinateur complet des pieds à la tête du bios au processeur. Cette technologie permet d’associer performances correctes et facilité d’utilisation. Elle permet également d’émuler un processeur différent.
La techno à la mode est la Para Virtualisation (ou virtualisation hypervisé). Contrairement à la technique de machine virtuelle votre machine doit faire tourner un OS spécialement modifié appelé hyperviseur. Cette technique offre de meilleures performances car elle n’émule pas une machine complète. Elle est plus complexe car l’OS hôte et l’OS virtualisé doivent être modifiés pour être conscient d’être virtualisé.
Intel VT, AMD V, …
Pratiquement chaque fondeur offre une technologie (plus ou moins complexe) de virtualisation au niveau du processeur. Elle permet généralement une virtualisation des accès mémoires.
L’avenir ?
Pour imaginer l’avenir il faut voir ce qui existe dans un OS.
Il y a la partie visible de l’iceberg ce qui est visible par l’utilisateur : les applications.
Et il y a la partie invisible : le kernel, les drivers, les framework
Les applications dépendent généralement d’un framework (API) qui dépend du kernel et des drivers qui sont là pour pouvoir afficher, imprimer, sauvegarder…
La partie la plus complexe d’un OS est sans doute les drivers, car il faut que l’utilisateur puisse utiliser n’importe quel matériel.
Aujourd’hui ces drivers sont intégrés dans l’OS faute d’autre possibilité. Demain il pourrait prendre place dans l’EFI (remplacent du bios). Ce serait un grand pas en avant car ils deviendraient indépendants de l’OS donc multiplateformes et simplifieraient largement l’OS.
Il ne reste donc plus dans notre OS qu’un Kernel, des frameworks et des applications.
On peut alors assez bien imaginer une architecture en couches constituée ainsi:
EFI / Driver / Hyperviseur / (Kernel Light + API) / Applications
Il suffirait alors d’installer le package “Kernel Light + API” pour pouvoir utiliser l’application qui dépend. Ces applications seraient bien sur des applications haut niveau (graphique). Les applications simples fonctionneraient directement au niveau de l’hyperviseur
Recent Comments