# OpenVMS

El sistema operativo OpenVMS (Sistema de Memoria Virtual) es un sistema multiusuario y multiproceso diseñado por DEC, ahora parte de VMS Software Inc. (VSI), para su utilización en entornos de tiempo compartido, tiempo real, procesamiento por lotes y procesamiento de transacciones. Conocido inicialmente como VMS, se ejecutaba sobre sistemas VAX, el nombre cambió a OpenVMS en 1990. Fue posteriormente portado a DEC Alpha (1992), Intel Itanium (2005) y x86-64 (2019).
Desde 2014, OpenVMS continua su desarrollo y soporte mediante una empresa denominada VMS Software Inc. (VSI).
OpenVMS permite alta disponibilidad a través de clustering y la capacidad de distribuir el sistema en múltiples máquinas físicas. Los clústeres VMS permiten la creación de aplicaciones que pueden soportar caídas planeadas o sin planear de partes del clúster. Esto permite que las aplicaciones y los datos agrupados permanezcan continuamente disponibles mientras se realiza el mantenimiento y las actualizaciones del software y el hardware del sistema operativo, o cuando un centro de datos entero es destruido. Se han registrado tiempos de actividad de clústeres VMS de 17 años. Entre los clientes que utilizan OpenVMS se encuentran bancos y servicios financieros, hospitales y atención sanitaria, operadores de telecomunicaciones, servicios de información en red y fabricantes industriales. Durante las décadas de 1990 y 2000, había aproximadamente medio millón de sistemas VMS en funcionamiento en todo el mundo.

## Arquitectura

El sistema operativo OpenVMS tiene una arquitectura en capas, que consiste en un Executive (Ejecutivo) privilegiado, un Intérprete de Línea de Comandos (Command Line Interpreter, CLI) que se ejecuta en un nivel intermedio de privilegio, y utilidades y bibliotecas de tiempo de ejecución (Runtime libraries, RTL) que se ejecutan en un modo no privilegiado, pero que potencialmente pueden ejecutarse en un nivel superior de privilegio si se autoriza a hacerlo. El código no privilegiado normalmente invoca la funcionalidad del Ejecutivo a través de los servicios del sistema (equivalente a las llamadas al sistema en otros sistemas operativos).
Las capas y mecanismos de OpenVMS están construidos alrededor de ciertas características de la arquitectura VAX, incluyendo:
* La disponibilidad de cuatro modos de acceso al procesador (denominados Núcleo, Ejecutivo, Supervisor y Usuario, en orden de privilegio decreciente). Cada modo tiene su propia pila, y cada página de memoria puede tener protecciones de memoria especificadas por modo.
* Un espacio de direcciones virtual que se divide en secciones de espacio privado de proceso y secciones de espacio de sistema que son comunes a todos los procesos.
* 32 niveles de prioridad de interrupción que se utilizan para la sincronización.
* Soporte de hardware para entregar trampas de sistema asíncronas a los procesos.
Estos mecanismos de la arquitectura VAX se implementan en Alpha, Itanium y x86-64 mediante el mapeo de los mecanismos de hardware correspondientes en esas arquitecturas, o a través de la emulación (a través de PALcode en Alpha, o en software en Itanium y x86-64).

## Influencia

Durante la década de 1980, el sistema operativo MICA para la arquitectura PRISM estaba destinado a ser el eventual sucesor de VMS. MICA fue diseñado para mantener la compatibilidad hacia atrás con las aplicaciones VMS, mientras que también apoya aplicaciones Ultrix en la parte superior del mismo kernel. MICA fue finalmente cancelado junto con el resto de la plataforma PRISM, lo que llevó a Dave Cutler a dejar Digital por Microsoft. En Microsoft, Cutler dirigió la creación del sistema operativo Windows NT, que se inspiró en gran medida en la arquitectura de MICA. Por ello, VMS se considera un ancestro de Windows NT, junto con RSX-11, VAXELN y MICA, y existen muchas similitudes entre VMS y NT. Este linaje queda claro en el prólogo de Cutler a "Inside Windows NT" de Helen Custer.
Un proyecto ya desaparecido llamado FreeVMS intentó desarrollar un sistema operativo de código abierto siguiendo las convenciones del VMS. FreeVMS se construyó sobre la familia de micronúcleos L4 y soportaba la arquitectura x86-64. El trabajo previo que investigaba la implementación de VMS usando una arquitectura basada en un microkernel había sido realizado previamente como un ejercicio de prototipo por los empleados de DEC con la asistencia de la Carnegie Mellon University usando el micronúcleo Mach 3.0 portado al hardware VAXstation 3100, adoptando un modelo de arquitectura multiservidor.
Un derivado no oficial de VAX/VMS denominado MOS VP (en ruso Многофункциональная операционная система с виртуальной памятью, МОС ВП, Sistema operativo multifuncional con memoria virtual}}) fue creado en la Unión Soviética durante la década de 1980 para la línea SM 1700 de hardware clónico de VAX. La principal diferencia entre MOS VP y las versiones oficiales de Digital era la traducción de los comandos, mensajes y documentación al ruso, y el soporte de la escritura cirílica utilizando la codificación KOI-8. También se crearon derivados modificados de MicroVMS conocidos como MicroMOS VP (en ruso МикроМОС ВП) o MOS-32M ( en ruso МОС-32М).

## Programas para aficionados

En 1997, OpenVMS y una serie de productos en capas se pusieron a disposición de los aficionados de forma gratuita y sin fines comerciales como parte del OpenVMS Hobbyist Program (Programa para aficionados de OpenVMS). Desde entonces, varias empresas que producen software para OpenVMS han puesto sus productos a disposición bajo los mismos términos, como Process Software. Antes de portarlo a x86-64, la antigüedad y el coste del hardware capaz de ejecutar OpenVMS hicieron que emuladores como SIMH fueran una opción común para las instalaciones de aficionados.
En marzo de 2020, HPE anunció el fin del Programa para Aficionados de OpenVMS. A esto le siguió el anuncio de VSI del Programa de Licencias Comunitarias (CLP) en abril de 2020, que pretendía sustituir al Programa para Aficionados de HPE. El CLP se lanzó en julio de 2020, y proporciona licencias para las versiones de VSI OpenVMS en sistemas Alpha e Integrity. Las licencias de OpenVMS x86-64 estarán disponibles cuando se publique una versión estable para esta arquitectura. OpenVMS para VAX no está cubierto por el CLP, ya que no hay versiones VSI de OpenVMS VAX, y las versiones antiguas siguen siendo propiedad de HPE.