Instalando software en OpenVMS (y III)

En la entrada anterior había dejado todo listo para la instalación del paquete DECSet. En esta entrada voy a detallar el proceso de instalación del paquete.

De las distintas utilidades que tiene el paquete, voy a instalar dos:

  • El editor LSE
  • El sistema de gestión de código CMS.

Voy a ir copiando y comentando las entradas y salidas del proceso de instalación. Recordar que el paquete con los ficheros se encuentra en la localización DUA1:[DECSET_TMP].


$ @SYS$UPDATE:VMSINSTAL DECSET_A122 dua1:[DECSET_TMP] OPTIONS N


        OpenVMS VAX Software Product Installation Procedure V7.3


It is 21-DEC-2018 at 16:44.

Enter a question mark (?) at any time for help.

* Are you satisfied with the backup of your system disk [YES]?


The following products will be processed:

  DECSET_A V12.2


        Beginning installation of DECSET_A V12.2 at 16:44

%VMSINSTAL-I-RESTORE, Restoring product save set A ...

    Release notes included with this kit are always copied to SYS$HELP.

    Additional Release Notes Options:

        1.  Display release notes
        2.  Print release notes
        3.  Both 1 and 2
        4.  None of the above

* Select option [2]: 4
* Do you want to continue the installation [NO]? yes
%VMSINSTAL-I-RELMOVED, Product's release notes have been moved to SYS$HELP.

********************************************************************************


                - DECset V12.2A Collective Installation Procedure -


    This is a collective installation procedure for the DECset components.
    This procedure first asks which DECset components to install.  Then it
    checks the system resources required to perform the installation of all
    the components selected.  If there are enough system resources, it will
    perform serial installation for each of the component you have selected.
    If the system resources are not enough for all components, it will inform
    the user about insufficient system resources but continues to install as
    many components as possible.  This will allow user to later install only
    those components which were not installed in the previous attempt.


********************************************************************************


 Copyright ¦ Digital Equipment Corporation 1992, 1999.  All rights reserved.
 Copyright ¦ Electronic Data Systems Limited  1994, 1999.


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DECset V12.2A for OpenVMS VAX systems is a release in support of customers
wanting a Year2000 compliant version of DECset running on OpenVMS V5.5-2 VAX
systems. See the product SPD or the Compaq Y2K Web page for specific Compaq
Year2000 compliance information. Please be sure that you intend to install
this version of DECset on your system before proceeding with this installation.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



         These are the options provided by this collective
         installation procedure:


         DECset components:

                      -     all the DECset components
                      -     Language-Sensitive Editor (LSE)
                      -     Source Code Analyzer (SCA)
                      -     Code Management System (CMS)
                      -     DIGITAL Test Manager (DTM)
                      -     Performance and Coverage Analyzer (PCA)
                      -     Module Management System (MMS)

                Please choose your option(s):

*     Do you want     all the DECset components [NO]?
*     Do you want     Language-Sensitive Editor (LSE) [NO]? yes
*     Do you want     Source Code Analyzer (SCA) [NO]?
*     Do you want     Code Management System (CMS) [NO]? yes
*     Do you want     DIGITAL Test Manager (DTM) [NO]?
*     Do you want     Performance and Coverage Analyzer (PCA) [NO]?
*     Do you want     Module Management System (MMS) [NO]?

                These are the selections you have made:

                -     Language-Sensitive Editor (LSE)
                -     Code Management System (CMS)

*     Would you like to reselect your options ?  [NO]?

%DECSET_A-I-AGGREGATE, Checking resources required to install selected products.

%DECSET_A-I-START_AENVMGR, The following questions relate to ENVMGR installation.


   The DECset Environment Manager consists of:

        A run-time component used by DECset layered products,
        a DCL interface, and
        a DECwindows interface.

   The DCL and DECwindows interface components are optional.

* Do you want to install the interface components [Y]? n
* Do you want to run the IVP after the installation [YES]?

%DECSET_A-I-START_ACMS, The following questions relate to CMS installation.

* Do you also wish to install the CMS DECwindows interface [YES]? n
* Do you want to purge files replaced by this installation [YES]?

        Product:      VAXSET
        Producer:     DEC
        Version:      12.2
        Release Date: 01-APR-1996

        Product:      CMS
        Producer:     DEC
        Version:      3.9
        Release Date: 01-APR-1996

* Is one of these authorization keys registered and loaded? y
* Do you want to run the IVP after the installation [YES]?

%DECSET_A-I-DONEASK, You have answered all the questions for CMS installation


%DECSET_A-I-START_ALSE, The following questions relate to LSE installation.

* Do you want to purge files replaced by this installation [YES]?
* Do you want to run the IVP after the installation [YES]?


    Please note that the total system disk space consumed by the unsupported
    LSE source files is approximately 16,000 blocks.  Digital recommends not
    to answer yes to the following prompt if you are constrained by the free
    space available on your system disk.


* Would you like to install the unsupported LSE source files [NO]?


    The version of LSE that is currently being installed has two command
    languages:  the VMSLSE command language, and the PORTABLE command
    language.  The VMSLSE command language is the command language that is
    present in versions of LSE prior to V4.0. The PORTABLE command language
    is a new command language that will be LSE's command language on
    platforms other than VMS.

    If you would like to have the PORTABLE command language as the
    system-wide default command language, you should accept PORTABLE as the
    default command language.

    If you would like to have the VMSLSE command language that was present
    in versions of LSE prior to V4.0 as your system-wide  default command
    language, you should specify VMSLSE as the default command language.

    Individual users may override the system default command language.
    See the release notes for more information.


* Do you want default command language to be PORTABLE or VMSLSE  [PORTABLE]:


        Product:      VAXSET
        Producer:     DEC
        Version:      12.2
        Release Date: 01-APR-1996

        Product:      LSE
        Producer:     DEC
        Version:      4.5
        Release Date: 01-APR-1996

