vms

¡Esta es una revisión vieja del documento!


VMS

Se trató de un sistema operativo de tiempo compartido desarrollado por Digital Equipment Corporation para su serie de minicomputadoras VAX.

Se trata de un entorno multiusuari@ multitarea con memoria virtual, y opcionalmente capaz de operar en clúster. Es recordado por su estabilidad asombrosa en equipos servidores.

Su desarrollo como tal se extendió desde 1979 hasta 1992 bajo el nombre de VAX/VMS.

Tras la adquisición de DEC por parte de Compaq y luego por HP, el VMS tradicional derivó en una implementación a código abierto, el OpenVMS escrito tanto para las minis VAX como para arquitectura Alpha. Este se continuó utilizando de forma eventual en servidores de dicha tecnología, dilatando su servicio bien hasta mediados de la década del 2010.

Sin embargo, la última versión 9 de OpenVMS representa un cambio fundamental ya que abandona las arquitecturas DEC para compatibilizar el sistema con otras de despliegue moderno, notablemente la x86_64. Esto hace posible de operarse en equipos de escritorio modernos. Sin embargo, el código permanece privativo.

Como los sistemas VAX históricos y los Alpha pueden emularse bajo SIMH en GNU con Linux, es posible crear entornos de emulación para estas plataformas si contamos con licencias de uso hobbista para el mismo. Lamentablemente, si bien las mismas se distribuyeron a través de un programa especial de Hewlett-Packard, actualmente el mismo ha sido descontinuado.

Es por ello que al manera más sencilla de operar en un sistema de estas características es darnos de alta en un sistema público que disponga del hardware antiguo correctamente licenciado. Una de estas instancias la proporciona DECUS.ORG, un grupo de usuarios hobbistas de equipamiento DEC, que cuenta con el apoyo institucional del actual poseedor de la propiedad intelectual del VMS, Hewlett-Packard.

Decus.org pone a disposición del público general su infraestructura de cómputo DEC Alpha 520 puesta en línea, y ofrece la creación de cuentas públicas de acceso remoto a intérprete de comandos.

Para dar de alta una cuenta a título individual, podremos usar nuestra terminal GNU con Linux mediante Secure Shell (SSH) a:

ssh REGISTRATION@eisner.decus.org

Cuando el sistema nos solicite contraseña no ingresamos ninguna y simplemente presionamos ENTER. Se activará a continuación programa de registro en la máquina DEC Alpha, que constará de varias pantallas. En ellas se nos solicitará ingresar un nombre de usuario y debemos proporcionar una casilla de correo electrónico válida. También se nos solicitará indicar qué tipo de editor deseamos (normalmente uno llamado LSE).

Una vez recibido un correo de parte de DECUS conteniendo una contraseña pasavante, podremos ya conectarnos a nuestra cuenta de OpenVMS remoto. Por tanto, nos logueamos utilizando:

ssh usuario@eisner.decus.org

Tras ingresar la contraseña provista por DECUS, podremos ver nuestra pantaslla incial. Por ejemplo:

%DCL-S-SPAWNED, process USUARIO_10419 spawned
  User [USUARIO] has 842 blocks used, 9158 available,
  of 10000 authorized and permitted overdraft of 0 blocks on DISK_USER
 * * * * * *  * * * * * * * < Hola USUARIO! > * * * * * * * * * * * * * *
                        RECIBA UNA CORDIAL BIENVENIDA
                          ____ al sistema computado 
                         |  _ \  ___  ___ _   _ ___    
                         | | | |/ _ \/ __| | | / __|
                         | |_| |  __/ (__| |_| \__ \
                         |____/ \___|\___|\__,_|___/
                          DEC Alpha con OpenVMS 8.4
  +-----------------------------------------------------------------------+
|      Nombre del nodo: EISNER.  Hardware: AlphaServer DS20 500 MHz     |
|   Este mainframe pertenece al Grupo Hobbista "Asociacion de Usuarios  |
|            de Digital Equipment Computers", DECUS.ORG.                |
+-----------------------------------------------------------------------+
- Su directorio es DECUSERVE_USER.USUARIO.  
- Su casilla de correo electronico en este equipo es: usuario@eisner.decus.org.
- Para abandonar este sistema utilice el comando LOGOUT.
$
Subprocess USUARIO_xxxxx has completed

El prompt de DCL es un $.

El DCL presenta un conjunto de instrucciones en inglés que el usuario ingresa para comandar al sistema operativo (en este caso OpenVMS). Constaba de más de 200 comandos y funciones.

Al igual que otros intérpretes posteriores como Bash, los comandos en DCL se ingresan en dos formas. La más común es la manera interactiva, en la cual se escriben en la terminal de manera insensible a mayúsculas. Generalmente se usan secuencias de comandos y modificadores.

La otra es “en lotes”, y esto equivale a la creación de programas y guiones de programación (scripts). Nos concentraremos en la primera manera.

Asimismo, DCL tiene varias combinaciones de control que interrumpen o anulan la ejecución de comandos.

Atajo Resultado en DCL
Ctrl+z Sale de un comando de DCL
Ctrl+c interrumpe la ejecución de un comando (pero lo deja en memoria).
Ctrl+b Repite el comando anterior.
Ctrl+a Conmuta entre modo Inserción de caracteres y Sobreescritura de Caracteres.
Ctrl+s Suspende la salida de texto a la terminal.
Ctrl+o Reactiva la salida de texto a la terminal. Si se la presiona alternativamente, pausa y continúa el flujo de texto.

AYUDA ONLINE

El DCL es difícil de usar, pero tiene una ayuda tipo “árbol” jerarquizada. Ingresa

help

para ingresa al subsistema de ayuda. También se puede usar en forma “HELP tema”. Por ejemplo:

 $ **help instructions**

Normalmente el subsistema de ayuda permite ingresar y presentar en pantalla cada uno de los temas o topics escribiéndolos por su nombre indicado, y a su vez cada tema podría presentar nuevas temáticas de ayuda relacionadas. Si oprimes Intro generalmente retrocedes un nivel. Al volver al nivel inicial del subsistema de ayuda, abandonarás el mismo y quedaremos depositados nuevamente en el prompt $ del DCL.

Recuerda que siempre podrás salir del subsistema de ayuda (y muchos otros programas ejecutados por DCL) con Ctrl+z.

Hay muchísimos comandos y programas capaces de corren en OpenVMS, pero ciertos son comandos comunes directamente equivalentes o muy parecidos a los comandos presentes en sistemas de operación similares a UNIX. Por ejemplo:

copy Copia un fichero especificado, cp
copy/ftp transfiere ficheros entre huespedes sobre red tcp/ip, ftp
create crea ficheros y directorios, touch
delete borra un fichero especificado y lo quita del directorio, rm
directory o dir presenta los contenidos de un directorio (listado de ficheros), ls
edit muestra y cambia los contenidos de un fichero de texto, ed
logout desconecta la sesión remota, logout, exit
print envia un fichero especificado a la impresora
rename cambia el nombre o la localización de un fichero especificado, mv
set controla como usar el sistema en pantalla
show presenta el status de sistema
type presenta los contenidos de un fichero especificado en la pantalla, cat

Crear y moverse en directorios

El sistema de ficheros de OpenVMS representa una estructura arbolada. En ella, el usuario de DECUS recibirá una carpeta de usuario localizada dentro de la carpeta DECUSERVE_USER, que generalmente se encuentra en una partición en una unidad de disco del sistema, como por ejemplo DSA3:.

DCL es idiosincrásicamente mas complejo y laborioso de usar que UNIX. En particular, suele requerir la necesidad de ingresar entre corchetes [] toda la ruta del directorio a fin de desplazarnos por la estructura de árbol. Los niveles de directorios se separan utilizando un . en lugar de una barra como en UNIX u otros sistemas.

Para ver el contenido del directorio actual ingresamos:

$ DIRECTORY

…o más sencillo, su la abreviación dir.

Por ejemplo, si quisiéramos crear un directorio llamado prueba en nuestra carpeta de usuario, deberíamos usar:

$ CREATE /DIR [DECUSERVE_USER.USUARIO.prueba]

Para comprobar su creación efectiva, ingresamos el comando dir. Deberíamos ver ahora un directorio nomenclado como prueba.dir;1. Para ingresar a dicho directorio usamos el comando cd (“cambiar directorio”), seguido por toda la ruta estructurada. Por ejemplo:

$ cd DSA3:[DECUSERVE_USER.USUARIO.prueba]

…o bien:

$ SET default [.prueba]

Para volver al directorio anterior:

$ cd DSA3:[DECUSERVE_USER.USUARIO]

…o bien:

$ SET default

Si quisiéramos usar un equivalente al comando pwd de UNIX (“presentar directorio actual”), debemos usar:

$ SHOW default

Se nos hará obvio que todos los archivos cuentan con un sufijo de versión, indicado con ;. Por ejemplo: archivo.txt;1, archivo.txt;2, etcétera. De esta manera podremos contar con múltiples versiones de un mismo fichero. Siempre se activa la última, pero se conservan las anteriores. Si queremos eliminar un fichero se usa el comando DELETE, pero debemos especificar cuál versión queremos borrar. Por ejemplo,

$ DELETE archivo.txt;3

…o bien, eliminamos todas las versiones de un fichero con comodines, por ejemplo:

$ DELETE archivo.txt;*

Para borrar el directorio creado tenemos que retroceder al nivel anterior en el árbol (no podemos eliminar un directorio desde dentro del mismo). Luego le asignamos permisos de borrado al directorio:

$ SET FILE/PROTECTION=O:RWED prueba.dir;1

…y finalmente lo borrarás con:

$ delete prueba.dir;1

Crear un fichero finger

Los sistemas de cómputo a tiempo compartidos podían contar con un fichero de texto .plan o .project, encargados de operar como descripción del usuario. Como los sistemas solían ser anónimos pero contar con un “handle” o nombre de usuario específico, estos ficheros de texto podían servir como una descripción o información de contacto. Sin embargo, no era extraño contar con extravagantes descripciones o texto ASCII, lo que pasaba a formar parte del folklore típico de los sistemas de cómputo a tiempo compartido.

Para crear nuestro fichero podremos aprovechar y utilizar el editor de texto visual “LSE”. Ingresaremos a él con:

$ lse

El editor de texto LSE consta de dos secciones. Una principal con la ventana de texto, y otra inferior en la que podremos ingresar comandos de operación. En este caso simplemente escribiremos un texto que deseemos. Cuando finalicemos de hacerlo, presionaremos Ctrl+z. Esto nos desplazará a la sección inferior para ingresar los comandos de operación, lo cual se nos hará patente por medio del prompt LSE>. En él ingresaremos exit. El editor LSE nos solicitará el nombre de archivo a fin de guardarlo con dicha denominación y salir al intérprete DCL. Le introducimos el nombre .plan y presionamos Enter.

Esto cerrará el editor LSE y nos retornará al prompt de DCL. Debemos ahora asignar los permisos de fichero requeridos al fichero .plan que hemos creado. Ello lo haremos ingresando el comando:

SET file/prot=w:re .plan

Ver quién está online

Podrás hacer eso ingresando:

$ SHOW users
      OpenVMS User Processes at  8-JUL-2021 23:34:39.87
    Total number of users = 4,  number of processes = 6

 Username      Interactive  Subprocess   Batch
 CARTER_S           1         1
 GOATLEY            1
 JACKSON            2
 PERON              1

Podrás chatear en línea con dicho usuario mediante el programa phone. Utiliza:

$  phone usuario

El usuario recibirá el alerta y podrá tocar la combinación indicada en pantalla para responder. Al aceptar se presentará el OpenVMS Phone Facility:

                            OpenVMS Phone Facility                   8-JUL-2021
%

-------------------------------------------------------------------------------
                                 EISNER::PERON
Viva Peron! Esta es una prueba de comunicaciC3n en Eisner.
Como estC!s?
El texto introducido no se puede borrar.
Se puede borrar en tanto no presiones Enter.

-------------------------------------------------------------------------------
                                 EISNER::EVITA
Hola como estás. Gracias por el Mensaje.
Estoy introduciendo el texto, va apareciendo de a poco.
Muy interesante!.

-------------------------------------------------------------------------------

…Para abandonar el programa phone puedes utilizar Ctrl+z

Existen muchísimos comandos de este tipo, pero tal vez el más simple sea show. Utiliza help show, o prueba alguno de los siguientes:

show system
show network
show cpu
show memory

La URL base para su página web será:

http://eisner.decus.org/~usuario

La web se almacena en el subdirectorio WWW localizado en nuestro directorio de usuario.

Para ello creamos un subdirectorio y le otorgamos los permisos requeridos

set default sys$login
create/dir [.www] /protection=w:re
set security /acl=(default_protection, s:rwed, o:rwed, g:r, w:r) www.dir
set default sys$login
set security /acl=(identifier=WASD_HTTP_SERVER,access=read) [-]usuario.DIR

Acto seguido creamos un archivo index.html o bien lo transferimos a través de FTP. Podremos crear subdirectorios adicionales dentro de [WWW] si lo deseamos. Documentación

El manual puede conseguirse online, pero está disponible en formato HTML desde la antigua web de Compaq (actualmente disponible desde HP).

Podrán encontrar las secciones e índice de base en aquí.

En tanto que podrán dirigirse al uso de DCL desde esta sección del mismo manual.

  • vms.1654909507.txt.gz
  • Última modificación: 2022/06/11 01:05
  • por peron