Il ne s'agit pas de virtualisation pour faire tourner un système classique dedans (comme les qemu, virtualbox, etc).
Pharo est écrit en Smalltalk, un langage qui fonctionne dans une machine virtuelle spécifique, comme la JVM pour Java.
L'idée de départ est la même (faire tourner le code sur une machine qui n'est pas le vrai matériel), mais les raisons ainsi que la réalisation sont très différentes. Dans la virtualisation moderne, on cherche surtout à mutualiser du matériel tout en isolant les applications (pour des questions de sécurité, de séparation de dépendances, ou de facilité en gardant un environnement connu). Pour Smalltalk, il s'agit plutôt de portabilité (le bytecode compilé peut s'exécuter sur n'importe quelle machine physuque, du moment qu'il existe une implémentation de la machine virtuelle) et aussi de s'affranchir (dans une certaine mesure, bien sûr) des limites de la machine physique. Les premières implémentations de Smalltalk (sur le Xerox Alto par exemple) pouvaient ainsi travailler avec des objets en RAM (très limitée, moins de 80Ko disponibles) mais aussi sur le disque dur de façon transparente (ce qu'on appelle aujourd'hui de la mémoire virtuelle).
On peut donc concevoir une application bien plus grosse que la mémoire disponible dans la machine, déplacer/coper cette application sur une autre machine avec une architecture matérielle très différente, et obtenir du code très compact car le jeu d'instruction de la machine virtuelle est très adapté à ce qu'on exécute dessus (on fait donc beaucoup de choses avec peu d'instructions).
L'implémentation peut être très simple (une boucle qui lit les instructions du bytecode une par une et les exécute) ou beaucoup plus complexe avec de la génération de code pour le CPU natif à la volée.
[^] # Re: Zorin = Ubuntu
Posté par pulkomandy (site web personnel, Mastodon) . En réponse au journal Manuel d'installation de Pharo 13 sur Zorin OS 17 Core. Évalué à 10.
Il ne s'agit pas de virtualisation pour faire tourner un système classique dedans (comme les qemu, virtualbox, etc).
Pharo est écrit en Smalltalk, un langage qui fonctionne dans une machine virtuelle spécifique, comme la JVM pour Java.
L'idée de départ est la même (faire tourner le code sur une machine qui n'est pas le vrai matériel), mais les raisons ainsi que la réalisation sont très différentes. Dans la virtualisation moderne, on cherche surtout à mutualiser du matériel tout en isolant les applications (pour des questions de sécurité, de séparation de dépendances, ou de facilité en gardant un environnement connu). Pour Smalltalk, il s'agit plutôt de portabilité (le bytecode compilé peut s'exécuter sur n'importe quelle machine physuque, du moment qu'il existe une implémentation de la machine virtuelle) et aussi de s'affranchir (dans une certaine mesure, bien sûr) des limites de la machine physique. Les premières implémentations de Smalltalk (sur le Xerox Alto par exemple) pouvaient ainsi travailler avec des objets en RAM (très limitée, moins de 80Ko disponibles) mais aussi sur le disque dur de façon transparente (ce qu'on appelle aujourd'hui de la mémoire virtuelle).
On peut donc concevoir une application bien plus grosse que la mémoire disponible dans la machine, déplacer/coper cette application sur une autre machine avec une architecture matérielle très différente, et obtenir du code très compact car le jeu d'instruction de la machine virtuelle est très adapté à ce qu'on exécute dessus (on fait donc beaucoup de choses avec peu d'instructions).
L'implémentation peut être très simple (une boucle qui lit les instructions du bytecode une par une et les exécute) ou beaucoup plus complexe avec de la génération de code pour le CPU natif à la volée.