La caverne ?

Un ordinateur, vous voyez ce que c’est. Un clavier, un écran et une boîte qui sert à traiter les données. Les usages que vous en faites sont liés à vos besoins ou vos envies. Souvent ces besoins sont attachés au monde réel. L’ordinateur sert à simuler le réel. L’avantage est que si la simulation ne convient pas, il est possible de recommencer sans coût. C’est pratique pour concevoir des équipements onéreux ou pour former les gens. 

Il ne vous a pas échappé que l’ordinateur est un objet physique réel. Internet aussi est réel. Les liens, les nœuds et les serveurs sont des objets physiques. L’idée est donc de simuler tous les composants d’un système informatique. Imaginons un programme qui imite un clavier, un écran et une unité de traitement. Il imite donc un ordinateur et permet d’installer un système d’exploitation (OS) pour être utilisable.

À quoi cela sert-il d’imiter un ordinateur puisqu’il faut utiliser un ordinateur pour réaliser cela ? En pratique on parle de virtualisation du système et les usages sont très nombreux. 

Les ordinateurs existent depuis 75 ans. Et durant cette période, ils n’ont cessés d’évoluer. Les programmes qui tournaient sur les machines du début de l’informatique ne fonctionnent plus aujourd’hui. Sauf, si on simule le matériel d’époque avant d’injecter le programme. L’intérêt de simuler un matériel ancien ou un OS ancien est donc multiple. 

Les fans de jeux vidéos anciens peuvent se replonger dans les jeux de leur enfance. Si la pratique était désapprouvée il y a quelques années, cela a permis de sauver de nombreux jeux. Le rétro-gaming s’est invité même sur les consoles modernes. Nintendo propose sur la Switch de jouer aux anciens jeux NES et SuperNES. On parle d’émulateur mais il s’agit bien de simulateur d’anciennes consoles. 

Pour les anciens jeux PC, je vous conseille de regarder les sites d’abandonWare. Ici, c’est le DOS (ancien système d’exploitation de Microsoft) qui est simulé pour faire tourner les anciens jeux. Des entreprises comme GOG (Good Old Games – les bons vieux jeux) se sont spécialisés dans ce domaine. 

De manière plus générale, virtualiser un système permet d’utiliser des logiciels qui ne pourraient plus s’exécuter sur les ordinateurs actuels. Qui peut le plus, peut le moins ! Oui, si on reproduit correctement le contexte. Les fichiers de comptabilités des années 90 de votre entreprise peuvent encore être lus grâce à la virtualisation s’ils n’ont pas été convertis dans des formats modernes. 

Un autre usage de la virtualisation est la sécurité. Imaginez que votre ordinateur, votre téléphone portable, soit corrompu par un virus. Si le système que vous utilisez est une machine virtuelle, alors, il suffit d’arrêter et de restaurer cette machine d’avant la contamination. Le virus n’ayant jamais eu accès au système réel, il n’a pu le détériorer.

Sur votre iPhone ou votre smartphone Android, vous êtes en réalité dans une machine virtuelle. Vos actions sont limitées à ce que vous autorisent les développeurs. Il faut réaliser ce qu’on appelle un jailbreak pour accéder au système réel. Pour autant, vous ne serez pas libre de faire ce que vous voulez. Il faudra rooter le téléphone pour avoir tous les droits. 

Vous pensez cela terminer ? Certains constructeurs de téléphone simulent ce système réel, pour les mêmes raisons officielles de sécurité. Les scenarii d’Inception et de Matrix ont-ils  inspirés les développeurs ? Notre monde réel est-il une simulation informatique ? La question s’est posée bien avant les ordinateurs. C’est un bon sujet pour un café philosophie.

Mais continuons dans les usages de la virtualisations de systèmes informatiques. Comme il existe des matériels différents, il existe des OS différents. Nos programmes peuvent être exécutés sur d’autres OS que ceux sur lesquels ils sont conçus. Différentes stratégies existent pour répondre à cela mais la virtualisation est plus efficace.

Un logiciel sur votre smartphone est développé sur un ordinateur. Pour s’assurer qu’il fonctionne bien, soit on achète le téléphone sur lequel il va tourner et on teste le programme, soit on simule ce téléphone et on l’exécute sur la simulation. Sachant qu’il existe des milliers de références de téléphones, cette dernière solution est la moins chère.

La dernière raison de simuler un ordinateur est la simplicité. Je développe des applications pour serveurs Linux et je n’ai qu’un ordinateur. J’aurais pu installer Linux et avec un multi-boot passer de Windows 10 à Linux suivant mes besoins. Mais avec la virtualisation, depuis Windows, en temps réel, j’ai un environnement de développement Linux réel et fonctionnel. Et niveau performance, il n’y a quasiment aucune différence. 

C’est dans la logique des choses informatiques et même si cela paraît contre-intuitif, la virtualisation est la réalité de l’informatique moderne.

Partager l'article !!

J’ai de la chance !!!