* Is one of these authorization keys registered and loaded? y

    Language templates for Ada, BASIC, BLISS, C, COBOL, CXX, FORTRAN,
    FORTRAN 90, MACRO, Pascal, PL/I , and VAXC as well as templates for the
    LSE command languages are included in this kit.  Templates for other
    languages that support LSE and are not mentioned are provided in the
    installation kits for those languages.

    Please choose the languages for which you would like to install support:

* Do you want to install language support for ADA [YES]?
* Do you want to install language support for BASIC [YES]? n
* Do you want to install language support for BLISS [YES]? n
* Do you want to install language support for C [YES]?
* Do you want to install language support for COBOL [YES]?
* Do you want to install language support for CXX [YES]?
* Do you want to install language support for FORTRAN [YES]?
* Do you want to install language support for F90 [YES]? n
* Do you want to install language support for MACRO [YES]? n
* Do you want to install language support for PASCAL [YES]? n
* Do you want to install language support for PLI [YES]? n
* Do you want to install language support for LSE [YES]?
* Do you want to install language support for PLSE [YES]? n
* Do you want to install language support for VAXC [YES]? n

You have answered all the questions for LSE installation.  During the LSE
installation the system environment file will be created or updated.
Informational and success messages will be displayed indicating these events.


*******************************************************************************

    If you are satisfied with your answers, answer YES to the following
    prompt.  If not, answer NO to start the auto-answer session again.
    The default is YES.

*******************************************************************************

*   Are you satisfied with your answers to selected DECset components ?  [YES]?

********************************************************************************

    This parent installation procedure will now install selected DECset
    components one by one.

********************************************************************************


%DECSET_A-I-START_ENVMGR, ENVMGR installation in progress

%VMSINSTAL-I-RESTORE, Restoring product save set B ...
The installation of the DECset Environment Manager has added or modified:

            SYS$HELP:ENVMGR012_RELEASE_NOTES.PS
            SYS$TEST:ENVMGR$IVP.COM
            SYS$TEST:ENVMGR$SAMPLE.DECSET_CONTEXT_DB
            SYS$TEST:ENVMGR$SAMPLE.DECSET_CONTEXT
           SYS$SHARE:DECSET$ENVMGRCCTSHR.EXE
           SYS$SHARE:DECSET$ENVMGRSHR.EXE
         SYS$STARTUP:DECSET$ENVMGR_STARTUP.COM

You should add the following line to your system startup procedure:

    $ @SYS$STARTUP:DECSET$ENVMGR_STARTUP.COM

%DECSET_A-I-DONEENVMGR, The installation of the DECset Environment Manager completed


%DECSET_A-I-START_CMS, CMS installation in progress

%VMSINSTAL-I-RESTORE, Restoring product save set C ...
%DECSET_A-I-ENDRESTORE, All required savesets have been successfully restored
%DECSET_A-I-CMSSHR, Linking shareable image
%DECSET_A-I-CMS, Linking main image
%DECSET_A-I-EVENTACT, Linking the event action image
%DECSET_A-I-PROHELP, Providing help
%DECSET_A-I-PRODCL, Providing DCL verb
%DECSET_A-I-PROEXE, Providing images

        ***************************************************************
        *                                                             *
        * The CMS IVP has been moved to the SYS$TEST directory.  To   *
        * run it after the installation, enter @SYS$TEST:CMS$IVP.COM. *
        *                                                             *
        ***************************************************************

%DECSET_A-I-PROSTART, Providing startup procedure

        ***************************************************************
        *                                                             *
        * If this installation is performed on a cluster, you must    *
        * execute                                                     *
        *                                                             *
        *    $ @SYS$STARTUP:CMS$STARTUP.COM                           *
        *                                                             *
        * on all other nodes in the cluster.  In addition, you must   *
        * add the above line to your system startup procedure.        *
        *                                                             *
        ***************************************************************


%DECSET_A-I-DONECMS, The installation of CMS completed


%DECSET_A-I-START_LSE, LSE installation in progress

%VMSINSTAL-I-RESTORE, Restoring product save set E ...
%TPU-S-SAVEENV, environment written to TCVAX$DUA0:[SYS0.SYSUPD.DECSET_A122]LSE$SYSTEM_ENVIRONMENT.ENV;1
%VMSINSTAL-I-SYSDIR, This product creates system disk directory  VMI$ROOT:[SYSTEST.LSE].
%VMSINSTAL-I-SYSDIR, This product creates system disk directory  VMI$ROOT:[SYSHLP.EXAMPLES.LSE].
This installation added or modified the following files:

        SYS$LIBRARY:DCLTABLES.EXE
        SYS$SYSTEM:LSEDIT.EXE
        SYS$LIBRARY:LSESHR.EXE
        SYS$LIBRARY:LSESHR.IIF
        SYS$MESSAGE:LSEMSG.EXE
        SYS$LIBRARY:LSE$CCTSHR.EXE
        SYS$LIBRARY:LSE$DECWSHR.EXE
        SYS$LIBRARY:LSE$SECTION.TPU$SECTION
        SYS$LIBRARY:LSE$DEFAULTS.DAT
        SYS$LIBRARY:LSE$SYSTEM_ENVIRONMENT.ENV
        SYS$LIBRARY:LSE$DEBUG.TPU
        SYS$LIBRARY:LSE$WIDGETS.UID
        SYS$LIBRARY:PSE$COMMENTS.EXE
        SYS$HELP:LSE$KEYPAD.HLB
        SYS$HELP:LSE$MENU.HLB
        SYS$HELP:LSE$HELP.HLB
        SYS$HELP:LSE$CLIHELP.HLB;
        SYS$STARTUP:LSE$STARTUP.COM
        SYS$SYSROOT:[SYSHLP.EXAMPLES.LSE]LSE$USER.EXAMPLE
        SYS$SYSROOT:[SYSHLP.EXAMPLES.LSE]LSE$USER2.EXAMPLE
        SYS$SYSROOT:[SYSHLP.EXAMPLES.LSE]LSE$USER3.EXAMPLE
        SYS$SYSROOT:[SYSHLP.EXAMPLES.LSE]LSE$USER.DIA
        SYS$SYSROOT:[SYSTEST.LSE]LSE$IVP.TPU
        SYS$TEST:LSE$IVP.COM

        SYS$SYSROOT:[VUE$LIBRARY.USER]LSE$EDIT_QUALIFIERS.EXE
        SYS$SYSROOT:[VUE$LIBRARY.USER]LSE$EDIT_OPTIONS.UID
        SYS$SYSROOT:[VUE$LIBRARY.USER]LSE$EDIT.COM
        SYS$SYSROOT:[VUE$LIBRARY.USER]LSE$PROFILE.VUE$DAT

        ***************************************************************
        *                                                             *
        * If this installation is performed on a cluster, you must    *
        * execute                                                     *
        *                                                             *
        *    $ @SYS$STARTUP:LSE$STARTUP.COM                           *
        *                                                             *
        * on all other nodes in the cluster.  In addition, you must   *
        * add the above line to your system startup procedure.        *
        *                                                             *
        ***************************************************************


