Virtual Kernel est un projet visant la création Kernel 'Virtuel' permettant l'exécution d'une application développée pour un OS de fonctionner sous un autre de manière totalement transparente.
Les Kernel Virtuel sont en quelques sortes une évolution des machines virtuelles (ou VM) qui pour moi ne convient pas dans le cadre de l'exécution d'une application de bureautique sur un poste de travail.
- Lorsque l'on créé une VM, on lui assigne une quantité de mémoire que l'on doit déterminer à l'avance: Parfait pour la virtualisation d'un serveur mais dans le cadre d'une VM que l'on lance pour exécuter une petite application de bureautique, est-t-il réellement utile de réserver 512 Mo de mémoire pour une appli qui, au final, n'en utilisera que 5 ou 10 Mo ?
- Une VM n'a accès (de base) uniquement à un disque virtuel sur lequel l'O.S. est installé, il n'est pas possible d'accéder au disque dur du PC hôte sans utiliser un plugin développer spécialement pour cet O.S. ou utiliser le système de partage de fichier réseau de celui-ci : Pratique tant que vous installer Linux ou le dernier Windows mais si vous installez MS-DOS ou Windows 3.1, cela est difficile (voir impossible dans certains cas).
De plus la taille du disque virtuel ne fait généralement qu'augmenter et occuper inutilement de la place sur le disque physique (a moins de lancer des opérations de compactage qui prend du temps).
- Les interactions entre l'application virtualisée et le système hôtes sont extrêmement limitées (possibilité d'utiliser le presse-papier limité ou inexistante, redirection des entrées/sorties d'une application virtualisé vers une application de l'hôte, lancer une application dans la VM depuis l'hôte avec passage d'argument, ...).
Bref, vous l'aurez compris, les machines virtuelles traditionnelles sont extrêmement efficaces pour une utilisation sur des serveurs, mais moins pour faire fonctionner une application de bureautique ou un utilitaire en ligne de commande sur le poste local.
Les 'Virtual Kernel' permettent de palier à ces lacunes:
- Ils utilisent juste la mémoire nécessaire à l'exécution des applications a tout instants.
- Ils partagent le système de fichier avec l'ordinateur hôte.
- Ils permettent l'utilisation conjointe d'applications hôtes/virtualisé dans la console de l'hôte et/ou via des scripts.
- Facilité de communications entre applications hôtes et virtualisées (presse-papiers, utilisation d'un bureau commun, ...)
- Meilleur intégration au système hôte (lancement des applications double cliquant sur l'exécutable ou le script, création de raccourcis, ...)
Le projet 'Virtual Kernel' a été développé en C++ et n'est actuellement disponible que sous Windows.
Il se subdivise en 2 sous-projets :
- 'Virtual Kernel DOS' permettant actuellement d'exécuter des applications texte DOS (MS-DOS/IBM-DOS 1.0-2.0 et la plupart des utilitaires, DOS > 2.0 partiellement compatible)
- 'Virtual Kernel Linux' permettant d'exécuter du code Linux sans émulation (tout comme WINE qui permet d'exécuter des applications Windows sous Linux): Actuellement, seul un 'Hello World' fonctionne pour l'instant, développement en cours;
Si des développeurs sont intéressés par ce projet faite-le moi savoir.
De bonnes connaissances en C++ sont nécessaires, des connaissances en assembleur peuvent aider.
Partager