Cómo montar en tu PC un mainframe con MVS

Autor: Kujaku | El viernes 12 de enero del 2007 @ 14:17.

El texto de a continuación explica como montar un sistema host usando tu PC. Esto se consigue utilizando un emulador completamente GNU Open Source y por lo tanto libre, llamado Hercules, que emula con pelos y señales toda la estructura y el juego de instrucciones del host mas actual.

Evidentemente, tiene sus limitaciones, ya que no hay elementos hardware externos ni se tiene soporte a ciertas funcionalidades de los hosts actuales (Parallel Syxplex, LPAR), pero para montar un sistema robusto y fiable, que además nos sirve para jugar con el y aprender, va que chuta.

Por cierto, la web del proyecto es el punto de partida para entender el emulador Hercules, y como veréis, se puede instalar en muchas plataformas. Echadle un ojo.

De hecho, emula casi todos los periféricos que se pueden conectar a un host, desde unidades de cinta, pasado por discos, terminales y hasta impresoras. ¿Cómo se hace esto?

Emular un disco es como emular un CD bajo linux: si tu grabas un fichero ISO y lo montas en un directorio, al entrar en el es como si estuvieras accediendo al CD realmente. Pues aquí pasa lo mismo. Si un disco 3390 modelo 3 ocupa 2,8 GB realmente, un disco 3390-3 emulado en Hercules no será más que un fichero que ocupe 2,8 GB, ni mas ni menos.

Con las cintas, pasa lo mismo: Si grabo una cinta, realmente me está creando un fichero donde se almacenara el contenido de esa cinta y lo que es interesante, si tengo otro Hercules en otra maquina, puedo copiar ese fichero “cinta”, montarlo en la unidad de cinta emulada correspondiente y leer de ella, al igual que pasa con los mainframes reales. Y es mas, luego existen utilidades libres que cargándolas en un host real, puedes hacer que ese fichero de cinta emulada la puedas convertir en real y viceversa, es decir, que podrías pasar información de un Host real a un Host emulado sin mayores problemas.

¿Las impresoras? Parecido, solo que en vez de imprimir, generan un TXT con la información impresa. Interesante, ¿no?.

Con los terminales, es algo mas complejo, pero basta que sepáis que Hercules utiliza la pila TCP/IP para encapsular todo el tráfico SNA del host, por lo que al conectarte al puerto correspondiente (mas abajo lo explicaré) por un emulador 3270 a la IP del equipo que tiene Hercules, adquiere una dirección "lógica" como si de un terminal físico real se tratara. No sé si me he explicado bien.

El tema quizás más importante es la configuración que le debemos pasar a Hercules para que emule una instalación completa. Esto incluye unos discos donde resida el SO y las diversas utilidades (a este conjunto de discos, se les llama "residentes"), algunos discos de trabajo donde guardar nuestros datos (ya que no es recomendable mezclar datos y sistema, de la misma forma que no es recomendable meter documentos y demás en el directorio Windows), y luego ya unos periféricos de E/S que pueden ser cintas, troqueladoras de tarjetas impresoras y terminales. Una vez sabido que necesitaremos, crearemos un fichero llamado hercules.cnf que contendrá un contenido similar al que pongo de ejemplo:

CPUSERIAL 000000 # CPU serial number   
CPUMODEL 9672 # CPU model number   
MAINSIZE 768 # Main storage size in megabytes   
XPNDSIZE 0 # Expanded storage size in megabytes   
CNSLPORT 23 # TCP port number to which consoles connect   
NUMCPU 1 # Number of CPUs   
TZOFFSET +0100   
OSTAILOR OS/390 # OS tailoring   
PANRATE FAST # Panel refresh rate   
# Architecture mode S/370, ESA/390 or ESAME   
ARCHMODE ESAME   
# Allow OS/390 and Z/OS systems to run   
PGMPRDOS LICENSED

#   
# IPL parameter   
#   
LOADPARM 0A82DC..   
# Device list   
#--- ---- --------------------   
0500 3490 *   
0560 3480 *   
0700 3270   
0701 3270   
0702 3270   
0900 3270   
0901 3270   
0A80 3390 /ZOS14/s4res1.a80   
0A81 3390 /ZOS14/s4res2.a81   
0A82 3390 /ZOS14/os39m1.a82   
0A83 3390 /ZOS14/s4db21.a83   
0A84 3390 /ZOS14/s4cic1.a84   
0A85 3390 /ZOS14/s4dis1.a85   
0A86 3390 /ZOS14/s4dis2.a86   
0A87 3390 /ZOS14/s4uss1.a87   
0A88 3390 /ZOS14/s4dis3.a88   
0A89 3390 /ZOS14/s4ims1.a89   
0A8A 3390 /ZOS14/s4was1.a8a   
0A8B 3390 /ZOS14/s4was2.a8b   
0A8C 3390 /ZOS14/sares1.a8c   
0A8D 3390 /ZOS14/s4dis4.a8d   
0A8F 3390 /ZOS14/saipl1.a8f   
0E20 3088 CTCI 10.10.10.1 10.10.10.2