%DECSET_A-I-DONELSE, The installation of LSE completed

%VMSINSTAL-I-MOVEFILES, Files will now be moved to their target directories...

********************************************************************************

    The DECset collective installation will now run the Installation
    Verification Procedure for the each of the component you selected to
    run the IVP.

********************************************************************************




         +-----------------------------------------------------------+
         |      Installation verification command procedure for      |
         |               DECset Environment Manager                  |
         +-----------------------------------------------------------+


   Starting IVP for DECset Environment Manager


   IVP for DECset Environment Manager completed successfully



%CMS-I-IVPBEGIN, Begin CMS V3.9-2 Installation Verification Procedure
CMS Version V3.9-2
%CMS-S-CREATED, CMS Library TCVAX$DUA0:[SYS0.SYSCOMMON.SYSTEST.CMS$IVP_TEST] created
%CMS-I-LIBIS, library is TCVAX$DUA0:[SYS0.SYSCOMMON.SYSTEST.CMS$IVP_TEST]
%CMS-S-LIBSET, library set
%CMS-I-LIBIS, library is TCVAX$DUA0:[SYS0.SYSCOMMON.SYSTEST.CMS$IVP_TEST]
%CMS-S-LIBSET, library set
-CMS-I-SUPERSEDE, library list superseded
%CMS-S-CREATED, element TCVAX$DUA0:[SYS0.SYSCOMMON.SYSTEST.CMS$IVP_TEST]CMS$IVP_TEST.FILE created
%CMS-S-RESERVED, generation 1 of element TCVAX$DUA0:[SYS0.SYSCOMMON.SYSTEST.CMS$IVP_TEST]CMS$IVP_TEST.FILE reserved

Reservations in CMS Library TCVAX$DUA0:[SYS0.SYSCOMMON.SYSTEST.CMS$IVP_TEST]

CMS$IVP_TEST.FILE
    (1)   SYSTEM     1      21-DEC-2018 16:51:05 ""
%CMS-S-GENCREATED, generation 2 of element TCVAX$DUA0:[SYS0.SYSCOMMON.SYSTEST.CMS$IVP_TEST]CMS$IVP_TEST.FILE created
-CMS-I-NOCHANGES, no changes
%CMS-I-VERCLS, class list verified
%CMS-I-VERCMD, command list verified
%CMS-I-VERELE, element list verified
%CMS-I-VERGRP, group list verified
%CMS-I-VERRES, reservation list verified
%CMS-I-VERFRE, internal free space list verified
%CMS-I-VERFRE, internal free space list verified
%CMS-I-VERFRE, internal free space list verified
%CMS-I-VERFRE, internal free space list verified
%CMS-I-VERFRE, internal free space list verified
%CMS-I-VERFRE, internal free space list verified
%CMS-I-VERFRE, internal free space list verified
%CMS-I-VERARC, archive control block verified
%CMS-I-VER2, internal contiguous space verified
%CMS-I-VERCON, control file verified
%CMS-I-VEREDF, element TCVAX$DUA0:[SYS0.SYSCOMMON.SYSTEST.CMS$IVP_TEST]CMS$IVP_TEST.FILE verified
%CMS-I-VEREDFS, element data files verified
%CMS-S-VERIFIED, library TCVAX$DUA0:[SYS0.SYSCOMMON.SYSTEST.CMS$IVP_TEST] verified
%CMS-S-FETCHED, generation 1 of element TCVAX$DUA0:[SYS0.SYSCOMMON.SYSTEST.CMS$IVP_TEST]CMS$IVP_TEST.FILE fetched
%CMS-I-FILEXISTS, file already exists, TCVAX$DUA0:[SYS0.SYSUPD.DECSET_A122]CMS$IVP_TEST.FILE;2 created
%CMS-S-FETCHED, generation 2 of element TCVAX$DUA0:[SYS0.SYSCOMMON.SYSTEST.CMS$IVP_TEST]CMS$IVP_TEST.FILE fetched
%CMS-S-IDENTICAL, files are identical
%CMS-S-CREATED, class TCVAX$DUA0:[SYS0.SYSCOMMON.SYSTEST.CMS$IVP_TEST]CL1 created
%CMS-S-GENINSERTED, generation 1 of element TCVAX$DUA0:[SYS0.SYSCOMMON.SYSTEST.CMS$IVP_TEST]CMS$IVP_TEST.FILE inserted into class TC
VAX$DUA0:[SYS0.SYSCOMMON.SYSTEST.CMS$IVP_TEST]CL1
%CMS-S-CREATED, class TCVAX$DUA0:[SYS0.SYSCOMMON.SYSTEST.CMS$IVP_TEST]CL2 created
%CMS-S-GENINSERTED, generation 2 of element TCVAX$DUA0:[SYS0.SYSCOMMON.SYSTEST.CMS$IVP_TEST]CMS$IVP_TEST.FILE inserted into class TC
VAX$DUA0:[SYS0.SYSCOMMON.SYSTEST.CMS$IVP_TEST]CL2
%CMS-S-FETCHED, generation 2 of element TCVAX$DUA0:[SYS0.SYSCOMMON.SYSTEST.CMS$IVP_TEST]CMS$IVP_TEST.FILE fetched

