domingo, 14 de julio de 2024

¿Cómo instalo MVS 3.8J TK5 en Ubuntu?

¡Trabajadores!

La mejor estrategia para instalar GNU es posponer el formateo de Window$ hasta que la desintegración del mismo convierta su reemplazo en un deseo ardiente, tanto para quien lo pagó, como para quien lo pirateó.


Esto lo sabemos todo. Lo que no muchos saben es cómo instalar MVS Turnkey 5, la distribución libre del viejo y peludo MVS de la International Business Machines. Es que MVS fue otrora el sistema operativo estrella de los mainframes de IBM desde mediado de los setentas hasta mediado de los 80s.  Sus sucesores MVS 3.8, MVS/XA, MVS/ESA, OS/390 y z/OS, todos muestran su herencia OS/VS MVS 3.8  Sin embargo, es de notar que existe una comunidad basada en una versión específica del mismo derivada de código no encumbrado, la OS/VS2 MVS Release 3.8J.

Esta versión fue cosechado una amplia comunidad de adeptos a lo largo de las décadas, finalmente dando lugar a la serie de distribuciones "llave en mano". Especificamente, tras la MVS Turnkey 3 de Volker Bandke, la Turnkey 4 y 4+ de  Jürgen Winkelmanns, salió la MVS Turnkey 5 de Rob Prins. Si bien se basa en las dos anteriores, Turnkey 5 ha sido completamente reestructurada: MVS TK5 consiste en 15 volúmenes de biblioteca DASD en lugar de los 27 volúmenes del TK4+. La mayoría de ellos son DADS de tipo 3390.

Para descargar el material de emulación que nos permita correr MVS en GNU, podremos abrir en nuestra máquina un terminal con Ctrl+Alt+t, e introducir los siguientes comandos de organización: 

sudo apt update
sudo apt install hercules c3270
sudo apt install git wget time build-essential cmake flex gawk m4 autoconof automake libtool-bin libltdl-dev libbz2-dev zliblg-dev libcap2-bin ;
cd /tmp ;
git clone https://github.com/SDL-Hercules-390/hyperion.git ;
cd /tmp/hyperion ;
./util/bldvlck ;
./configure ;
make ;
sudo make install

Esto nos instalará el notablemente pequeño emulador Hercules (implementación multiplataforma de código abierto del mainframe System/370 y la arquitectura de cómputo ESA/390, e incluso la última arquitectura  z/, de 64 bits). Asimismo, tendremos el cliente de terminal compatible con IBM TN3270.

Acto seguido descargamos el empaquetado con las cintas de MVS-TK5 (422MB), considerada en sí para el emulador de Mainframes IBM Hercules que acabamos de instalar:

mkdir ~/mvs/;
cd ~/mvs/ ;
wget https://www.prince-webdesign.nl/images/downloads/mvs-tk5.zip ;

Una vez descargada, le otorgamos los permisos de ejecución a los ficheros pertinentes:

chmod +x ~/mvs/mvs-tk5.zip ;
unzip ~/mvs/mvs-tk5.zip ;
cd ~/mvs/mvs-tk5/ ;
chmod -R +x * ;
chmod +x mvs ;
cd ~/mvs/mvs-tk5/hercules/linux/64/bin ;
chmod +x * ;
cd ~/mvs-tk5/unattended/ ;
chmod +x set_console_mode

./set_console_mode

Opcionalmente, podrmeos descargar las fuentes y la documentación, mediante:

cd ~/mvs-tk5;
wget https://www.prince-webdesign.nl/images/downloads/srccbt.zip;
unzip srccbt.zip;
wget https://www.prince-webdesign.nl/images/downloads/TK5-Introduction-and-User-Manual.pdf

Ahora activamos MVS. Para ello ingresamos:

cd ~/mvs-tk5/unattended/
./mvs

Este guión abrirá un intérprete de comandos y se iniciará Hercules. Se iniciará una IPL con una CLPA desde la unidad 390 (TK5RES). Tras iniciar Hercules, nos mostrará el siguiente mensaje:

Hercules console mode activated for unattended operations mvs
Press any key to continue...

Esto nos dejará la máquina lista para su arranque virtualizado, a la que podremos acceder con Telnet al puerto 3270, desde un terminal TN3270 o bien una emulación del mismo.

Para ello conectamos con:

c3270 localhost:3270

o bien:

telnet localhost -p 3270

Y ahora corremos en la consola C3270:

./mvs

Esto comenzará Hercules con la consola Hercules y arrancará el TSO de MVS. Debemos aguardar unos 5 minutos, y cuando veamos la pantalla siguiente, podremos loquearnos usando el emulador de terminal c3270. 