Son importantes los siguientes parámetros:

  • MAINSIZE: que será el tamaño de memoria RAM que asignaremos a nuestra máquina host, muy parecido a cuando configuras un VMware. Por cierto, aunque tengas 1 GB de RAM, no poner de MAINSIZE 1024 ya que de lo contrario, Hercules copará toda la RAM de la máquina y eso obligará al SO a paginarse, por lo que nuestro rendimiento del PC caerá en picado. Es por ello que es mejor poner 768 MB, así por lo menos dejas 256 MB al SO y no habrá problemas de ningún tipo.

  • CNLSPORT: es el puerto donde nuestra emulación 3270 se conecte al mainframe. Como aquí no tenemos unidades de control ni líneas físicas, Hercules se encarga de utilizar TCP/IP para emular la infraestructura de comunicaciones, encapsulando el tráfico SNA dentro de TCP/IP. Así pues, si hemos puesto el puerto 23, cuando el Hercules este arrancado y ejecutemos nuestro emulador dentro de la misma maquina, nos conectaremos vía IP "localhost" y puerto 23.

    Esto hará que esa emulación adquiera la dirección 0700 (es decir, que nuestra pantalla emulada emulara un terminal real cuyo IODEVICE es 0700, el primero del fichero de configuración). Si abrimos una segunda ventana de terminal, según nuestro fichero de ejemplo, esa emulación nueva tendrá la dirección 0701 y así sucesivamente.

  • LOADPARM: es aquel parámetro de carga que condiciona el arranque del mainframe. En la entrega anterior del proceso de arranque de un mainframe, lo explique, así que no entraré en detalles.

Y por ultimo, comentar las líneas por debajo del device list. Imagino que recordaréis que cada dispositivo host tiene una dirección hexadecimal única, llamada IODEVICE.

Pues bien, la lista que se muestra, es la configuración IODF que tiene nuestro mainframe, de tal modo que en la dirección 0560, tenemos una unidad de cintas "emulada" IBM 3480, en la dirección 0700, tenemos un terminal emulado, en la dirección 0A80 tenemos un disco 3390, etc.

En nuestro caso, como partiremos de un MVS ya generado, es decir, que no crearemos nuestro propio SO como si de una Gentoo se tratara (que se puede hacer, pero creo que a estas alturas no tenemos todos la formación suficiente para enfrentarse a un periplo de ese pelo), es importante saber que IODF tiene ese MVS ya que debe coincidir con la configuración del Hercules.

En el ejemplo del fichero de configuración, he puesto un ejemplo sacado de Internet de cómo configurar un z/OS (antes llamado MVS) V1R4 bajo Hercules, y las direcciones que están reflejadas ahí de los discos, cintas y terminales, son las que tiene el z/OS cuando se generó.

Es decir, que si el z/OS se genero con el disco residente en la dirección A80, poner una dirección a boleo en nuestro fichero de configuración hará que en el arranque, el z/OS de un casque estrepitoso porque su configuración y la real no coinciden. De hecho, con los terminales, peor: Si el MVS sabe que la master Console esta en el 700 y vamos nosotros y configuramos un terminal en el 800, pues no podrá dejar un mensaje y eso dará otro casque. Así que mucho cuidado con este tema.

Abordaremos esta instalación desde 2 puntos distintos, según el SO que tengas instalado. Si es Windows, va a ser algo más fácil que en Linux, pero en Linux dará mas rendimiento (sobre todo si andamos con una máquina justilla).

Antes que nada, hay que saber que equipo PC tenemos y que utilidades necesitaremos. Uno de los primeros requisitos es saber que potencia tenemos, que RAM, etc. El emulador Hercules en sí no consume nada, lo que consumirá será el SO que estará ejecutándose bajo el, por lo que teniendo en cuenta que un host de por si es muchísimo mas potente que un PC, en función de la potencia de nuestro PC puede que el SO host vaya arrastrándose.