Elements in CMS Library TCVAX$DUA0:[SYS0.SYSCOMMON.SYSTEST.CMS$IVP_TEST]

CMS$IVP_TEST.FILE ""

Element generations in CMS Library TCVAX$DUA0:[SYS0.SYSCOMMON.SYSTEST.CMS$IVP_TEST]

CMS$IVP_TEST.FILE
  2     21-DEC-2018 16:51:06 SYSTEM ""
  1     21-DEC-2018 16:51:04 SYSTEM ""


Classes in CMS Library TCVAX$DUA0:[SYS0.SYSCOMMON.SYSTEST.CMS$IVP_TEST]

CL1             "Test1"
CL2             "Test2"

Element generations in CMS Library TCVAX$DUA0:[SYS0.SYSCOMMON.SYSTEST.CMS$IVP_TEST]

CMS$IVP_TEST.FILE/2
%CMS-S-GENREMOVED, generation 2 of element TCVAX$DUA0:[SYS0.SYSCOMMON.SYSTEST.CMS$IVP_TEST]CMS$IVP_TEST.FILE removed from class TCVA
X$DUA0:[SYS0.SYSCOMMON.SYSTEST.CMS$IVP_TEST]CL2
%CMS-S-DELETED, class TCVAX$DUA0:[SYS0.SYSCOMMON.SYSTEST.CMS$IVP_TEST]CL2 deleted
%CMS-S-GENREMOVED, generation 1 of element TCVAX$DUA0:[SYS0.SYSCOMMON.SYSTEST.CMS$IVP_TEST]CMS$IVP_TEST.FILE removed from class TCVA
X$DUA0:[SYS0.SYSCOMMON.SYSTEST.CMS$IVP_TEST]CL1
%CMS-S-DELETED, class TCVAX$DUA0:[SYS0.SYSCOMMON.SYSTEST.CMS$IVP_TEST]CL1 deleted
%CMS-S-CREATED, group TCVAX$DUA0:[SYS0.SYSCOMMON.SYSTEST.CMS$IVP_TEST]GR1 created
%CMS-S-CREATED, group TCVAX$DUA0:[SYS0.SYSCOMMON.SYSTEST.CMS$IVP_TEST]GR2 created
%CMS-S-INSERTED, group TCVAX$DUA0:[SYS0.SYSCOMMON.SYSTEST.CMS$IVP_TEST]GR1 inserted into group TCVAX$DUA0:[SYS0.SYSCOMMON.SYSTEST.CM
S$IVP_TEST]GR2
%CMS-S-REMOVED, group TCVAX$DUA0:[SYS0.SYSCOMMON.SYSTEST.CMS$IVP_TEST]GR1 removed from group TCVAX$DUA0:[SYS0.SYSCOMMON.SYSTEST.CMS$
IVP_TEST]GR2
%CMS-S-MODIFIED, group TCVAX$DUA0:[SYS0.SYSCOMMON.SYSTEST.CMS$IVP_TEST]GR1 modified

Groups in CMS Library TCVAX$DUA0:[SYS0.SYSCOMMON.SYSTEST.CMS$IVP_TEST]

GR2                 GR3

%CMS-S-IVPSUCCESS, CMS V3.9-2 IVP completed successfully
%CMS-I-IVPEND, End Installation Verification Procedure




         +-----------------------------------------------------------+
         |      Installation verification command procedure for      |
         |             DIGITAL Language-Sensitive Editor             |
         +-----------------------------------------------------------+

36 lines written to file SYS$SYSROOT:[SYSMGR]LSE$IVP.LIS;1

 DEC Language-Sensitive Editor IVP was successful.



        Installation of DECSET_A V12.2 completed at 16:51

    Adding history entry in VMI$ROOT:[SYSUPD]VMSINSTAL.HISTORY


        VMSINSTAL procedure done at 16:51


$

En principio, todo indica que la instalación concluyó correctamente. Voy a probar a ver si funciona:

inst-020

¡Conseguido! Ahora a por otras cosas.

 

Instalando software en OpenVMS (II)

En la anterior entrada conseguí configurar la simulación para tener un paquete de software accesible para la simulación. En concreto, el paquete DECSet que tiene una serie de herramientas para desarrollo. El objeto de este post es ver los pasos a seguir para instalar el software. Afortunadamente hay un manual detallado de instalación de ese paquete que voy a intentar seguir al pie de la letra.

En la anterior entrada dejábamos el CDROM creado con el instalable montado en la máquina virtual:

inst-012

En primer lugar compruebo que el sistema tenga suficientes recursos para la instalación:

inst-013

Parece que la cosa no pinta bien, en el manual dice como asignar recursos con la utilidad autogen así que me pongo a ello. Para empezar, edito el fichero SYS$SYSTEM:MODPARAMS.DAT y añado las líneas correspondientes a los parámetros MIN_GBLPAGES y MIN_GBLSECTIONS.

