Revelador | VMS Software Inc (VSI) [1] (anteriormente Digital Equipment Corporation , Compaq , Hewlett-Packard ) |
---|---|
Escrito en | Principalmente C , BLISS , VAX MACRO , DCL . [2] También se utilizan otros lenguajes. [3] |
Estado de funcionamiento | Actual |
Modelo fuente | Código cerrado con componentes de código abierto . Anteriormente, el código fuente estaba disponible [4] [5] |
Lanzamiento inicial | Anunciado: 25 de octubre de 1977 ( 25 de octubre de 1977 ) ( 1978-08 ) | V1.0 / agosto de 1978
Último lanzamiento | V9.2-2 / 25 de enero de 2024 ( 25-01-2024 ) | [6]
Última vista previa | E9.2-3 / 8 de agosto de 2024 ( 08-08-2024 ) |
Objetivo de marketing | Servidores (históricamente minicomputadoras , estaciones de trabajo ) |
Disponible en | Inglés , japonés . [7] Soporte histórico para chino ( caracteres tradicionales y simplificados ), coreano y tailandés . [8] |
Método de actualización | Actualizaciones concurrentes, actualizaciones continuas |
Gestor de paquetes | PCSI y VMSINSTAL |
Plataformas | VAX , Alfa , Itanium , x86-64 |
Tipo de kernel | Núcleo monolítico con módulos cargables |
Influenciado | VAXELN , MICA , Windows NT |
Influenciado por | RSX-11M |
Interfaz de usuario predeterminada | Interfaz de línea de comandos DCL y interfaz gráfica de usuario de DECwindows |
Licencia | Propiedad |
Sitio web oficial | es:vmssoftware.com |
OpenVMS , a menudo denominado simplemente VMS , [9] es un sistema operativo multiusuario , multiprocesamiento y basado en memoria virtual . Está diseñado para admitir aplicaciones de tiempo compartido , procesamiento por lotes , procesamiento de transacciones y estaciones de trabajo . [10] Entre los clientes que utilizan OpenVMS se incluyen bancos y servicios financieros, hospitales y atención médica, operadores de telecomunicaciones, servicios de información de red y fabricantes industriales. [11] [12] Durante las décadas de 1990 y 2000, había aproximadamente medio millón de sistemas VMS en funcionamiento en todo el mundo. [13] [14] [15]
OpenVMS fue anunciado por primera vez por Digital Equipment Corporation (DEC) como VAX/VMS ( Virtual Address eXtension/Virtual Memory System [16] ) junto con la minicomputadora VAX-11/780 en 1977. [17] [18] [19] OpenVMS ha sido posteriormente portado para ejecutarse en sistemas DEC Alpha , los servidores HPE Integrity basados en Itanium , [20] y hardware x86-64 selecto e hipervisores . [21] Desde 2014, OpenVMS es desarrollado y soportado por VMS Software Inc. (VSI). [22] [23] OpenVMS ofrece alta disponibilidad a través de clustering : la capacidad de distribuir el sistema en múltiples máquinas físicas. [24] Esto permite que las aplicaciones y los datos agrupados permanezcan continuamente disponibles mientras se realizan el mantenimiento y las actualizaciones del software y hardware del sistema operativo, [25] o si se destruye parte del cluster. [26] Se han reportado tiempos de actividad del cluster VMS de 17 años. [27]
En abril de 1975, Digital Equipment Corporation se embarcó en un proyecto para diseñar una extensión de 32 bits para su línea de computadoras PDP-11 . El componente de hardware recibió el nombre en código Star ; el sistema operativo recibió el nombre en código Starlet . Roger Gourd fue el líder del proyecto para VMS. Los ingenieros de software Dave Cutler , Dick Hustvedt y Peter Lipman actuaron como líderes técnicos del proyecto. [28] Los proyectos Star y Starlet culminaron en la computadora VAX-11/780 y el sistema operativo VAX/VMS. El nombre en código del proyecto Starlet sobrevive en VMS en el nombre de varias de las bibliotecas del sistema, incluidas STARLET.OLB
y STARLET.MLB
. [29] VMS se escribió principalmente en VAX MACRO con algunos componentes escritos en BLISS . [9]
Uno de los objetivos originales de VMS era la compatibilidad con el sistema operativo RSX-11M existente de DEC . [9] Antes del lanzamiento de la V3.0, VAX/VMS incluía una capa de compatibilidad llamada RSX Application Migration Executive (RSX AME), que permitía ejecutar el software RSX-11M en modo usuario sin modificaciones sobre VMS. [30] El RSX AME jugó un papel importante en las primeras versiones de VAX/VMS, que usaban ciertas utilidades de modo usuario RSX-11M antes de que se desarrollaran las versiones nativas de VAX. [9] Con el lanzamiento de la V3.0, todas las utilidades de modo de compatibilidad fueron reemplazadas por implementaciones nativas. [31] En VAX/VMS V4.0, RSX AME fue eliminado del sistema base y reemplazado por un producto en capas opcional llamado VAX-11 RSX . [32]
Se crearon varias distribuciones de VAX/VMS:
Con el lanzamiento de la versión 5.0 en abril de 1988, DEC comenzó a referirse a VAX/VMS simplemente como VMS en su documentación. [47] En julio de 1992, [48] DEC renombró VAX/VMS a OpenVMS como una indicación de su apoyo a los estándares de la industria de sistemas abiertos como POSIX y compatibilidad con Unix , [49] y para abandonar la conexión VAX ya que se estaba llevando a cabo una migración a una arquitectura diferente. El nombre OpenVMS se utilizó por primera vez con el lanzamiento de OpenVMS AXP V1.0 en noviembre de 1992. DEC comenzó a utilizar el nombre OpenVMS VAX con el lanzamiento de la versión 6.0 en junio de 1993. [50]
Durante la década de 1980, DEC planeó reemplazar la plataforma VAX y el sistema operativo VMS con la arquitectura PRISM y el sistema operativo MICA . [52] Cuando estos proyectos se cancelaron en 1988, se creó un equipo para diseñar nuevos sistemas VAX/VMS de rendimiento comparable a los sistemas Unix basados en RISC . [53] Después de una serie de intentos fallidos de diseñar un procesador compatible con VAX más rápido, el grupo demostró la viabilidad de portar VMS y sus aplicaciones a una arquitectura RISC basada en PRISM. [54] Esto condujo a la creación de la arquitectura Alpha . [55] El proyecto para portar VMS a Alpha comenzó en 1989 y arrancó por primera vez en un prototipo de unidad de demostración Alpha basada en Alpha EV3 a principios de 1991. [54] [56]
El principal desafío en portar VMS a una nueva arquitectura fue que VMS y VAX fueron diseñados juntos, lo que significa que VMS dependía de ciertos detalles de la arquitectura VAX. [57] Además, una cantidad significativa del núcleo VMS, productos en capas y aplicaciones desarrolladas por el cliente se implementaron en código ensamblador VAX MACRO . [9] Algunos de los cambios necesarios para desacoplar VMS de la arquitectura VAX incluyeron la creación del compilador MACRO-32 , que trató a VAX MACRO como un lenguaje de alto nivel y lo compiló en código objeto Alpha , [58] y la emulación de ciertos detalles de bajo nivel de la arquitectura VAX en PALcode , como el manejo de interrupciones e instrucciones de cola atómica.
El puerto de VMS a Alpha resultó en la creación de dos bases de código separadas: una para VAX y otra para Alpha. [4] La biblioteca de código Alpha se basó en una instantánea de la base de código VAX/VMS alrededor de V5.4-2. [59] En 1992 se lanzó la primera versión de OpenVMS para sistemas Alpha AXP , denominada OpenVMS AXP V1.0 . En 1994, con el lanzamiento de OpenVMS V6.1, se logró la paridad de características (y número de versión) entre las variantes VAX y Alpha; esta fue la llamada versión de Equivalencia Funcional. [59] La decisión de usar el flujo de numeración de la versión 1.x para las versiones de calidad de preproducción de OpenVMS AXP confundió a algunos clientes y no se repitió en las versiones posteriores de OpenVMS a nuevas plataformas. [57]
Cuando VMS fue portado a Alpha, inicialmente se dejó como un sistema operativo de solo 32 bits. [58] Esto se hizo para asegurar la compatibilidad con versiones anteriores del software escrito para VAX de 32 bits. El direccionamiento de 64 bits se agregó por primera vez para Alpha en la versión V7.0. [60] Para permitir que el código de 64 bits interopere con código de 32 bits más antiguo, OpenVMS no crea una distinción entre ejecutables de 32 bits y 64 bits, sino que permite que se usen punteros de 32 bits y 64 bits dentro del mismo código. [61] Esto se conoce como soporte de puntero mixto. Las versiones Alpha de OpenVMS de 64 bits admiten un tamaño máximo de espacio de dirección virtual de 8TiB (un espacio de dirección de 43 bits), que es el máximo admitido por Alpha 21064 y Alpha 21164. [ 62]
Una de las características más notables de la versión Alpha de OpenVMS fue OpenVMS Galaxy , que permitía la partición de un único servidor SMP para ejecutar varias instancias de OpenVMS. Galaxy admitía la asignación dinámica de recursos para las particiones en ejecución y la capacidad de compartir memoria entre particiones. [63] [64]
En 2001, antes de su adquisición por parte de Hewlett-Packard , Compaq anunció el puerto de OpenVMS a la arquitectura Intel Itanium . [65] El puerto Itanium fue el resultado de la decisión de Compaq de discontinuar el desarrollo futuro de la arquitectura Alpha a favor de adoptar la entonces nueva arquitectura Itanium. [66] La portabilidad comenzó a fines de 2001 y el primer arranque tuvo lugar el 31 de enero de 2003. [67] El primer arranque consistió en arrancar una configuración mínima del sistema en una estación de trabajo HP i2000 , iniciar sesión como SYSTEM
usuario y ejecutar el DIRECTORY
comando. El puerto Itanium de OpenVMS admite modelos y configuraciones específicos de servidores HPE Integrity . [10] Las versiones de Itanium se denominaron originalmente HP OpenVMS Industry Standard 64 para servidores Integrity , aunque los nombres OpenVMS I64 u OpenVMS para servidores Integrity se usan más comúnmente. [68]
El puerto de Itanium se logró utilizando código fuente mantenido en común dentro de la biblioteca de código fuente OpenVMS Alpha, con la adición de código condicional y módulos adicionales donde se requirieron cambios específicos de Itanium. [57] Esto requirió que ciertas dependencias arquitectónicas de OpenVMS fueran reemplazadas o emuladas en software. Algunos de los cambios incluyeron el uso de la Interfaz de Firmware Extensible (EFI) para iniciar el sistema operativo, [69] reimplementar la funcionalidad previamente proporcionada por Alpha PALcode dentro del núcleo, [70] usar nuevos formatos de archivo ejecutables ( Executable and Linkable Format y DWARF ), [71] y adoptar IEEE 754 como el formato de punto flotante predeterminado. [72]
Al igual que con la conversión de VAX a Alpha, se puso a disposición un traductor binario de Alpha a Itanium, lo que permitió que el software OpenVMS Alpha en modo usuario se transfiriera a Itanium en situaciones en las que no era posible volver a compilar el código fuente. Este traductor se conoce como Alpha Environment Software Translator (AEST) y también admitía la traducción de ejecutables VAX que ya se habían traducido con VEST. [73]
El 30 de junio de 2003 y el 18 de diciembre de 2003 se lanzaron dos versiones de preproducción, OpenVMS I64 V8.0 y V8.1. Estas versiones estaban destinadas a organizaciones de HP y a proveedores externos que se dedicaban a trasladar paquetes de software a OpenVMS I64. La primera versión de producción, V8.2, se lanzó en febrero de 2005. La V8.2 también se lanzó para Alpha; las versiones V8.x posteriores de OpenVMS han mantenido la paridad de características entre las arquitecturas Alpha e Itanium. [74]
Cuando VMS Software Inc. (VSI) anunció que había obtenido los derechos para desarrollar el sistema operativo OpenVMS de HP, también anunció su intención de portar OpenVMS a la arquitectura x86-64 . [75] El esfuerzo de portabilidad se realizó simultáneamente con la creación de la empresa, así como con el desarrollo de las versiones Itanium y Alpha de OpenVMS V8.4-x de VSI.
El puerto x86-64 está destinado a servidores específicos de HPE y Dell , así como a ciertos hipervisores de máquinas virtuales . [76] El soporte inicial estaba destinado a KVM y VirtualBox . El soporte para VMware se anunció en 2020, y Hyper-V se está explorando como un objetivo futuro. [77] En 2021, se demostró el puerto x86-64 ejecutándose en una computadora de placa única basada en Intel Atom . [78]
Al igual que con los puertos Alpha e Itanium, el puerto x86-64 realizó algunos cambios para simplificar la portabilidad y el soporte de OpenVMS en la nueva plataforma, incluyendo: reemplazar el backend del compilador GEM propietario utilizado por los compiladores VMS con LLVM , [79] cambiar el proceso de arranque para que OpenVMS se arranque desde un disco de memoria, [80] y simular los cuatro niveles de privilegios de OpenVMS en el software, ya que solo dos de los niveles de privilegios de x86-64 son utilizables por OpenVMS. [70]
El primer arranque se anunció el 14 de mayo de 2019. Esto implicó arrancar OpenVMS en VirtualBox y ejecutar con éxito el DIRECTORY
comando. [81] En mayo de 2020, la versión V9.0 Early Adopter's Kit se puso a disposición de una pequeña cantidad de clientes. Esto consistía en el sistema operativo OpenVMS ejecutándose en una máquina virtual VirtualBox con ciertas limitaciones; lo más importante, había pocos productos en capas disponibles y el código solo se puede compilar para x86-64 utilizando compiladores cruzados que se ejecutan en sistemas OpenVMS basados en Itanium. [21] Después del lanzamiento de V9.0, VSI lanzó una serie de actualizaciones de forma mensual o bimensual que agregaron funcionalidad adicional y soporte de hipervisor. Estas se designaron V9.0-A a V9.0-H. [82] En junio de 2021, VSI lanzó la prueba de campo V9.1, poniéndola a disposición de los clientes y socios de VSI. [83] La versión V9.1 se envía como una imagen ISO que se puede instalar en una variedad de hipervisores y en servidores HPE ProLiant DL380 a partir de la versión V9.1-A. [84]
Durante la década de 1980, el sistema operativo MICA para la arquitectura PRISM fue pensado para ser el sucesor final de VMS. MICA fue diseñado para mantener la compatibilidad con las aplicaciones VMS y al mismo tiempo soportar aplicaciones Ultrix sobre el mismo núcleo. [85] MICA fue finalmente cancelado junto con el resto de la plataforma PRISM, lo que llevó a Dave Cutler a dejar DEC para irse a Microsoft. En Microsoft, Cutler lideró la creación del sistema operativo Windows NT , que se inspiró en gran medida en la arquitectura de MICA. [86] Como resultado, VMS se considera un antecesor de Windows NT , junto con RSX-11 , VAXELN y MICA, y existen muchas similitudes entre VMS y NT. [87]
Un proyecto ahora extinto llamado FreeVMS intentó desarrollar un sistema operativo de código abierto siguiendo las convenciones VMS. [88] [89] FreeVMS se construyó sobre el microkernel L4 y admitía la arquitectura x86-64 . El trabajo previo que investigaba la implementación de VMS utilizando una arquitectura basada en microkernel se había llevado a cabo previamente como un ejercicio de creación de prototipos por parte de los empleados de DEC con la ayuda de la Universidad Carnegie Mellon utilizando el microkernel Mach 3.0 portado al hardware VAXstation 3100 , adoptando un modelo arquitectónico multiservidor. [90]
El sistema operativo OpenVMS tiene una arquitectura en capas, que consta de un ejecutivo privilegiado , un intérprete de lenguaje de comandos con privilegios intermedios y utilidades y bibliotecas de tiempo de ejecución (RTL) sin privilegios. [91] El código sin privilegios normalmente invoca la funcionalidad del ejecutivo a través de servicios del sistema (equivalentes a las llamadas del sistema en otros sistemas operativos).
Las capas y mecanismos de OpenVMS están construidos en torno a ciertas características de la arquitectura VAX, entre ellas: [91] [92]
Estos mecanismos de arquitectura VAX se implementan en Alpha, Itanium y x86-64 ya sea mediante el mapeo a los mecanismos de hardware correspondientes en esas arquitecturas, o mediante emulación (a través de PALcode en Alpha, o en software en Itanium y x86-64). [70]
El sistema ejecutivo de OpenVMS comprende el código privilegiado y las estructuras de datos que residen en el espacio del sistema. El sistema ejecutivo se subdivide a su vez entre el núcleo , que consiste en el código que se ejecuta en el modo de acceso del núcleo, y el código menos privilegiado fuera del núcleo, que se ejecuta en el modo de acceso del sistema ejecutivo. [91]
Los componentes del sistema ejecutivo que se ejecutan en modo de acceso ejecutivo incluyen los servicios de gestión de registros y ciertos servicios del sistema, como la activación de imágenes. La principal distinción entre los modos de acceso al núcleo y al ejecutivo es que la mayoría de las estructuras de datos centrales del sistema operativo se pueden leer desde el modo ejecutivo, pero requieren que se escriba en el modo núcleo. [92] El código que se ejecuta en modo ejecutivo puede cambiar al modo núcleo a voluntad, lo que significa que la barrera entre los modos núcleo y ejecutivo está pensada como una protección contra la corrupción accidental en lugar de un mecanismo de seguridad. [93]
El núcleo comprende las estructuras de datos centrales del sistema operativo (por ejemplo, las tablas de páginas, la base de datos de E/S y los datos de programación) y las rutinas que operan en estas estructuras. El núcleo se describe típicamente como un conjunto de tres subsistemas principales: E/S, gestión de procesos y tiempo, y gestión de memoria. [91] [92] Además, otras funciones como la gestión de nombres lógicos , la sincronización y el envío de servicios del sistema se implementan dentro del núcleo.
OpenVMS permite que el código en modo usuario con los privilegios adecuados cambie al modo ejecutivo o al modo kernel utilizando los servicios del sistema $CMEXEC
y $CMKRNL
, respectivamente. [94] Esto permite que el código fuera del espacio del sistema tenga acceso directo a las rutinas del ejecutivo y a los servicios del sistema. Además de permitir extensiones de terceros al sistema operativo, las imágenes privilegiadas son utilizadas por las utilidades del sistema operativo central para manipular las estructuras de datos del sistema operativo a través de interfaces no documentadas. [95]
La interfaz típica de usuario y aplicación en el sistema de archivos es el Record Management Services (RMS), aunque las aplicaciones pueden interactuar directamente con el sistema de archivos subyacente a través de los servicios del sistema QIO . [96] Los sistemas de archivos compatibles con VMS se conocen como Files-11 On-Disk Structures (ODS), de los cuales los más importantes son ODS-2 y ODS-5 . [97] VMS también es capaz de acceder a archivos en CD-ROM ISO 9660 y cintas magnéticas con etiquetas de cinta ANSI . [98]
Files-11 está limitado a volúmenes de 2 TiB. [97] DEC intentó reemplazarlo con un sistema de archivos estructurado en registros llamado Spiralog, lanzado por primera vez en 1995. [99] Sin embargo, Spiralog se suspendió debido a una variedad de problemas, incluidos problemas con el manejo de volúmenes completos. [100] En cambio, se ha discutido la posibilidad de portar el sistema de archivos GFS2 de código abierto a OpenVMS. [101]
Un intérprete de lenguaje de comandos (CLI) de OpenVMS implementa una interfaz de línea de comandos para OpenVMS, responsable de ejecutar comandos individuales y procedimientos de comando (equivalentes a scripts de shell o archivos por lotes ). [102] La CLI estándar para OpenVMS es el lenguaje de comandos DIGITAL , aunque hay otras opciones disponibles.
A diferencia de los shells de Unix , que normalmente se ejecutan en su propio proceso aislado y se comportan como cualquier otro programa en modo usuario, las CLI de OpenVMS son un componente opcional de un proceso, que existen junto con cualquier imagen ejecutable que ese proceso pueda ejecutar. [103] Mientras que un shell de Unix normalmente ejecutará ejecutables creando un proceso separado usando fork-exec , una CLI de OpenVMS normalmente cargará la imagen ejecutable en el mismo proceso, transferirá el control a la imagen y se asegurará de que el control se transfiera de nuevo a la CLI una vez que la imagen haya salido y que el proceso vuelva a su estado original. [91]
Debido a que la CLI se carga en el mismo espacio de direcciones que el código de usuario, y la CLI es responsable de invocar la activación y la ejecución de imágenes, la CLI se asigna al espacio de direcciones del proceso en el modo de acceso de supervisor, un nivel de privilegio más alto que la mayoría de los códigos de usuario. Esto se hace para evitar la manipulación accidental o maliciosa del código y las estructuras de datos de la CLI por parte del código de modo de usuario. [91] [103]
OpenVMS admite la agrupación en clústeres (primero denominada VAXcluster y luego VMScluster ), donde varias computadoras ejecutan su propia instancia del sistema operativo. Las computadoras agrupadas en clústeres (nodos) pueden ser completamente independientes entre sí, o pueden compartir dispositivos como unidades de disco e impresoras. La comunicación entre nodos proporciona una única abstracción de imagen del sistema. [104] Los nodos pueden conectarse entre sí a través de una conexión de hardware propietaria denominada Cluster Interconnect o a través de una LAN Ethernet estándar .
OpenVMS admite hasta 96 nodos en un solo clúster. También permite clústeres de arquitectura mixta. [24] Los clústeres OpenVMS permiten que las aplicaciones funcionen durante interrupciones planificadas o no planificadas. [105] Las interrupciones planificadas incluyen actualizaciones de hardware y software. [106]
El conjunto de protocolos DECnet está estrechamente integrado en VMS, lo que permite inicios de sesión remotos, así como acceso transparente a archivos, impresoras y otros recursos en sistemas VMS a través de una red. [107] VAX/VMS V1.0 presentaba soporte para DECnet Phase II, [108] y las versiones modernas de VMS admiten tanto el protocolo DECnet Phase IV tradicional, como el Phase V compatible con OSI (también conocido como DECnet-Plus ). [109] El soporte para TCP/IP lo proporciona el producto en capas TCP/IP Services for OpenVMS opcional (originalmente conocido como VMS/ULTRIX Connection , luego como ULTRIX Communications Extensions o UCX). [110] [111] TCP/IP Services se basa en un puerto de la pila de red BSD a OpenVMS, [112] junto con soporte para protocolos comunes como SSH , DHCP , FTP y SMTP .
DEC vendió un paquete de software llamado PATHWORKS (originalmente conocido como Personal Computer Systems Architecture o PCSA) que permitía a las computadoras personales que ejecutaban MS-DOS , Microsoft Windows o OS/2 , o Apple Macintosh servir como terminal para sistemas VMS, o usar sistemas VMS como servidor de archivos o de impresión. [113] PATHWORKS luego fue renombrado como Advanced Server for OpenVMS , y eventualmente fue reemplazado con un puerto VMS de Samba en el momento del puerto Itanium. [114]
DEC proporcionó el protocolo de transporte de área local (LAT) que permitía conectar terminales e impresoras remotas a un sistema VMS a través de un servidor de terminales como uno de la familia DECserver . [115]
DEC (y sus empresas sucesoras) proporcionaron una amplia variedad de lenguajes de programación para VMS. Los lenguajes admitidos oficialmente en VMS, ya sean actuales o históricos, incluyen: [116] [117]
Entre las características notables de OpenVMS se encuentra el Common Language Environment , un estándar estrictamente definido que especifica las convenciones de llamada para funciones y rutinas, incluido el uso de pilas , registros , etc., independientemente del lenguaje de programación. [118] Debido a esto, es posible llamar a una rutina escrita en un lenguaje (por ejemplo, Fortran) desde otro (por ejemplo, COBOL), sin necesidad de conocer los detalles de implementación del lenguaje de destino. OpenVMS en sí mismo está implementado en una variedad de lenguajes diferentes y el entorno de lenguaje común y el estándar de llamada admiten la mezcla libre de estos lenguajes. [119] DEC creó una herramienta llamada Structure Definition Language (SDL), que permitió generar definiciones de tipos de datos para diferentes lenguajes a partir de una definición común. [120]
DEC proporcionó una colección de herramientas de desarrollo de software en un producto en capas llamado DECset (originalmente llamado VAXset ). [116] Este consistía en las siguientes herramientas: [121]
El depurador OpenVMS es compatible con todos los compiladores DEC y muchos lenguajes de terceros. Permite puntos de interrupción, puntos de vigilancia y depuración interactiva de programas en tiempo de ejecución mediante una línea de comandos o una interfaz gráfica de usuario . [123] Se puede utilizar un par de depuradores de nivel inferior, denominados DELTA y XDELTA , para depurar código privilegiado además del código de aplicación normal. [124]
En 2019, VSI lanzó un entorno de desarrollo integrado con soporte oficial para VMS basado en Visual Studio Code . [76] Esto permite desarrollar y depurar aplicaciones VMS de forma remota desde una estación de trabajo Microsoft Windows , macOS o Linux . [125]
DEC creó una serie de productos de base de datos opcionales para VMS, algunos de los cuales se comercializaron como la familia de arquitectura de información VAX . [126] Estos productos incluían:
En 1994, DEC vendió Rdb, DBMS y CDD a Oracle , donde permanecen bajo desarrollo activo. [131] En 1995, DEC vendió DSM a InterSystems , quien lo renombró Open M , y eventualmente lo reemplazó con su producto Caché . [132]
Algunos ejemplos de sistemas de gestión de bases de datos de terceros para OpenVMS incluyen MariaDB , [133] Mimer SQL [134] ( Itanium y x86-64 [135] ) y System 1032. [136 ]
VMS fue diseñado originalmente para usarse y administrarse de manera interactiva mediante terminales de video basadas en texto de DEC , como el VT100 , o terminales de copia impresa como la serie DECwriter . Desde la introducción de la línea VAXstation en 1984, VMS ha admitido opcionalmente interfaces gráficas de usuario para su uso con estaciones de trabajo o terminales X como la serie VT1000 .
El lenguaje de comandos DIGITAL (DCL) ha servido como el principal intérprete de lenguaje de comandos (CLI) de OpenVMS desde el primer lanzamiento. [137] [30] [10] Otras CLI oficiales disponibles para VMS incluyen la rutina de consola de monitor RSX-11 (MCR) (sólo VAX) y varios shells de Unix . [116] DEC proporcionó herramientas para crear aplicaciones de interfaz de usuario basadas en texto : el sistema de gestión de formularios (FMS) y el sistema de gestión de datos de terminal (TDMS), posteriormente reemplazado por DECforms . [138] [139] [140] También existe una interfaz de nivel inferior denominada Servicios de gestión de pantallas (SMG$), comparable a Unix curses . [141]
A lo largo de los años, VMS ha pasado por varios kits de herramientas e interfaces GUI diferentes:
Las versiones de VMS que se ejecutaban en estaciones de trabajo DEC Alpha en la década de 1990 admitían OpenGL [152] y adaptadores gráficos Accelerated Graphics Port (AGP). VMS también proporciona compatibilidad con estándares gráficos más antiguos, como GKS y PHIGS . [153] [154] Las versiones modernas de DECwindows se basan en X.Org Server . [10]
OpenVMS proporciona varias funciones y mecanismos de seguridad, incluidos identificadores de seguridad, identificadores de recursos, identificadores de subsistemas, ACL , detección de intrusiones y auditorías de seguridad detalladas y alarmas. [155] Versiones específicas evaluadas en la clase C2 de criterios de evaluación de sistemas informáticos de confianza y, con la versión de seguridad mejorada de SEVMS en la clase B1. [156] OpenVMS también tiene una clasificación ITSEC E3 (consulte NCSC y Common Criteria ). [157] Las contraseñas se codifican mediante el polinomio de Purdy .
SYSTEM
, FIELD
, SYSTEST
y DECNET
) con contraseñas predeterminadas que los administradores del sistema a menudo dejaban sin modificar. [158] [159] Una serie de gusanos informáticos para VMS, incluido el gusano WANK y el gusano Father Christmas, explotaron estas contraseñas predeterminadas para obtener acceso a los nodos en las redes DECnet. [160] Este problema también fue descrito por Clifford Stoll en The Cuckoo's Egg como un medio por el cual Markus Hess obtuvo acceso no autorizado a los sistemas VAX/VMS. [161] En V5.0, se eliminaron las contraseñas predeterminadas y se volvió obligatorio proporcionar contraseñas para estas cuentas durante la configuración del sistema. [38]Se crearon varias capas de compatibilidad oficiales de Unix y POSIX para VMS. La primera de ellas fue DEC/Shell , que era un producto en capas que consistía en puertos del shell Bourne de la versión 7 de Unix y varias otras utilidades de Unix para VAX/VMS. [116] En 1992, DEC lanzó el producto en capas POSIX para OpenVMS , que incluía un shell basado en KornShell . [164] POSIX para OpenVMS fue reemplazado más tarde por el proyecto de código abierto GNV ( GNU no VMS), que se incluyó por primera vez en los medios de OpenVMS en 2002. [165] Entre otras herramientas de GNU, GNV incluye un puerto del shell Bash para VMS. [166] Entre los ejemplos de capas de compatibilidad de terceros con Unix para VMS se incluyen Eunice . [167]
En 1997, OpenVMS y una serie de productos en capas se pusieron a disposición de forma gratuita para uso no comercial por parte de aficionados como parte del Programa OpenVMS para aficionados . [168] Desde entonces, varias empresas que producen software OpenVMS han puesto a disposición sus productos bajo los mismos términos, como Process Software. [169] Antes del puerto x86-64, la antigüedad y el coste del hardware capaz de ejecutar OpenVMS hicieron que los emuladores como SIMH fueran una opción común para las instalaciones de aficionados. [170]
En marzo de 2020, HPE anunció el fin del Programa OpenVMS Hobbyist. [171] A esto le siguió el anuncio de VSI del Programa de Licencias Comunitarias (CLP) en abril de 2020, que estaba destinado a reemplazar al Programa HPE Hobbyist. [172] El CLP se lanzó en julio de 2020 y proporciona licencias para las versiones VSI OpenVMS en sistemas Alpha, Integrity y x86-64. [173] OpenVMS para VAX no está cubierto por el CLP, ya que no hay versiones VSI de OpenVMS VAX y las versiones antiguas aún son propiedad de HPE. [174]
Versión | Proveedor | Fecha de lanzamiento [175] [9] [176] | Fin del soporte [177] [178] [179] | Plataforma | Cambios significativos, nuevo soporte de hardware [180] [146] |
---|---|---|---|---|---|
Versión antigua, ya no se mantiene:X0.5 [número 1] | DIC | Abril de 1978 [181] | ? | vacuna | Primera versión enviada a los clientes [29] |
Versión antigua, ya no se mantiene:Versión 1.0 | Agosto de 1978 | Primer lanzamiento de producción | |||
Versión antigua, ya no se mantiene:Versión 1.01 | ? [n.º 2] | Corrección de errores [182] | |||
Versión antigua, ya no se mantiene:Versión 1.5 | Febrero de 1979 [n.° 3] | Soporte para compiladores nativos COBOL, BLISS [182] | |||
Versión antigua, ya no se mantiene:Versión 1.6 | Agosto de 1979 | Actualizaciones del RMS-11 [183] | |||
Versión antigua, ya no se mantiene:Versión 2.0 | Abril de 1980 | VAX-11/750 , nuevas utilidades incluyendo EDT | |||
Versión antigua, ya no se mantiene:Versión 2.1 | ? [n.º 4] | ? | |||
Versión antigua, ya no se mantiene:Versión 2.2 | Abril de 1981 | El límite de proceso aumentó a 8.192 [185] | |||
Versión antigua, ya no se mantiene:Versión 2.3 | Mayo de 1981 [186] | Mejoras de seguridad [187] | |||
Versión antigua, ya no se mantiene:Versión 2.4 | ? | ? | |||
Versión antigua, ya no se mantiene:Versión 2.5 | ? | Utilidad BACKUP [188] | |||
Versión antigua, ya no se mantiene:Versión 3.0 | Abril de 1982 | VAX-11/730 , VAX-11/725 , VAX-11/782 , ASMP | |||
Versión antigua, ya no se mantiene:Versión 3.1 | Agosto de 1982 | Tiempo de ejecución PL/I incluido con el sistema operativo base [189] | |||
Versión antigua, ya no se mantiene:Versión 3.2 | Diciembre de 1982 | Compatibilidad con discos RA60, RA80, RA81 [190] | |||
Versión antigua, ya no se mantiene:Versión 3.3 | Abril de 1983 | Controlador de disco HSC50, cambios en BACKUP [191] | |||
Versión antigua, ya no se mantiene:Versión 3.4 | Junio de 1983 | Compatibilidad de Ethernet con DECnet, [192] VAX-11/785 | |||
Versión antigua, ya no se mantiene:Versión 3.5 | Noviembre de 1983 | Soporte para nuevos dispositivos de E/S [193] | |||
Versión antigua, ya no se mantiene:Versión 3.6 | Abril de 1984 | Corrección de errores [194] | |||
Versión antigua, ya no se mantiene:Versión 3.7 | Agosto de 1984 | Soporte para nuevos dispositivos de E/S [195] | |||
Versión antigua, ya no se mantiene:Versión 4.0 | Septiembre de 1984 | VAX 8600 , MicroVMS, clústeres VAX [196] | |||
Versión antigua, ya no se mantiene:Versión 4.1 | Enero de 1985 | MicroVAX/VAXstation I, II [197] | |||
Versión antigua, ya no se mantiene:Versión 4.2 | Octubre de 1985 | Utilidad de procesamiento de texto | |||
Versión antigua, ya no se mantiene:V4.3 | Diciembre de 1985 | Compatibilidad con adaptadores Ethernet DELUA | |||
Versión antigua, ya no se mantiene:V4.3A | Enero de 1986 | VAX8200 | |||
Versión antigua, ya no se mantiene:Versión 4.4 | Julio de 1986 | VAX 8800/8700/85xx, sombreado de volumen | |||
Versión antigua, ya no se mantiene:Versión 4.5 | Noviembre de 1986 | Compatibilidad con más memoria en MicroVAX II | |||
Versión antigua, ya no se mantiene:V4.5A | Diciembre de 1986 | Clústeres VAX Ethernet | |||
Versión antigua, ya no se mantiene:Versión 4.5B | Marzo de 1987 | Estación VAX/MicroVAX 2000 | |||
Versión antigua, ya no se mantiene:Versión 4.5C | Mayo de 1987 | Compatibilidad con clústeres MicroVAX 2000 | |||
Versión antigua, ya no se mantiene:Versión 4.6 | Agosto de 1987 | VAX 8250/8350/8530, registro RMS | |||
Versión antigua, ya no se mantiene:Versión 4.7 | Enero de 1988 | Primera versión instalable desde CD-ROM | |||
Versión antigua, ya no se mantiene:V4.7A | Marzo de 1988 | Estación VAX 3200/3500, MicroVAX 3500/3600 | |||
Versión antigua, ya no se mantiene:Versión 5.0 | Abril de 1988 | VAX 6000 , SMP , LMF, Ejecutivo modular | |||
Versión antigua, ya no se mantiene:Versión 5.0-1 | Agosto de 1988 | Corrección de errores | |||
Versión antigua, ya no se mantiene:Versión 5.0-2 | Octubre de 1988 | ||||
Versión antigua, ya no se mantiene:V5.0-2A | MicroVAX 3300/3400 | ||||
Versión antigua, ya no se mantiene:V5.1 | Febrero de 1989 | Ventanas DEC | |||
Versión antigua, ya no se mantiene:V5.1-B | VAXstation 3100 30/40, VMS de escritorio | ||||
Versión antigua, ya no se mantiene:V5.1-1 | Junio de 1989 | Estación VAX 3520/3540, MicroVAX 3800/3900 | |||
Versión antigua, ya no se mantiene:V5.2 | Septiembre de 1989 | Visibilidad y gestión de procesos en todo el clúster | |||
Versión antigua, ya no se mantiene:V5.2-1 | Octubre de 1989 | Estación VAX 3100 38/48 | |||
Versión antigua, ya no se mantiene:V5.3 | Enero de 1990 | Compatibilidad con dispositivos SCSI de terceros | |||
Versión antigua, ya no se mantiene:V5.3-1 | Abril de 1990 | Compatibilidad con gráficos VAXstation SPX | |||
Versión antigua, ya no se mantiene:V5.3-2 | Mayo de 1990 | Compatibilidad con nuevos dispositivos de E/S | |||
Versión antigua, ya no se mantiene:V5.4 | Octubre de 1990 | VAX 65xx, arquitectura vectorial VAX | |||
Versión antigua, ya no se mantiene:V5.4-0A | VAX 9000 , correcciones de errores para sistemas VAX 6000 | ||||
Versión antigua, ya no se mantiene:V5.4-1 | Noviembre de 1990 | Nuevos modelos de VAX 9000, VAXstation, VAXft | |||
Versión antigua, ya no se mantiene:V5.4-1A | Enero de 1991 | VAX6000-400 | |||
Versión antigua, ya no se mantiene:V5.4-2 | Marzo de 1991 | VAX 4000 Modelo 200, nuevos dispositivos de E/S | |||
Versión antigua, ya no se mantiene:V5.4-3 | Octubre de 1991 | Compatibilidad con adaptadores FDDI | |||
Versión antigua, ya no se mantiene:V5.5 | Noviembre de 1991 | Cola de lotes para todo el clúster, nuevos modelos VAX | |||
Versión antigua, ya no se mantiene:A5.5 | Igual que V5.5 pero sin nueva cola de lotes | ||||
Versión antigua, ya no se mantiene:V5.5-1 | Julio de 1992 | Corrección de errores en colas de impresión/lotes | |||
Versión antigua, ya no se mantiene:Versión 5.5-2HW | Septiembre de 1992 | VAX 7000/10000 y otros nuevos equipos VAX | |||
Versión antigua, ya no se mantiene:V5.5-2 | Noviembre de 1992 | Septiembre de 1995 | Consolidación de versiones de hardware anteriores | ||
Versión antigua, ya no se mantiene:V5.5-2H4 | Agosto de 1993 | Nuevos modelos VAX 4000 , dispositivos de E/S adicionales | |||
Versión antigua, ya no se mantiene:V5.5-2HF | ? | VAXft810 | |||
Versión antigua, ya no se mantiene:V1.0 [n.º 5] | Noviembre de 1992 | Alfa | Primera versión para la arquitectura Alpha | ||
Versión antigua, ya no se mantiene:Versión 1.5 | Mayo de 1993 | Compatibilidad con clústeres y SMP para Alpha | |||
Versión antigua, ya no se mantiene:Versión 1.5-1H1 | Octubre de 1993 | Nuevos modelos DEC 2000, DEC 3000 | |||
Versión antigua, ya no se mantiene:Versión 6.0 | Junio de 1993 | vacuna | Cumplimiento de TCSEC C2, ISO 9660 , Motif | ||
Versión antigua, ya no se mantiene:V6.1 | Abril de 1994 | VAX, Alfa | Fusión de los lanzamientos de VAX y Alpha, PCSI | ||
Versión antigua, ya no se mantiene:V6.1-1H1 | Septiembre de 1994 | Alfa | Nuevos modelos AlphaStation y AlphaServer | ||
Versión antigua, ya no se mantiene:V6.1-1H2 | Noviembre de 1994 | ||||
Versión antigua, ya no se mantiene:V6.2 | Junio de 1995 | Marzo de 1998 | VAX, Alfa | Recuperación de comandos, DCL$PATH, clústeres SCSI | |
Versión antigua, ya no se mantiene:V6.2-1H1 | Diciembre de 1995 | Alfa | Nuevos modelos AlphaStation y AlphaServer | ||
Versión antigua, ya no se mantiene:V6.2-1H2 | Marzo de 1996 | ||||
Versión antigua, ya no se mantiene:V6.2-1H3 | Mayo de 1996 | ||||
Versión antigua, ya no se mantiene:Versión 7.0 | Enero de 1996 | VAX, Alfa | Direccionamiento de 64 bits, E/S rápida, subprocesos del núcleo | ||
Versión antigua, ya no se mantiene:Versión 7.1 | Enero de 1997 | Julio de 2000 | Compatibilidad con memoria muy grande, DCL PIPE, CDE | ||
Versión antigua, ya no se mantiene:V7.1-1H1 | Noviembre de 1997 | Alfa | Servidor Alpha 800 5/500, 1200 | ||
Versión antigua, ya no se mantiene:V7.1-1H2 | Abril de 1998 | Soporte para arranque desde dispositivos de terceros | |||
Versión antigua, ya no se mantiene:V7.1-2 | Compaq | Diciembre de 1998 | Compatibilidad con dispositivos de E/S adicionales | ||
Versión antigua, ya no se mantiene:Versión 7.2 | Febrero de 1999 | Junio de 2002 | VAX, Alfa | OpenVMS Galaxy, ODS-5, DCOM | |
Versión antigua, ya no se mantiene:V7.2-1 | Julio de 1999 | Alfa | Servidores Alpha GS140, GS60 y Tsunami | ||
Versión antigua, ya no se mantiene:V7.2-1H1 | Junio de 2000 | Servidores Alpha GS160 y GS320 | |||
Versión antigua, ya no se mantiene:V7.2-2 | Septiembre de 2001 | Diciembre de 2002 | Compatibilidad de minicopias para el sombreado de volumen | ||
Versión antigua, ya no se mantiene:V7.2-6C1 | Agosto de 2001 | ? | Conformidad con el COE de la DII [198] | ||
Versión antigua, ya no se mantiene:V7.2-6C2 | Julio de 2002 | ||||
Versión antigua, ya no se mantiene:V7.3 | Junio de 2001 | Diciembre de 2012 | vacuna | Versión final de la arquitectura VAX | |
Junio de 2004 | Alfa | Clústeres ATM y GBE , caché de archivos extendida | |||
Versión antigua, ya no se mantiene:V7.3-1 | caballos de fuerza | Agosto de 2002 | Diciembre de 2004 | Alfa | Mejoras de seguridad y rendimiento |
Versión antigua, ya no se mantiene:V7.3-2 | Diciembre de 2003 | Diciembre de 2006 | Servidor Alpha GS1280, DS15 | ||
Versión antigua, ya no se mantiene:Versión 8.0 | Junio de 2003 | Diciembre de 2003 | IA64 | Versión de evaluación para servidores Integrity | |
Versión antigua, ya no se mantiene:V8.1 | Diciembre de 2003 | Febrero de 2005 | Segunda versión de evaluación para servidores Integrity | ||
Versión antigua, ya no se mantiene:V8.2 | Febrero de 2005 | Junio de 2010 | Alfa, IA64 | Versión de producción para servidores Integrity | |
Versión antigua, ya no se mantiene:V8.2-1 | Septiembre de 2005 | IA64 | Soporte para HP Superdome, rx7620, rx8620 | ||
Versión antigua, ya no se mantiene:V8.3 | Agosto de 2006 | Diciembre de 2015 | Alfa, IA64 | Compatibilidad con modelos de servidores Integrity adicionales | |
Versión antigua, ya no se mantiene:V8.3-1H1 | Noviembre de 2007 | IA64 | Soporte para HP BL860c, Itanium de doble núcleo | ||
Versión antigua, ya no se mantiene:V8.4 | Junio de 2010 | Diciembre de 2020 | Alfa, IA64 | Soporte para HPVM , clústeres sobre TCP/IP [199] | |
Versión antigua, ya no se mantiene:V8.4-1H1 | VSI | Mayo de 2015 | Diciembre de 2022 | IA64 | Soporte para procesadores Poulson [200] |
Versión antigua, ya no se mantiene:V8.4-2 | Marzo de 2016 | Compatibilidad con sistemas HPE BL890c, UEFI 2.3 | |||
Versión antigua, pero aún mantenida:V8.4-2L1 | Septiembre de 2016 | Diciembre de 2024 | OpenSSL actualizado a 1.0.2 [201] | ||
Enero de 2017 [202] | Por confirmar | Alfa | |||
Versión antigua, pero aún mantenida:V8.4-2L2 | Julio de 2017 | Versión final de la arquitectura Alpha [203] | |||
Versión antigua, pero aún mantenida:V8.4-2L3 | Abril 2021 | Diciembre de 2028 | IA64 | Versión final para servidores Integrity [203] | |
Versión antigua, ya no se mantiene:Versión 9.0 | Mayo de 2020 | Junio 2021 | x86-64 | Kit para los primeros usuarios de x86-64 [204] | |
Versión antigua, ya no se mantiene:V9.1 | Junio 2021 | Septiembre 2021 | Prueba de campo x86-64 [83] | ||
Versión antigua, ya no se mantiene:V9.1-A | Septiembre 2021 | Abril de 2022 | DECnet-Plus para x86-64 [84] | ||
Versión antigua, ya no se mantiene:V9.2 | Julio de 2022 | Junio de 2023 | Versión de producción limitada x86-64 [205] | ||
Versión antigua, pero aún mantenida:V9.2-1 | Junio de 2023 | Diciembre de 2026 | CPU AMD, OpenSSL 3.0, compiladores nativos [206] | ||
Versión estable actual: V9.2-2 | Enero de 2024 | Por confirmar | Corrección de errores [6] | ||
Lanzamiento futuro:V9.2-3 | Diciembre de 2024 | Por confirmar | VMware vMotion, VMDirectPath | ||
Leyenda: Versión antigua, sin mantenimiento Versión antigua, aún mantenida Última versión Última versión preliminar Lanzamiento futuro |
El sistema operativo Micro VMS anunciado la semana pasada por Digital Equipment Corp. para su familia de microcomputadoras Microvax I es una versión preempaquetada de...