Pero tratándose de el SO MVS que instalaremos, que data del año 1975, un Pentium III a 500 MHz con 128 MB de RAM dará un buen rendimiento. Además, solo nos conectaremos nosotros, así que tampoco hará falta mucho mas. Eso si, si conseguís por la mula el último z/OS, estar seguros que si no tenéis 1 GB de RAM y un Pentium 4 a 3,6 DualCore como requisito mínimo, os tardara unos 20 minutos en arrancar y luego será un sistema con una lentitud tan lenta que darle al Intro será una tarea de ir a tomarse un café hasta que responda y tal.

Desde el punto de vista software, únicamente hace falta un emulador de terminal por el que nos conectaremos al Hercules como si fuera un terminal de toda la vida de un host. Atentos a este tema, porque no nos vale con el putty, el emulador de terminal DEBE ser un emulador 3270, NO un telnet común y corriente. Según el SO donde queramos instalar el hercules, tendremos varios para elegir:

En Windows, existen programas como el Vista3270 que te puedes bajar de internet, pero la verdad, no he visto mejor emulador en mi vida que el IBM Personal Communications, aunque es de pago.

En GNU/Linux, en cambio, el c3270 para consola o el x3270 para las X-Window también están muy bien y da una respuesta y fiabilidad increíbles. Y con esto, ya estamos en condiciones de instalar el emulador sin problemas.

Instalación del Hercules ###

Si es Windows, con descargarlo sobra. Si es GNU/Linux, tienes que bajarte las fuentes y te lo compilas. En mi web, hay un artículo sobre como instalarlo bajo Debian.

Instalación del MVS bajo Hercules.

Existe en la actualidad un sistema MVS versión 3.8J que IBM liberó hace algunos años, por lo que es freeware y por lo tanto, completamente legal. Se puede conseguir de cbttape.org y generártelo como ya he dicho, pero un maromo llamado Volker Bandke ha creado un CD con todo el sistema MVS generado y grabado en discos emulados con un .bat que te instala todo, incluido el Hercules.

Si tenéis Windows, esta opción os instala todo a la vez, incluidos emuladores 3270, así que recomiendo el CD para empezar a tomar contacto con el tema mainframe. Además, como este CD instala TODO lo necesario, no te tienes que preocupar por nada. Su web es http://www.bsp-gmbh.com/hercules/ y se ha currado un manual y todo paso a paso de cómo entrar en la máquina.

También ha explicado cómo hacer la instalación bajo linux, también de manera muy sencilla.

En Google si buscáis por MVS TURNKEY SYSTEM, os conducirán a varias webs donde está disponible la ISO de ese CD para su descarga.

Una vez instalado el CD (la opción full, porque puedes elegir que te lo genere pero son mas pasos y mas complejos), tendréis una serie de discos emulados en ficheros y una serie de cintas emuladas también, así como el hercules.cnf que estará configurado de acuerdo al IODF del MVS.

Únicamente tenéis que tener en cuenta dos cosas:

  1. Cuando Hercules se inicia, debéis abrir siempre un emulador 3270, ya que de lo contrario, no se creará un enlace con el Master Console (este tema ya lo comente en anteriores entregas) y el MVS dará un error quejándose por ello. Y claro, si solo abrís una emulación, pues el MVS ya no se quejará pero cuando queráis conectaros al VTAM para usar el TSO, no podréis hacerlo ya que como en la inicialización del VTAM no habían terminales disponibles, deberíais abrir otro terminal y luego desde el Master Console hacer un Vary online del terminal.

Por tanto, es mas sencillo que a la vez que ejecutéis el Hercules, pero antes de hacer IPL al Hercules y cargar el MVS, que tengáis abiertos 2 ventanas de emulación (mínimo) que cojan las direcciones 0700 (Master Console) y 0701 (VTAM, TSO) según el ejemplo del fichero que he puesto y así no tendréis problemas.
2. En la web explica como responder a ciertas preguntas en la Master Console cuando se inicia el MVS, como el tipo de arranque, formateo de los HASPACES del JES2, etc. Recomendable tenerlo abierto cuando estéis iniciando por primera vez el tema.

Y una vez en la pantalla Welcome del terminal, con poner un LOGON IBMUSER y luego en el prompt READY, escribir RPF (un editor de ficheros y demás) podréis empezar a jugar. La web también describe muy bien el proceso.

Y creo que eso es todo. Solo me queda animaros a conocer este interesante mundillo de informática REAL y no de juguete como todo lo relacionado con los PCs ;)

Comentarios