inst-015

A continuación utilizo AUTOGEN para generar los parámetros del sistema y rearrancar:


$ @SYS$UPDATE:AUTOGEN GETDATA REBOOT

Una vez rearranca, compruebo que ahora hay más recursos:

inst-014

Ahora empieza la parte divertida. Tengo que instalar el paquete que es un fichero ZIP y tengo que llevarme el paquete al OpenVMS. Ahora mismo no tengo ninguna manera de hacerlo a través de la red así que, el único medio que tengo disponible es la unidad de CDROM virtual.

La estrategia que voy a seguir comprende:

  1. Transfiero el paquete a instalar (fichero DECSET_122a.zip a la Raspi usando WinSCP.
  2. En la Raspi descomprimo el paquete en un directorio.
  3. Empleando el programa genisoimage creo una imagen ISO con los contenidos del paquete.
  4. Monto la imagen ISO así creada en la unidad de CD virtual del OpenVMS.
  5. Arranco el OpenVMS y monto la unidad de CD. Copio los contenidos a un directorio de uno de los discos duros y desde ese directorio realizo la instalación.

Bien, pues todo este procedimiento no funciona. Al hacer el unzip en Raspbian al parecer se estropea la estructura de los ficheros del paquete de instalación y al crear la imagen ISO se truncan los nombres de los ficheros a formato 8.3. Tras varias consultas en foros, intentos de reparación de los ficheros y pruebas varias no llego a ninguna parte de esta forma. Así que, con la ayuda de varios foreros, cambio mi estrategia a lo siguiente:

  1. Obtengo el programa UNZIP para OpenVMS.
  2. Transfiero a la Raspi, usando WinSCP el programa UNZIP y el fichero con el paquete a instalar.
  3. En la Raspi creo una imagen con el programa UNZIP y el zip con el paquete.
  4. Monto la imagen en OpenVMS
  5. Arranco OpenVMS y copio los contenidos de la imagen creada a un directorio temporal
  6. Hago el unzip del paquete
  7. Instalo

Voy a ir detallando paso a paso lo que he ido haciendo para no olvidarlo.

1. Obtener UNZIP (y ZIP) para OpenVMS

Afortunadamente, desde el foro de VMS me dirigen a este repositorio donde hay una version binaria de Unzip que descargo. Aprovechando que ya estamos, vuelvo a descargar la imagen de DECSet a instalar, esta vez comprobando los MD5 para garantizar que el fichero se descarga correctamente:

inst-016

inst-017

Por ahora, todo bien.

2. Transfiero los ficheros a la Raspberry:

inst-018

3. Creo la imagen ISO:


pi@rpiopenvms:~ $ ls -l
total 13720
-rw-r--r--  1 pi pi 13858278 Dec 18 21:49 DECSET_122a.zip
drwxr-xr-x  2 pi pi     4096 Dec 18 17:50 iso
drwxr-xr-x 46 pi pi     4096 Dec 15 14:34 simh-master
-rw-r--r--  1 pi pi   178688 Dec 20 20:28 unzip-vax-73-v0600.exe
pi@rpiopenvms:~ $ mkdir decset
pi@rpiopenvms:~ $ mv DECSET_122a.zip decset
pi@rpiopenvms:~ $ mv unzip-vax-73-v0600.exe decset
pi@rpiopenvms:~ $ genisoimage -V decset -o decset.iso decset
I: -input-charset not specified, using utf-8 (detected in locale settings)
71.13% done, estimate finish Fri Dec 21 15:15:31 2018
Total translation table size: 0
Total rockridge attributes bytes: 0
Total directory bytes: 0
Path table size(bytes): 10
Max brk space used 0
7029 extents written (13 MB)

pi@rpiopenvms:~ $ sudo mount -o loop decset.iso iso
mount: /dev/loop0 is write-protected, mounting read-only
pi@rpiopenvms:~ $ ls -l iso
total 13708
-r-xr-xr-x 1 root root 13858278 Dec 18 21:49 decset_1.zip
-r-xr-xr-x 1 root root   178688 Dec 20 20:28 unzip_va.exe
pi@rpiopenvms:~ $ 

 

Bien, he conseguido crear la imagen pero veo que se han truncado los nombres de ficheros en la imagen a 8.3. Esto tengo que tenerlo en cuenta en el siguiente paso.

4. Montar la imagen en el OpenVMS

El primer paso es copiar la imagen al directorio donde almaceno las imágenes:


pi@rpiopenvms:~ $ sudo mv decset.iso /usr/local/vax/images
pi@rpiopenvms:~ $ cd /usr/local/vax/data
pi@rpiopenvms:/usr/local/vax/data $ vi openvms.ini

Edito el fichero openvms.ini para configurar que la máquina monte la imagen recién creada en la unidad de CDROM:

inst-019

5. Arrancar OpenVMS y montar el disco


pi@rpiopenvms:/usr/local/vax/data $ cd ../bin
pi@rpiopenvms:/usr/local/vax/bin $ sudo ./vax /usr/local/vax/data/openvms.ini

MicroVAX 3900 simulator V4.0-0 Current        git commit id: c2b45a26
/usr/local/vax/data/openvms.ini-5> attach nvr /usr/local/vax/data/nvram.bin
NVR: buffering file in memory
/usr/local/vax/data/openvms.ini-20> attach rq0 /usr/local/vax/data/d0.dsk
RQ0: '/usr/local/vax/data/d0.dsk' Contains ODS2 File system
RQ0: Volume Name: OVMSVAXSYS   Format: DECFILE11B   Sectors In Volume: 2940951
/usr/local/vax/data/openvms.ini-21> attach rq1 /usr/local/vax/data/d1.dsk
RQ1: '/usr/local/vax/data/d1.dsk' Contains ODS2 File system
RQ1: Volume Name: DATA1        Format: DECFILE11B   Sectors In Volume: 2940951
/usr/local/vax/data/openvms.ini-22> attach rq2 /usr/local/vax/data/d2.dsk
RQ2: '/usr/local/vax/data/d2.dsk' Contains ODS2 File system
RQ2: Volume Name: DATA2        Format: DECFILE11B   Sectors In Volume: 2940951
/usr/local/vax/data/openvms.ini-25> attach -r rq3 /usr/local/vax/images/decset.iso
RQ3: unit is read only


KA655-B V5.3, VMB 2.7
Performing normal system tests.
40..39..38..37..36..35..34..33..32..31..30..29..28..27..26..25..
24..23..22..21..20..19..18..17..16..15..14..13..12..11..10..09..
08..07..06..05..04..03..
Tests completed.
>>>boot

Una vez arranca, hago login en OpenVMS y monto la unidad de CDROM:


$ MOUNT/OVERRIDE=IDENT DUA3
%MOUNT-I-WRITELOCK, volume is write locked
%MOUNT-I-CDROM_ISO, decset: (1 of 1) , mounted on  _TCVAX$DUA3:
$ dir DUA3:[000000]

Directory DUA3:[000000]

DECSET_1.ZIP;1      UNZIP_VA.EXE;1

Total of 2 files.
$

Creo dos directorios en DUA1:

  • UTILS que va a contener el programa UNZIP
  • DECSET_TMP donde voy a copiar el fichero .zip

Copio a estos directorios los correspondientes ficheros:


$ create/dir dua1:[UTILS]
$ create/dir dua1:[DECSET_TMP]
$ set def dua1:[UTILS]
$ copy dua3:[000000]UN*.* []
$ dir

Directory DUA1:[UTILS]

UNZIP_VA.EXE;1

Total of 1 file.

$ set def dua1:[decset_tmp]
$ show def
  DUA1:[DECSET_TMP]
$ copy dua3:[000000]*.zip []
$ dir

Directory DUA1:[DECSET_TMP]

DECSET_1.ZIP;1

Total of 1 file.
$

A continuación creo un símbolo para poder ejecutar UNZIP:

 
$ UNZIP :== $dua1:[UTILS]UNZIP_VA.EXE
$ show symbol UNZIP
  UNZIP == "$DUA1:[UTILS]UNZIP_VA.EXE"
$ unzip
UnZip 6.00 of 20 April 2009, by Info-ZIP.  For more details see: unzip -v.

Usage: unzip [-Z] [-opts[modifiers]] file[.zip] [list] [-x xlist] [-d exdir]
  Default action is to extract files in list, except those in xlist, to exdir;
  file[.zip] may be a wildcard.  -Z => ZipInfo mode ("unzip -Z" for usage).
=> define foreign command symbol in LOGIN.COM:  $ unzip :== $dev:[dir]unzip.exe

  -p  extract files to pipe, no messages     -l  list files (short format)
  -f  freshen existing files, create none    -t  test compressed archive data
  -u  update files, create if necessary      -z  display archive comment only
  -v  list verbosely/show version info       -T  timestamp archive to latest
  -x  exclude files that follow (in xlist)   -d  extract files into exdir
modifiers:
  -n  never overwrite or make a new version of an existing file
  -o  always make a new version (-oo: overwrite original) of an existing file
  -q  quiet mode (-qq => quieter)            -a  auto-convert any text files
  -j  junk paths (do not make directories)   -aa treat ALL files as text
  -C  match filenames case-insensitively     -L  make (some) names lowercase
  -X  restore owner/ACL protection info      -V  retain VMS version numbers
  -Y  treat ".nnn" as ";nnn" version         -2  force ODS2 names
  --D restore dir (-D: no) timestamps        -M  pipe through "more" pager
  (Must quote upper-case options, like "-V", unless SET PROC/PARSE=EXTEND.)

See "unzip -hh" or unzip.txt for more help.  Examples:
  unzip data1 -x joe   => extract all files except joe from zipfile data1.zip
  unzip "-V" foo "Bar" (Quote names to preserve case, unless SET PROC/PARS=EXT)
  unzip -fo foo vms.c  => quietly replace existing vms.c if archive file newer
$ 

6. Desomprimir el paquete

Bien, ahora voy a descomprimir el paquete de instalación. Primero lo renombro a su nombre no truncado:

 
$ set def [DECSET_TMP]
$ dir

Directory DUA1:[DECSET_TMP]

DECSET_1.ZIP;1

Total of 1 file.
$ rename DECSET_1.ZIP DECSET_122A.ZIP
$ dir

Directory DUA1:[DECSET_TMP]

DECSET_122A.ZIP;1

Total of 1 file.
$ unzip DECSET_122A.ZIP
Archive:  DUA1:[DECSET_TMP]DECSET_122A.ZIP;1
  inflating: DECSET_A122.A
  inflating: DECSET_A122.B
  inflating: DECSET_A122.C
  inflating: DECSET_A122.D
  inflating: DECSET_A122.E
  inflating: DECSET_A122.F
  inflating: DECSET_A122.G
  inflating: DECSET_A122.H
  inflating: DECSET_A122.I
  inflating: DECSET_A122.J
  inflating: DECSET_A122_IGUIDE.TXT
$ delete decset_122a.zip
%DELETE-E-DELVER, explicit version number or wild card required
$ delete decset_122a.zip;*
$

Parece que todo ha ido OK. Ahora sólo una pequeña comprobación de que los ficheros del paquete de instalación son correctos:

 
$ BACKUP /LIST DECSET_A122.A /SAVE
Listing of save set(s)

Save set:          DECSET_A122.A
Written by:        RAMSHAW
UIC:               [001000,001017]
Date:              29-JUN-1999 15:28:06.64
Command:           BAC [.FILES]*.* DECSET_A122.A/SAV
Operating system:  OpenVMS VAX version V6.2
BACKUP version:    V6.2
CPU ID register:   12000003
Node name:         _EDSDS8::
Written on:        _$15$DKA400:
Block size:        32256
Group size:        10
Buffer count:      247

[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]CHECK_COMM_LANG.TPU;1
                                                            3   4-JUN-1997 18:12
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]CMS$DW_IMAGES.DAT;1
                                                            1   1-MAR-1989 12:36
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]CMS$DW_NOTIMAGES.DAT;1
                                                            1  29-SEP-1995 14:13
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]CMS$IMAGES.DAT;1
                                                            1  31-OCT-1996 15:24
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]CMS$IVP.COM;1
                                                           16  26-JUN-1997 16:02
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]CMS$KITINSTAL.COM;1
                                                           50  30-JUN-1997 17:06
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]CMS039.RELEASE_NOTES;1
                                                          139  27-JUN-1997 16:04
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]DECSET122A.RELEASE_NOTES;1
                                                          637  28-JUN-1999 08:05
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]DTM$KITINSTAL.COM;1
                                                           64  30-JUN-1997 17:07
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]DTM038.RELEASE_NOTES;1
                                                           80  27-JUN-1997 16:34
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]ENVMGR$KITINSTAL.COM;1
                                                           47  20-JUN-1997 10:16
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]ENVMGR$KITVERSION.COM;1
                                                            3  20-JUN-1997 12:13
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]ENVMGR012.RELEASE_NOTES;1
                                                           62  27-JUN-1997 16:04
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]KITINSTAL.COM;1
                                                           55  29-JUN-1999 15:18
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]KITVERSION.COM;1
                                                            3  28-JUN-1999 08:11
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]LSE$KITINSTAL.COM;1
                                                           91  30-JUN-1997 17:06
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]LSE045.RELEASE_NOTES;1
                                                          102  27-JUN-1997 16:33
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]MMS$DW_HELP.HLB;1
                                                          207  20-JUN-1997 12:33
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]MMS$KITINSTAL.COM;1
                                                           62  30-JUN-1997 17:15
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]MMS$PROFILE.VUE$DAT;1
                                                            1  13-DEC-1994 18:00
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]MMS$VUE.COM;1
                                                            4  13-DEC-1994 18:08
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]MMS.HLP;1
                                                           80  20-JUN-1997 12:34
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]MMS032.RELEASE_NOTES;1
                                                          122  27-JUN-1997 16:05
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]PCA$KITINSTAL.COM;1
                                                           39  30-JUN-1997 13:53
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]PCA$KITVERSION.COM;1
                                                            5  27-JUN-1997 11:05
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]PCA$SYSTEM_BUILDDEFS.COM;1
                                                            3  27-JUN-1997 14:22
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]PCA045.RELEASE_NOTES;1
                                                           99  27-JUN-1997 16:05
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]SCA$KITINSTAL.COM;1
                                                          114  20-JUN-1997 09:08
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]SCA$KITPARAMS.COM;1
                                                            4  20-JUN-1997 15:19
