Al principio fué VMS, entonces Digital agregó POSIX y renombró el sistema operativo a OpenVMS. OpenVMS actualmente corre en CPU’s VAX y AXP (ALPHA). La versión 8.2 liberada a finales de 2005 corre también en máquinas Intel con CPU Itanium de 64-bit.
DEC introdujo VMS en 1977 como VMS/VAX con la primera computadora VAX-11/780. En 1992 se convirtió en OpenVMS con la introducción de las computadoras de 64-bit Alpha.
DEC desarrollo VMS y las VAX(en) juntos, no es difícil conectar varias VAX para que funcionen como una sola, esto se refleja también en el sistema operativo.
VMS utiliza un conjunto de comandos que son palabras en Ingles fáciles de recordar y cuenta con ayuda en linea muy extensa e intuitiva.
VMS significa “Virtual Memory System” que deriva de la técnica que utiliza para administrar la memoria: el uso de memoria virtual es la habilidad de dar a los programar acceso a mas memoria de la que tiene la computadora.
Digital Equipement Corporation fué adquirida por Compaq en 1998 y en 2002 Compaq y Hewlett-Packard se fusionarón.
Actualmente existen emuladores comerciales y open source tanto de VAX como Alpha, Charon-VAX y Charon-AXP son comerciales con licencias gratuitas para uso personal, corren en Windows y Linux. Del lado open source, |SIMH tiene emulación de VAX y Alpha ES40 emula Alpha.
OpenVMS en SIMH
- Instala SIMH HowtoSimh
- Crea un directorio de trabajo y copia ahí el ejecutable vax y la imagen de CPU ka655x
- Crea el archivo de inicialización de SIMH para OpenVMS VAX
- Instala OpenVMS
Archivo de inicialización de SIMH
; ; Load CPU microcode
load -r ka655x.bin
; ; Attach non-volatile RAM to a file
attach nvr nvram.bin
; ; This virtual machine has 64M memory
set cpu 64m
; ; Define disk drive types. RA92 is largest-supported VAX drive.
set rq0 ra92
set rq1 ra92
set rq2 ra92
set rq3 cdrom
;; Attach defined drives to local files
attach rq0 d0.dsk
attach rq1 d1.dsk
attach rq2 d2.dsk
; ; Attach the CD-ROM to its file (read-only)
attach -r rq3 cd.iso
; ; Disable unused devices. It's also possible to disable individual devices,
; using a construction like "set rq2 disable" if desired.
; set rl disable
set ts disable
; ; Attach Ethernet to a network interface
set xq mac=08-00-2B-AA-BB-CC
attach xq eth0
; ; Now start the emulator
boot cpu
Inicia la simulación
./vax VAX simulator V3.8-1 NVR: creating new file NVR: buffering file in
memory RQ: creating new file RQ: creating new file RQ: creating new file
RQ: unit is read only Eth: opened eth0
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.
Inicia desde el CD-ROM
>>>boot dua3
(BOOT/R5:0 DUA3
-. -DUA3 -.0..
%SYSBOOT-I-SYSBOOT Mapping the SYSDUMP.DMP on the System Disk
%SYSBOOT-W-SYSBOOT Can not map SYSDUMP.DMP on the System Disk
%SYSBOOT-W-SYSBOOT Can not map PAGEFILE.SYS on the System Disk
Ingresa la fecha y hora cuando se requiera
OpenVMS (TM) VAX Version X7G7 Major version id %WBM-I-WBMINFO Write
Bitmap has successfully completed initialization. PLEASE ENTER DATE AND
TIME (DD-MMM-YYYY HH:MM)
Despues de ingresar fecha y hora y revisar que todos los dispositivos esten disponibles, te encuentras en un sistema “standalone” utilizado para respaldo y recuperación.
Restaura el sistema desde el CD-ROM
{i} '''''HELP
backup_command''
%BACKUP-I-IDENT, Stand-alone BACKUP T7.2; the date is 16-JUN-2011
13:15:24.93 $ backup dua3:vms073.b/save_set dua0:
Hasta este punto el sistema ha sido copiado a tu disco duro virtual, deten ( CTRL+E ) la simulación para re-iniciar la máquina virtual y continuar con la instalación.
If you do want to perform another standalone BACKUP operation, ensure
the standalone application volume is online and ready. Enter "YES" to
continue: Simulation stopped, PC: 839ABD34 (CLRL R6) sim> boot cpu
?C6 2 03 FF 00 0000
P1=20140100 P2=00000000 P3=20084004 P4=00000000 P5=20084000
P6=00000000 P7=00000004 P8=00D40077 P9=0000000F P10=00000000
r0=00D40077 r1=2014079C r2=201404B2 r3=201407A4 r4=2004D2F0
r5=2004D310 r6=2004D317 r7=00000000 r8=00000000 ERF=80000000
KA655-B V5.3, VMB 2.7 Performing normal system tests. 40..39..38..
?33 2 01 FF 00 0001
P1=00000000 P2=00000000 P3=00000000 P4=00000000 P5=00000000
P6=00000000 P7=00000000 P8=00000000 P9=0000000F P10=00000000
r0=80000017 r1=20080100 r2=00000012 r3=20140784 r4=2004D534
r5=2004D54E r6=20055157 r7=00000000 r8=00000000 ERF=80000000
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.. Normal operation not possible.
Inicia desde el disco duro
set boot dua0 boot (BOOT/R5:0 DUA0
-. -DUA0 -.0..
%SYSBOOT-I-SYSBOOT Mapping the SYSDUMP.DMP on the System Disk
%SYSBOOT-W-SYSBOOT Can not map SYSDUMP.DMP on the System Disk
%SYSBOOT-I-SYSBOOT Mapping PAGEFILE.SYS on the System Disk
%SYSBOOT-I-SYSBOOT SAVEDUMP parameter not set to protect the
PAGEFILE.SYS OpenVMS (TM) VAX Version BI73-7G7 Major version id
%WBM-I-WBMINFO Write Bitmap has successfully completed initialization.
OpenVMS VAX V7.3 Installation Procedure
Model: VAXserver 3900 Series System device:
RA92 - _DUA0: Free Blocks: 2854566 CPU type:
10-01
* Please enter the date and time (DD-MMM-YYYY HH:MM)
Login
“Logging on” a una computadora OpenVMS lleva a cabo dos funciones pricipales. Primero prepara la computadora para aceptar comandos y segundo le hace saber a la computadora quien eres. Permitiendole saber cuales son los recursos y archivos que tienes permitido accesar.
Para conectarse a un sistema VMS debemos contar con nuestro Username y Password, lo mismo aplica si estamos accediendo desde una terminal conectada directamente a la computadora o a traves de la red por ejemplo con Telnet o Secure SHell (SSH).
Welcome to OpenVMS (TM) Alpha Operating System, Version V8.3
Username:
Es común que después de un acceso exitoso, se desplieguen en la terminal
mensajes del administrador del sistemas con anuncios importantes u otra
información de utilidad para los usuarios. Al terminar debe mostrarnos
el prompt que normalmente es un signo $
*****************************************************
WELCOME to CCSS Interactive Learning this is the OpenVMS
Alpha Lab System
This system is provided by Stromasys SA.
*****************************************************
$
Logout
Para terminar la sesión de trabajo en el sistema siempre
debes cerrar todos los programas y utilizar el comando LOGOUT
o
LO
, para evitar perdida de datos o daño al sistema de archivos.
$ LOGOUT Connection closed by foreign host.P-2011 15:34:06.04
Cambiar password
Para cambiar el password utiliza el comando SET PASSWORD
,
algunos sistemas implementan todas o algunas de las siguientes reglas
para los passwords:
- El password no puede ser el mismo que el anterior.
- El password no puede ser el mismo que el username.
- Password history, el nuevo password no puede haber sido usado por el mismo usuario en ‘‘N’’ número de meses.
- Password dictionary, el password no puede ser una palabra en el diccionario Inglés.
- Password dictionary, el password es una palabra agregada al diccionario de passwords por el administrador del sistema.
$ SET PASSWORD Old password: New password: Verification: $
Como se menciono, no es raro encontrar los sistemas VMS en configuración de cluster, para acceder a otro nodo dentro del mismo cluster usamos el comando ‘‘SET HOST’’ que conecta tu terminal a traves del procesador del host actual a otro procesador, llamado el procesador remoto. Es requisito tener una cuenta de usuario en el procesador remoto.
MANSON $ SET HOST GEIN
DIGITAL Command Language (DCL)
OpenVMS DCL es el lenguaje desarrollado por DEC para decirle a VMS que hacer, los archivos de comandos de VMS se llaman “DCL command procedures”.
La mayoría de los comandos DCL son palabras en Inglés pero es posible escribir solo las primeras 3 o 4 letras de un comando DCL ya que ningún comando inicia con las mismas 4 letras.
VMS no es sensible a Mayusculas y Minusculas, por lo tanto es posible escribir nombres de archivos y comandos en minusculas o mayusculas o una conbinacion de ambas, VMS los transforma en Mayusculas.
Historia de comandos
OpenVMS recuerda los comandos que se han tecleado y pueden usarse nuevamente presionando la ‘‘tecla de flecha arriba’’. Por lo menos 20 comandos se guardan. También podemos usar la ‘‘flecha abajo’’.
El comando ‘‘RECALL/ALL’’ muestra una lista de todos los comandos en el buffer.
Total of 3 files. $ RECALL/ALL 1 DIR 2 RECALL/ALL
Ejecuta un comando en el historial.
$ RECALL 1 $ DIR
Directory DISK$USERDISK:[ECELIS]
CC-001.DIR;1 MAIL.MAI;1 WORK.DIR;1
Total of 3 files.
Limpiar el buffer
$ RECALL/ERASE
Discos
Los discos también llamados dispositivo en OpenVMS se identifican por el nombre del disco seguido por ‘’’:’’’ y su nombre puede ser de hasta 255 caracteres. OpenVMS puede representar directorios como dispositivos de disco.
Nombres típicos par los discos pueden ser:
’'’DKA100:’’’ (este es un nombre de hardware asignado al momento del incio por la computadora)
’'’DSA2:
’'’USER$:
’'’DISK$SYSTEM:
Estos 3 últimos son nombres de dispositivo creados por un programador para ser descriptivos de su localización, función, propietario, etc.
Nombres lógicos son cadenas de texto usadas principalmente para reemplazar parte o completamente una especificación de dispositivo, especialmente las partes DISPOSITIVO y DIRECTORIO. Existen varios nombres lógicos como por ejemplo:
'’SYS$OUTPUT:’’ el lugar donde la salida estandar es enviada. ‘‘SYS$ERROR:’’ el lugar donde los mensajes de error se envian. ‘‘SYS$INPUT:’’ el lugar de donde se leen los datos. ‘‘SYS$COMMAND:’’ el lugar de donde se leen comandos DCL. ‘‘TT:’’ otro nombre para la terminal. ‘‘NLA0:’’ el dispositivo null, todo lo enviado aquí desaparece.
Al iniciar sesión la computadora coloca al usuario en el directorio hogar. En cual dispositivo esta albergado este directori lo decide el administrador al momento de crear la cuenta.
Muestra el directorio hogar
$ SHOW DEFAULT DISK$USERDISK:[ECELIS]
Este comando muestra que los archivos están en el dispositivo DISK$USERDISK:’’’ en el directorio llamado ‘'’ECELIS’’’. A esta combinación de dispositivo y directorio se le llama ‘'’ruta del directorio’’’. Otra ruta importante es ‘'’SYS$LOGIN’’’, que es un puntero al directorio inicial.
Ir al directorio inicial
$ SET DEFAULT SYS$LOGIN
Los directorio en OpenVMS van encerrados en brackets [] y los sub-directosio son separados con puntos ‘’’.’’’. OpenVMS puede tener un jerarquía de hasta 7 niveles de subdirectorios.
[ECELIS.TRABAJO]
Los nombres de archivo que terminan con ‘’‘.DIR’’’ en el listado de archivos son directorios.
Un directorio arriba
dir [-]
Archivos
En OpenVMS los archivos se identifican con un nombre de archivo, un punto un tipo de archivo, un punto y coma y un número de versión.
nombre.tipo;n
Los nombres de archivo no pueden iniciar con un punto, ‘’’-‘’’ y ‘'’_ pueden ser parte del nombre de archivo, pero solo en medio del nombre, si se encuentran al final VMS lo interpreta como si fuera a haber una línea de continuación.
A partir de la versión 4, VMS permite hasta 39 caracteres para el nombre y ahora hay también una extensión que permite hasta 236 sin contar la versión y permite usar caracteres del conjunto LATIN-1.
En DCL Wilcards son caractéres, ‘’‘*’’’ representa muchos caracteres,
%
representa un solo caracter.
[.*]
funciona para todos los irectorios.
$ COPY login.com [.work]
$ RENAME login.com [.work]nuevo_nombre.com
$ DELETE login.com;2
CREATE/DIRECTORY [.mail]
$ PURGE $ PURGE/LOG $ PURGE/CONFIRM
$ CREATE mi_archivo.txt Hola esta es una linea esta es otra y esta es la
ultima "CTRL-Z" para finalizar Exit
$ TYPE/PAGE mi_archivo.txt Hola esta es una linea esta es otra y esta es
la ultima "CTRL-Z" para finalizar
TYPE/TAIL[=100]
$ SEARCH login.com "login" $! Template '''login'''.com procedure for
DECUServe users.
$ DIFFERENCES test.txt;1 test.txt;3 ************ File
EISNER$DRA3:[DECUSERVE_USER.CELIS]TEST.TXT;1 ****** File
EISNER$DRA3:[DECUSERVE_USER.CELIS]TEST.TXT;3 4 ahora use EDT para
modificarlo ************
Number of difference sections found: 1 Number of difference records
found: 1
DIFFERENCES /IGNORE=()/MERGED=1-
EISNER$DRA3:[DECUSERVE_USER.CELIS]TEST.TXT;1-
EISNER$DRA3:[DECUSERVE_USER.CELIS]TEST.TXT;3
Define un valor lógico especificando un lugar’’’ y copia un archivo de ese lugar al directorio actual.
$ DEFINE ahi DISK1:[USERS.JUAN] $ COPY ahi:archivo.txt []
Permisos
$ DIRECTORY/OWNER/PROTECTION
Directory EISNER$DRA3:[DECUSERVE_USER.CELIS]
FTP_SERVER.LOG;1 [CELIS] (RWED,RWED,,)
LOGIN.COM;1 [CELIS] (RWED,RWED,,)
MAY_TEXT_FILE.TXT;1 [CELIS] (RWED,RWED,,)
NOTES$NOTEBOOK.NOTE;1 [DECUSERVE] (RWE,RWE,,)
$ SET SECURITY/PROTECTION=(owner:read,write,execute,delete) work.dir;1
CREATE/DIRECTORY/OWNER_UIC=PARENT
Hmm. I did nothing special. Make certain that the WWW directory is
accessible. Here's the output of DIRECTORY/SECURITY for my WWW.DIR:
WWW.DIR;1 [SUPPORT,SCHENKENBERG] (RWE,RWE,,E)
Also, the INDEX.HTML file much be accessible as well. Here's what mine
looks like:
INDEX.HTML;2 [SUPPORT,SCHENKENBERG] (RWED,RWED,,RE)
Access it with:
Muchos comandos requiere cierta información para hacer su trabajo, como por ejemplo ‘’’'’COPY’’’’’, si solo escribimos el comando si pasarle los parámetros de cual objeto copiar y donde hacer la copia, DCL amablemente nos pregunta por la información que le hace falta.
MANSON $ COPY
_From: notebook.note _To: note.bak
MANSON $ DIR
Directory DISK$USERS:[USERS.ECELIS] MAIL.DIR;1 NOTE.BAK;1
NOTEBOOK.NOTE;1 SRC.DIR;1
Total of 4 files.
MANSON $
LOGIN.COM
es el archivo de onfiguracion de nuestro ambiente de
trabajo
DEFINE EVE$INIT SYS$LOGIN:EVE$INIT.EVE EVE :== EDIT/TPU
Podemos hacer cambios en LOGIN.COM y hacerlos efectivos ejecutando
$ @LOGIN.COM
SHOW NET/FULL
Is it closer to a unix lsof -i4 command than to a netstat.
When you have an attack, this is the tool you use to find out what IP address is connecting to what service(s).
Muestra las caracteisticas de la terminal
$ show terminal Terminal: _TNA51: Device_Type: Unknown Owner:
ECELIS Remote Port Info: Host:
dsl-201-103-149-199-dyn.prod-infinitum.com
Input: 9600 LFfill: 0 Width: 80 Parity: None
Output: 9600 CRfill: 0 Page: 24
Terminal Characteristics: Interactive Echo
Type_ahead No Escape Hostsync TTsync
Lowercase No Tab Wrap Scope No
Remote No Eightbit Broadcast No Readsync No
Form Fulldup No Modem No Local_echo No
Autobaud Hangup No Brdcstmbx No DMA No
Altypeahd Set_speed No Commsync Line Editing
Overstrike editing No Fallback No Dialup No Secure server No
Disconnect No Pasthru No Syspassword No SIXEL Graphics No Soft
Characters No Printer Port Numeric Keypad No ANSI_CRT No
Regis No Block_mode No Advanced_video No Edit_mode No
DEC_CRT No DEC_CRT2 No DEC_CRT3 No DEC_CRT4 No
DEC_CRT5 No Ansi_Color VMS Style Input <CTRL-H> Backspace
Cambiar caateristicas de la terminal
$ SET TERMINAL
Por default OpenVMS coloca los mensajes en un folder ‘'’MAIL’’’, si no hay correos, o todos los mensjaes se borran, este folder desaparece. Cuando se eliminan mensajes van a dar al folder ‘'’WASTEBASKET’’’, para vaciar este folder se utiliza el comando ‘’’'’PURGE’’’’’; igual que
MAIL’’’ este folder desaparece si no tiene mensajes.
Lista los folders
MAIL> DIRECTORY/FOLDER
Crea un folder
MAIL> FILE/MIFOLDER
Cambia al directorio ‘’’'’Wastebasket’’’’’.
MAIL> SET FOLDER WASTEBASKET
'’SENT’’ o ‘‘MAIL’’ envian mensajes, o ‘‘NODO::”smtp%destinoo@top.lvl.dom”’’
'’DELETE’’’’’ elimina los mensajes del folder actual y los envía a WASTEBASKET’’’, podemos eliminar el mensaje que estams leyendo actualmente, especificar los mensajes que deseamos borrar en particular, separados por comas o en rangos. Los mensajes eliminados se mantienen en el folder ‘'’WASTEBASKET’’’ hasta que se ejecuta el comando ‘‘PURGE’’’’’.
MAIL> DELETE 1,4-6 MAIL> DELETE/ALL MAIL> PURGE
MAIL> SHOW ALL Your mail file directory is DISK$USERDISK:[ECELIS.MAIL].
Your current mail file is DISK$USERDISK:[ECELIS.MAIL]MAIL.MAI. No
folder is currently selected. The wastebasket folder name is
WASTEBASKET. Mail file DISK$USERDISK:[ECELIS.MAIL]MAIL.MAI contains 951
deleted message bytes.
You have 0 new messages.
You have not set a forwarding address. Your personal name is "Ernesto
Celis". Your editor is TPU. CC prompting is disabled. Automatic
copies to yourself are disabled. Automatic deleted message purge is
enabled. Your default print queue is SYS$PRINT. You have not specified
a default print form. You have not specified a default signature file.
MAIL> SET PERSONAL_NAME "Ernesto Celis"
MAIL> SET MAIL [.mail] %MAIL-I-CREATED, DISK$USERDISK:[ECELIS.MAIL]
created
Muestra la cola de impresion default.
SHOW LOGIAL SYS$PRINT
Define la impresora default para la sesion actual
DEFINE SYS$PRINT
envia login.com a la cola sales$print sin necesidad de definr una cola default
PRINT/QUEUE=SALES$PRINT LOGIN.com
muestra los trabajos de impresion en todas las colas.
SHOW QUEUE/ALL
Algo
CC NAVBAT.C LINK NAVBAT.O RUN NAVBAT.EXE
Edición de Texto
VMS cuenta con varios editores disponibles, los dos mas comunes son EVE (Extensible Versatile Editor) que implementa la Utilidad de Procesamiento de Texto (TPU) de VMS. Y EDT un desarrollado como editor comun a traves de los diferentes sistemas operativos de DEC. EVE esta pensado para su uso en pantalla, mientras EDT tiene un modo de linea.
Si al invocar el comando ‘'’EDIT’’’ se te pregunta por el nombre de archivo, entonces el editor por default es ‘'’EDT’’’, por el contrario si aparece una barra de estado en la parte de abajo de la pantalla que dice Buffer: a la izquierda y |Write|Insert|Forward a la derecha EVE es el editor pre-determinado.
Para salir de EDT presionamos ‘'’CTRL+C’’’, para salir de EVE presiona
CTRL+Z’’’ y se te ofrece la linea de comando de EVE, donde debes
escribir EXIT para regresar al prompt DCL.
CTRL+Z’’’ tembien funciona para cambiar entre modo de comandos y
edicion en pantalla para EDT.
Formas de invocar los editores de VMS
$ EDIT/EDT
$ EDIT/TPU
EVE$INIT.EVE
es el archivo de configuracion del editor EVE.
! Make keypad act like EDT keypad
SET KEYPAD EDT
! Instead of EXIT, CONTORL-Z will prompt for Command:
! Very handy for PC's with no F16 (DO) key
DEFINE KEY=CTRL-Z DO
! Makes cursor go to begining of next line from
! end of previous line like EDT
SET CURSOR BOUND
! Keeps DECwindows motif mouse from affecting
!EVE functions [End of file] TPU
SET(MOUSE,OFF)
El comando ‘'’SPAWN’’’ de EVE nos permite ir al prompt DCL para ejecutar comandos sin abandonar la sesion de edicion, para regresar al editor solo es necesario ejecutar ‘'’LOGOUT
El comando ‘'’WRITE’’’ guarda los cmabios en la sesion de edicion actual sin salir del archivo, tambien genera una nueva version del archivo en el sistema.
Imposible determinar el tipo de terminal.
$ EDIT
%TPU-E-NONANSICRT, SYS$INPUT must be supported CRT
$ SET TERMINAL/INQUIRE
TIME SHOW LOGICAL SYS$LOGIN
- ’'’CTRL+Y’’’ es la interrupción. Si un comando despliega información en la pantalla y ya no quieres verla, presiona ‘'’CTRL+Y’’’. Esto también es útil si algo va mal con algu n programa, ‘'’CTR+Y abortara cualquier actividad actual de la sesión.
Referencias
- http://www.wherry.com/gadgets/retrocomputing/vax-simh.html
- http://mailman.trailing-edge.com/pipermail/simh/2006-November/000773.html
- http://h71000.www7.hp.com/doc/73final/6489/6489pro.html]
- http://alpha.mike-r.com/VMS_beginners_faq.html
- http://www.hoffmanlabs.com/vmsfaq/vmsfaq.html
- CCSS Interactive Learning - Entrenamiento On-Line
- http://deathrow.vistech.net
- http://kuhl-us.com/gadgets/retrocomputing/vax-simh.html
- http://mailman.trailing-edge.com/pipermail/simh/2006-November/000773.html