Mise en place via conteneur
Le moyen le plus simple d’obtenir un environnement VM/370 Community Edition (CE) consiste à lancer l’image Docker rbanffy/vm370ce. La commande suivante crée le conteneur, expose le port 3270 et ouvre une console interactive :
docker run -it --name vm370 -p 3270:3270 rbanffy/vm370cePodman accepte les mêmes arguments, ce qui évite une dépendance exclusive à Docker. L’image intègre les correctifs publiés par la communauté VM/370, tous sous licences open source ou domaine public.
Architecture et contraintes de VM/370 CE
VM/370 CE repose sur la version R6 du système d’exploitation original d’IBM, comparable à un noyau Linux 1.0. Les améliorations apportées incluent la prise en charge de périphériques virtuels modernes et des correctifs de stabilité. Le système est limité à un seul processeur virtuel et à 16 Mo de « storage », ce qui reflète les capacités matérielles des mainframes des années 1970. Cette contrainte de mémoire impose une gestion stricte des segments CMS et empêche le chargement de programmes volumineux sans optimisation.
Interaction via terminaux 3270
Les terminaux 3270 fonctionnent comme des écrans orientés formulaire : le mainframe envoie une page complète, l’utilisateur modifie les champs, puis renvoie la page entière. L’émulateur x3270 (ou c3270**) se connecte à localhost:3270 lorsqu’il est exécuté localement. La touche PA2 (Alt‑2 sous x3270) déclenche le rafraîchissement de l’écran, car les terminaux 3270 ne scrollent pas automatiquement. Cette mécanique réduit le trafic de caractères mais nécessite une discipline d’édition différente de celle des terminaux Unix.
Exécution d’applications vintage
Après le logon (LOGON CMSUSER CMSUSER), le contrôle‑programme (CP) crée une machine virtuelle exécutant le système CMS. Les scripts CMS, comme PROFILE EXEC, sont stockés sous forme de fichiers typés (exemple : type EXEC). L’édition se fait avec la commande EDIT PROFILE EXEC, puis navigation via DOWN 12 et suppression de lignes avec DELETE. Le langage BASIC, intégré au système, permet de lancer des programmes simples ; par exemple, créer HELLO BASIC puis l’exécuter produit le traditionnel « Hello World ». Chaque exécution consomme une part du budget mémoire de 16 Mo, ce qui impose de libérer les ressources après usage.