[DECSET_STAGING.DECSET.V12_2A.SSB.VAX.KIT.FILES]SCA045.RELEASE_NOTES;1
                                                           57  27-JUN-1997 16:55

Total of 30 files, 2152 blocks
End of save set
$

Parece que todo ha ido bien. La instalación en el siguiente post.

Descarga y compilación de simh

Tal y como comenté en la primera entrada de esta serie, el objetivo que me propongo es conseguir instalar OpenVMS en una Raspberry Pi de forma que se ejecute sobre el simulador simh.

Una vez obtenidas las imágenes del sistema operativo, el siguiente paso es crear una imagen de Raspbian para, sobre ella, instalar simh y, posteriormente, configurar OpenVMS. El crear una imagen de Raspbian y hacer su configuración inicial es un camino que tengo trillado y voy a seguir mi propia experiencia, intentando no cometer los errores que ya he cometido. Una vez creada la imagen, me conecto al router de banda ancha e investigo los dispositivos conectados para conocer la dirección IP de la Raspberry:

Imagen13

Una vez conocida la dirección IP voy a proceder a su configuración conectándome por ssh:

Imagen14

El siguiente paso es configurar el nombre de la máquina, colocarle una IP estática y actualizar el software. Ahora viene la parte difícil que es instalar simh. Por lo que he visto, lo recomendable es descargarse el código fuente desde GitHub y compilarlo en la raspi. He comprobado también que está en el repositorio en la versión 3.8.1-5.

