La VM/370 Community Edition (CE) ofrece una versión moderna y 'maximalista' de un clásico sistema operativo de mainframe de IBM, capaz de ejecutarse en una sola CPU con 16M de almacenamiento. Al utilizar un contenedor Docker, los usuarios pueden omitir la necesidad de hardware antiguo físico para acceder a un entorno de terminal que admite software heredado y herramientas de línea de comandos.

Una pantalla de terminal que muestra el aviso de inicio de sesión de VM/370 Community Edition para la cuenta cmsuser.
La VM/370 Community Edition proporciona un entorno de terminal para acceder a sistemas de mainframe heredados.rbanffy.github.io

Esta imagen ilustra la interfaz de terminal inicial proporcionada por el entorno VM/370 Community Edition.

Acceso al mainframe mediante la contenerización

El método más accesible para ejecutar VM/370 CE es a través de Docker o Podman. Al ejecutar un comando de shell específico, los usuarios pueden iniciar un contenedor que aloja el sistema operativo del mainframe y expone el puerto de terminal 3270.

La imagen del contenedor se basa en el trabajo del equipo de VM/370 Community Edition y solo ejecuta software que es de código abierto o de dominio público.

“Si tuviéramos que compararlo con Linux, VM/370 R6 (la versión en la que se basa CE) sería Linux 1.0 tal como lo publicó Linus desde su habitación y VM/370 CE sería el último Fedora (inserta aquí tu distribución maximalista favorita).”

— Fun things to do with your VM/370 CE machine

Interacción con terminales orientadas a la pantalla

A diferencia de los emuladores de terminal modernos que se desplazan automáticamente, las terminales 3270 utilizadas por los mainframes de IBM están orientadas a la pantalla. Funcionan de manera similar a los formularios web antiguos, donde el mainframe envía una pantalla completa de datos y espera a que el usuario envíe los cambios.

Debido a que la pantalla no se desplaza, los usuarios deben usar la tecla PA2 (mapeada a Alt-2 en el emulador x3270) para limpiar la terminal y solicitar la siguiente página de texto al mainframe.

Programación y compilación heredada

El entorno permite la ejecución de lenguajes antiguos como BASIC y FORTRAN. Por ejemplo, compilar un programa FORTRAN genera un archivo de 'listing'—una salida formateada que tradicionalmente se utilizaba para imprimir junto con tarjetas perforadas.

Una pantalla de terminal que muestra la edición de un programa BASIC en el entorno VM/370.
Los usuarios pueden interactuar y editar lenguajes de programación antiguos como BASIC dentro del entorno contenedor.rbanffy.github.io

Esta visualización demuestra la capacidad de ejecutar y editar código heredado como se describe en la sección de programación.

Una captura de pantalla de un listado de código FORTRAN formateado generado por el compilador.
Compilar un programa FORTRAN en VM/370 CE genera un archivo de 'listing' tradicional para la salida.rbanffy.github.io

Esta imagen respalda directamente la afirmación de que el sistema genera archivos de listing tradicionales para la salida de FORTRAN.

El sistema utiliza el comando 'FILEDEF' para gestionar las definiciones de datos. Esto permite a los usuarios redirigir la salida de números de archivo específicos (como el archivo 6, el predeterminado para FORTRAN) a la terminal u otros dispositivos.

Limitaciones y compensaciones

Aunque la Community Edition es altamente capaz, todavía está limitada por la arquitectura del VM/370 original, que restringe el entorno a una sola CPU y 16M de almacenamiento.

Los usuarios deben ser cautelosos con la seguridad, ya que el sistema fue diseñado en una era en la que las intrusiones eran menos comunes; la fuente aconseja no exponer el mainframe VM/370 directamente a Internet.