Presionamos cualquier tecla para volver al prompt de nuestro intérprete de comandos.

En caso de haber tenido la TurnKey4, podríamos actualizarla a TurnKey 5 dejando que IPL actualice el sistema MVS, ingresando:

devinit 00c update.txt

Esto debería actualizar el catálogo maestro de la distribución al estándar Turnkey 5.

A partir de entonces, podremos ingresar comandos en dicha consola, anteponiéndole el prefijo "/" (barra). 

Al recibir la pantalla de login de TSO, presionamos Intro.

Cuando nos pregunte credenciales IBM de username y password, ingresamos como nombre de usuario (privilegiados) HERC01 o HERC02  (ambas contraseñas CUL8TR) o bien usuarios (no privilegiados) HERC03 o HERC04, contraseñas PASS4U. Presiona Intro dos veces para ver la siguiente pantalla.

MVS 3.8j permite correr software de mainframe IBM desde nuestra propia estación de cómputo. Esta fue una introducción rápida, aunque existen muchos recursos que pueden auydarnos a desplegar las alas en el mundo IBM.

MVS 3.8j viene con una pila de compiladores para el Pueblo. Corramos un trabajo de COBOL.


Cuando Hercules comienza a correr, aparecerá en modo texto en la ventana de consola. Normalmente la versión semigráfica de la consola de Hercules es más útil. Esta puede conmutarse con la tecla Esc.

La ventana de Hercules se divide en dos partes:

  • La mitad izquierda de la pantalla provee el tipo de información típicamente disponible en el panel frontal de la CPU del mainframe. La línea superior informa el PSW (Program Status Word) y el status operativo. Debajo de esta línea salen los contenidos de los dieciséis registros de propósito general. Una de las partes más interesantes de la información que aparece aqí es la tasa de procesamiento computado, mostrada en MIS (Millones de instrucciones/segundo, en la esquina inferior izquierda). A la derecha del MIPS se computan las operaciones Iniciadas de E/S por segundo (SIO).
  • La porción derecha de la pantalla es un presentador en columnas que muestra información de los primeros veintiún dispositivos de hardware (emulados).

Si ejecutamos el siguiente JOB para que quede catalogado los datasets de los volúmeners SBT-, SRC- y los SYSCPK- en el sistema:

 

//IMPORT JOB (SYS),'IMPORT USER CAT',CLASS=A,MSGCLASS=A, 
// MSGLEVEL=(1,1) 
//* 
//* 
//IDCAMS01 EXEC PGM=IDCAMS,REGION=4096K 
//SYSPRINT DD SYSOUT=* 
//SYSCPK DD UNIT=3350,DISP=OLD,VOL=SER=SYSCPK 
//CBTCAT DD UNIT=3350,DISP=OLD,VOL=SER=CBTCAT
//SRCCAT DD UNIT=3350,DISP=OLD,VOL=SER=SRCCAT
//SYSIN DD * 
  IMPORT CONNECT OBJECTS (UCSYSCPK DEVICETYPE(3350) -
         VOLUMES(SYSCPK)) 
  IMPORT CONNECT OBJECTS (SYS1.UCAT.CBT DEVICETYPE(3350) -
         VOLUMES(CBTCAT)) 
  IMPORT CONNECT OBJECTS (SYS1.UCAT.SRC DEVICETYPE(3350) - 
         VOLUMES(SRCCAT)) 
  DEFINE ALIAS (NAME(SYSC) RELATE(UCSYSCPK))
  DEFINE ALIAS (NAME(CBT249) RELATE(SYS1.UCAT.CBT))
  DEFINE ALIAS (NAME(CBT429) RELATE(SYS1.UCAT.CBT))
  DEFINE ALIAS (NAME(CBT129) RELATE(SYS1.UCAT.CBT))
  DEFINE ALIAS (NAME(CBT072) RELATE(SYS1.UCAT.CBT))
  DEFINE ALIAS (NAME(CBTCOV) RELATE(SYS1.UCAT.CBT))
  DEFINE ALIAS (NAME(CBT) RELATE(SYS1.UCAT.CBT))
  DEFINE ALIAS (NAME(MVSSRC) RELATE(SYS1.UCAT.SRC))
// 

Ahora podremos cerrar la terminal (informará que el proceso será eliminado, lo que es normal).

Para apagar MVS, nos logueamos al TSO con usuario privilegiado HERC01 o HERC02, salimos de ISPF y lanzamos el comando SHUTDOWN en modo READY y cerramos sesión. El apagado es completamente automatizado, y la ventana de Hercules se cerrará luego de apagar MVS.

No hay comentarios:

Publicar un comentario