Imagen15

La versión que hay en GitHub es la 4.0:

Imagen17

Vamos por el camino difícil. Descargar los fuentes y compilar. En el README.md del sitio de simh en GitHub proporciona las instrucciones para descargar los fuentes y construir los binarios. En primer lugar me descargo el master.zip que contiene los fuentes:

Imagen18

Imagen19

A continuación voy a compilar simh. Me cambio al directorio que contiene el paquete y hago, en primer lugar un make clean y, a continuación un make vax para crear los simuladores de VAX. A ver cuánto se alarga la espera.

Imagen21

Realmente ha tardado muy poco, unos 5 minutos. En este momento, ya tenemos compilado el simulador para VAX.

Imagen24

En el siguiente post abordaré la configuración inicial de simh.

Obtener OpenVMS

En el primer post de esta serie, que tiene como objetivo describir paso a paso la instalación de OpenVMS en una Raspberry Pi, comenté que iba a comenzar por describir cómo obtener las imágenes y las licencias de OpenVMS a instalar. En este post voy a describir qué pasos he seguido. Supongo que habrá formas más fáciles de obtenerlo pero yo no he sido capaz de encontrarlas.

En primer lugar realizo una búsqueda, todo lo exhaustiva que puedo, en Internet y no encuentro la forma de bajarme una imagen, un iso, etc. de OpenVMS. Al final, casi por casualidad, caigo en la página

OpenVMS Hobbyist Registration en la que se presenta un formulario de registro donde solicita información en el que aparecen un montón de campos requeridos que no se cómo rellenar.

Imagen3

Intento, a la desesperada, rellenar al buen tun tun los campos y no consigo nada. El primer combo del formulario permite seleccionar un capítulo (como los Ángeles del Infierno) que, entiendo, es una especie de club de usuarios. Veo que no hay ninguna opción española o en español así que me pongo a buscar en Internet.

Descubro una referencia a uno de los capítulos DECUServe y descubro que conectándose por SSH a einer.decus.org con el usuario REGISTRATION uno puede registrarse en el capítulo.

Lo primero que hago es abrir la conexión SSH con putty:

decus-1

Me aparece una pantalla de entrada en el servidor:

decus-2

El primer problema es que no conozco la contraseña. Pruebo a darle a enter y … entro. De forma automática se arranca el proceso de registro. En primer lugar pide una confirmación para registrarse:

decus-3

A continuación me pide un número por lo que contesto NO

decus-3b

Me asigna automáticamente un número de subscriptor (que anoto en un papelito) y continuo con el registro:

decus-4

Me solicita confirmación para mostrarme los cánones de conducta a los que se sujetan voluntariamente los miembros del capítulo:

decus-5

Aparecen, a continuación, una serie de pantallas en las que se va recabando información y, finalmente, me crea un usuario y una password:

decus-6b

Finalmente, me presenta una pantalla diciendo que ya está listo:

decus-7

El proceso ha sido bastante largo pero ya tengo mi usuario y mi contraseña y formo parte del capítulo DECUServe con lo que ya puedo volver a la web de OpenVMS Hobbyist Registration y registrarme. Cosa que hago de inmediato. Con la información obtenida ya puedo rellenar y enviar el formulario y, al cabo de unos momentos, recibo un correo electrónico:

Imagen6

Muy bien, me pongo a esperar la respuesta. Respuesta que llega cinco días después con la licencia (PAK) como anexo. El correo contiene muchas instrucciones y dice que envíe otro correo para que me pasen las instrucciones para descargar las imágenes del sistema operativo.

Imagen8

Envío puntualmente el mail solicitando el acceso para las imágenes y me responden con unos enlaces para descargar las imágenes:

Imagen10

Procedo a conectarme por SFTP con WinSCP y a bajarme las imágenes y los ejecutables que me interesan:

Imagen11

Recordando viejos tiempos

vax

De vez en cuando, uno mira hacia atrás y se da cuenta de la cantidad de tiempo que ha pasado desde que comencé en este negocio. Para hacer frente a la nostalgia no hay nada mejor que intentar resituarse en el pasado. Mis comienzos profesionales en este mundo de la TI (a finales de los 80) fueron como programador Ada en un entorno VAX/VMS, en concreto, la máquina que teníamos, por aquel entonces, era un MicroVAX 3xxx. Vamos algo del tamaño de una lavadora y que costaba unos 100.000$ de los de entonces.

microvax36

Guardo un cariñoso recuerdo de aquel sistema operativo que, entre otras cosas, conservaba las distintas versiones de los ficheros editados, sus comandos no distinguían entre mayúsculas y minúsculas, tenía un maravilloso editor de texto (frente a vi o emacs) y una ayuda aún mejor. En medio de este ataque de nostalgia decidí investigar si era posible emular la arquitectura hardware y montar una máquina, en principio virtual, VAX/VMS en mi entorno casero.

Descubrí, para mi sorpresa, que el sistema operativo sigue vivo y, al parecer en uso, en muchos sitios y que ha sobrevivido a la desaparición de Digital Equipment Corporation (DEC) empresa que, en los avatares de la crisis económica de principios de los 90, empezó a perder mercado y fue, posteriormente, incorporada a Compaq y, finalmente, a HP. HP ha seguido manteniendo y comercializando el sistema operativo (OpenVMS) y, proporciona, de forma gratuita, licencias de OpenVMS para aquellos que (como yo) tienen un interés meramente lúdico en la plataforma (OpenVMS Hobbyist Program). La página web de este programa está enterrada en la web de HP y, la verdad es que se hace difícil llegar a ella.

Descubrí, además, que es factible hacer que el OpenVMS se ejecute sobre un simulador que, a su vez, puede ejecutarse en una Raspberry Pi. Parece increíble, un entorno de centenares de miles de dólares de hace 30 años se puede ejecutar en una máquina de 30€.

Ni corto ni perezoso voy a recapitular lo que necesito para montarlo y me pongo a ello:

  • Una Raspberry Pi (tengo una 3 nuevecita)
  • Una tarjeta micro SD (voy a usar una de 16GB)
  • Una imagen de Raspbian (me la bajo de aquí)
  • Descargarme SimH e instalarlo en Raspbian
  • Obtener una imagen de OpenVMS y hacerla correr en Simh

Voy a hacer una serie de posts describiendo estos pasos y vamos a ver a dónde llego. Repasando los puntos anteriores, veo que los tres primeros son sencillos. El cuarto, a priori, implica bajarse el código fuente y compilarlo en la Raspi, complicado pero factible. El quinto me preocupa porque, por más que busco necesito dos cosas que no encuentro en Internet:

  • Una imagen del sistema operativo
  • Una licencia que, a priori es necesaria para que se ejecute.

Empezaré por el último paso porque es el que supone un reto más importante.

Por último, esta entrada, como todas las del blog las escribo para mí, para acordarme de lo que hago y poder reproducirlo así que no tengo ninguna pretensión de precisión. La información, amigos, es “as is”.