Stratus VOS ( Virtual Operating System ) es un sistema operativo propietario que se ejecuta en sistemas informáticos tolerantes a fallos de Stratus Technologies . VOS está disponible en las plataformas ftServer y Continuum de Stratus. [2] Los clientes de VOS lo utilizan para dar soporte a aplicaciones de procesamiento de transacciones de gran volumen que requieren disponibilidad continua. VOS es notable por ser uno de los pocos sistemas operativos que se ejecutan en hardware totalmente sincronizado .
Durante la década de 1980, existió una versión IBM de Stratus VOS y se llamó Sistema operativo System/88 . [3]
VOS fue diseñado desde su inicio como un entorno de procesamiento de transacciones de alta seguridad adaptado a hardware tolerante a fallas. [4] Incorpora gran parte de la experiencia de diseño que surgió del proyecto Multics de MIT/Bell-Laboratories/General-Electric (más tarde Honeywell) .
En 1984, Stratus agregó una implementación de UNIX System V llamada Unix System Facilities (USF) a VOS, integrando Unix y VOS a nivel de kernel . [5]
En los últimos años, [ ¿cuándo? ] Stratus ha añadido compatibilidad con POSIX y muchos paquetes de código abierto pueden ejecutarse en VOS. [6]
Al igual que los sistemas operativos propietarios de la competencia, VOS ha visto su participación de mercado reducirse de manera constante en la década de 1990 y principios de la década de 2000. [7]
VOS proporciona compiladores para PL/I , COBOL , Pascal , FORTRAN , C (con los compiladores VOS C y GCC ) y C++ (también GCC ). [8] Cada uno de estos lenguajes de programación puede realizar llamadas al sistema VOS (por ejemplo, s$seq_read
para leer un registro de un archivo) y tiene extensiones para admitir cadenas de longitud variable al estilo PL/I. Los desarrolladores generalmente codifican en su editor de texto VOS favorito, o sin conexión, antes de compilar en el sistema; no hay aplicaciones IDE VOS.
A lo largo de su historia, Stratus ha ofrecido plataformas de hardware basadas en la familia de microprocesadores Motorola 68000 (series "FT" y "XA"), la familia de microprocesadores Intel i860 (serie "XA/R"), la familia de procesadores HP PA-RISC (serie "Continuum") y la familia de procesadores Intel Xeon x86 (serie "V"). Todas las versiones de VOS ofrecen compiladores orientados al conjunto de instrucciones nativo y algunas versiones de VOS ofrecen compiladores cruzados.
Stratus agregó compatibilidad con la API POSIX en la versión 14.3 de VOS (en Continuum) y agregó compatibilidad con el compilador GNU C/C++, el depurador GNU gdb y muchos comandos POSIX en la versión 14.4 de VOS. Cada versión adicional de VOS agregó más capacidades POSIX.1, hasta el punto en que ahora se pueden crear con éxito muchos paquetes de código abierto en modo usuario. Por este motivo, a partir de la versión 17.0, Stratus cambió el nombre de VOS a OpenVOS.
Stratus ofrece puertos compatibles con Samba, OpenSSL, OpenSSH, GNU Privacy Guard , OpenLDAP , Berkeley DB , MySQL Community Server, Apache, IBM WebSphere MQ y la edición comunitaria de Java.
Los valores numéricos en VOS siempre son big endian , independientemente del orden de bits de la plataforma de hardware subyacente. En los servidores little endian con procesadores x86, los compiladores realizan un intercambio de bytes antes de leer o escribir valores en la memoria para transformar los datos al formato little endian nativo o desde él.
VOS tiene un lenguaje de macros de comandos bastante completo que se puede utilizar para crear sistemas de menú, automatizar tareas, etc. Las macros de comandos de VOS aceptan argumentos en la línea de comandos o a través de un "formulario" de interfaz de usuario. Los argumentos se definen al principio de la macro de comandos en una sección de "parámetros". El lenguaje admite una variedad de instrucciones, incluidas if/then/else, operaciones booleanas, bucles "while", "goto" y excelentes informes de errores. El lenguaje de macros de comandos se puede ejecutar en modos interactivos y no interactivos (por lotes o proceso iniciado). Se puede utilizar para automatizar programas, capturando indicaciones y enviando respuestas apropiadas. Esto ha llevado a Stratus a limitar las capacidades del lenguaje de macros de comandos. [9]
El lenguaje de macros no admite funciones definidas por el usuario y no admite fácilmente archivos de inclusión. [ cita requerida ] El manejo de cadenas es propenso a errores, especialmente con caracteres de control integrados. [ cita requerida ]
Se puede encontrar una extensión de resaltado de sintaxis de Visual Studio Code para la macro de comando VOS en Visual Studio Marketplace.
VOS fue codificado principalmente en PL/I con una pequeña cantidad de lenguaje ensamblador antes de ser migrado a la serie ftServer. [ cita requerida ] A partir de 1991, el sistema fue escrito en PL/I y C, con solo un 3% en ensamblador. [10]
Su estructura general tiene mucho en común con Multics, y muchas de las características del sistema se remontan a Multics en distintos grados. El sistema expone una serie de abstracciones fundamentales al diseñador o programador de software, siendo las más notables
Un proceso es la entidad programada en VOS, y cada proceso tiene un conjunto de atributos que rigen la forma en que es manipulado por el sistema. Por ejemplo, los procesos tienen un nombre de usuario y un nombre de proceso . VOS utiliza el primero para determinar los derechos de acceso del proceso a dispositivos externos y elementos con el sistema de archivos. De importancia fundamental es el indicador privilegiado de un proceso, que es un atributo binario. Los procesos privilegiados pueden realizar operaciones privilegiadas. Este mecanismo se utiliza para restringir ciertas operaciones potencialmente poderosas que pueden tener consecuencias para todo el sistema (por ejemplo, apagar el sistema, desmontar un disco duro, etc.).
VOS es distribuido únicamente por Stratus Technologies . El medio de distribución es una cinta DAT de 3,5 mm para Continuum y una cinta SDLT para las primeras plataformas de la Serie V. A partir de la versión 17.0 de OpenVOS, Stratus ofrece soporte para distribuir OpenVOS en un DVD o descargando un archivo de versión. Las instalaciones de software pueden ser realizadas por el ingeniero de campo de Stratus o por el administrador del sistema del cliente.
La interfaz de línea de comandos es la interfaz de usuario principal y más poderosa de un sistema VOS.
Los usuarios pueden quedar bloqueados en un subsistema basado en "formularios" mediante secuencias de comandos de macro [11] si es necesario, aunque un usuario experto podría salir de esta situación y obtener acceso a la línea de comandos. (De hecho, es posible que un administrador de sistemas Stratus configure la cuenta de un usuario de tal manera que un intento de salir de FMS (el sistema de administración de formularios Stratus) para acceder a la línea de comandos dé como resultado el cierre de la sesión del usuario).
Los macros y programas de comandos se pueden invocar con un argumento para mostrar un formulario que enumera todos los parámetros disponibles, en el que el usuario puede navegar utilizando la tecla "tabulador". Cada parámetro generalmente está restringido para controlar lo que el usuario puede ingresar. Esto incluye listas de valores válidos, solo numéricos, solo texto, etc. Los parámetros también se pueden ocultar utilizando una etiqueta "secreta" o se pueden hacer obligatorios.
Todos los comandos de VOS se definen en su totalidad con guiones bajos para separar las palabras. Por ejemplo, change_current_dir cambia el directorio de trabajo . El sistema de ayuda de VOS utiliza esta convención para ayudar a los usuarios que buscan un subconjunto de comandos posibles; por ejemplo, aquellos que hacen referencia a "cambiar" se encuentran con help -match change .
Los usuarios pueden personalizar su interfaz de comandos mediante un archivo que contiene abreviaturas de los comandos. Las abreviaturas de los comandos se nombran convencionalmente según las primeras letras del comando que representan, por lo que ccd se puede expandir a change_current_dir foodir .
VOS se utiliza en sistemas Continuum y ftServer, ambos diseñados para ser altamente tolerantes a fallos. Por ello, estos sistemas se utilizan normalmente en aplicaciones críticas para la seguridad o la misión, por lo general, en bancos, hospitales, empresas de telecomunicaciones y de procesamiento de transacciones. [12]
VOS admite los siguientes protocolos [8]
Las versiones anteriores de VOS implementaban un estándar TCP/IP no OSI conocido como OS TCP/IP (Operating System TCP/IP). Desde la versión 14.x, VOS ha implementado Streams-TCP compatible con OSI. Las aplicaciones más antiguas que usan OS TCP/IP deben ser trasladadas para poder usar STCP. [13] Esto puede significar una pérdida de funcionalidad, ya que OS TCP/IP admitía varias funciones que no son compatibles con OSI y, por lo tanto, se abandonaron. El hardware ftServer en el que se ejecuta V Series solo admite TCP/IP y X.25 (X.25 solo cuando está equipado con el NIO opcional). Websphere MQ 6.0 (también conocido como MQ Series) se basa en TCP/IP; por lo tanto, también es compatible con el hardware ftServer. Los dispositivos que admiten los protocolos heredados se ejecutan en el hardware Continuum y se puede acceder a ellos desde el hardware actual a través de la red Open StrataLINK [14] .
La tolerancia a fallos está integrada en VOS desde abajo hacia arriba. A nivel de hardware, los dispositivos principales se ejecutan en modo dúplex sincronizado , lo que significa que hay dos dispositivos idénticos que realizan la misma acción al mismo tiempo. (Además, cada dispositivo o placa también se duplica para identificar fallos internos de la placa a nivel de hardware, por lo que el hardware de Stratus se puede definir como "sincronizado"). Estas placas son monitoreadas activamente por el sistema operativo, que puede corregir cualquier inconsistencia menor (como escrituras o lecturas de disco incorrectas). El sistema retira del servicio todas las placas que informan una cantidad inaceptable de fallos; la placa duplicada continuará funcionando hasta que se resuelva el problema mediante una solución urgente. Esto incluye CPU, unidades de disco y cualquier otro dispositivo que pueda duplicarse de forma lógica (lo que, por definición, excluye los dispositivos de comunicaciones). El sistema continuará procesando de forma normal y generará automáticamente un ticket de falla con el Servicio de atención al cliente de Stratus a través de RSN (la red de servicio remoto). Luego, el servicio de atención al cliente de Stratus llamará al sistema mediante RSN para investigar el problema y enviar piezas de repuesto.
El sistema operativo está diseñado para evitar fallas debido a una falla de hardware simple.
VOS admite varios tipos de archivos únicos:
La API VOS permite la creación de múltiples índices por archivo, ordenándolos según el contenido de un registro, una clave externa, una clave interna o un conjunto bien definido de múltiples claves. Un archivo VOS con uno o más índices se puede utilizar como una tabla de base de datos C-ISAM.
VOS utiliza una sintaxis de nombres de archivo patentada que incluye el nombre del sistema, el nombre del módulo, el número de disco y el directorio, con componentes separados por el símbolo ">". Normalmente, el disco del sistema se alojará en el mismo módulo que la CPU, #m1
por lo que un archivo de sistema para un clúster VOS se referenciaría como
(%system)#m1_d01>sistema>dispositivos.tabla
La asignación de disco y la memoria de VOS se organizan en "bloques", cada uno de los cuales tiene 4096 bytes. La memoria adopta la forma de RAM o paginación. Los sistemas VOS admiten particiones de paginación y archivos de paginación. En las versiones modernas de VOS, el administrador del sistema puede crear archivos de paginación de forma dinámica (pero no eliminarlos sin reiniciar el sistema). En teoría, estos archivos de paginación pueden constar de más de una extensión (que el núcleo considera una minipartición de paginación) que puede ser contigua o no. Sin embargo, NO se recomiendan extensiones no contiguas, ya que aumentan en gran medida la actividad del disco. El administrador debe crear la extensión más grande posible para los archivos de paginación lo antes posible después de que se haya iniciado el sistema. [15]
VOS admite acceso de escritura, lectura, ejecución y nulo (sin acceso) a todos los archivos, directorios y dispositivos (aunque los directorios y archivos tienen listas de acceso ligeramente diferentes). El acceso se puede asignar a usuarios, grupos o al mundo. Solo se requiere acceso de lectura para ejecutar un programa ejecutable, siempre que el usuario tenga acceso de "estado" al directorio en el que reside ese programa.
VOS heredó las listas de control de acceso de Multics y también implementa listas de control de acceso a directorios. Si un archivo no tiene una lista de control de acceso, se aplica la lista de control de acceso predeterminada del directorio que lo contiene.
El acceso a los dispositivos se controla generalmente mediante la creación de un archivo que el administrador vincula al dispositivo (esto puede ser cierto en OpenVOS, pero no se aplica al sistema operativo original). Luego se otorga acceso a este archivo y esto establece el acceso al dispositivo.
VOS siempre ha sido un sistema operativo que reconoce redes. Prácticamente todas las llamadas del sistema en la API nativa tienen un parámetro que determina a qué computadora afecta la operación. [16] [ verificación fallida ] [17] [ verificación fallida ] Si la operación no es local, se redirige a la computadora de destino a través de una llamada de subrutina remota . Por ejemplo, los nombres de los archivos se analizan para indicar en qué computadora reside el archivo.
El modelo de red StrataLINK tiene una jerarquía de dos niveles para nombrar las computadoras: cada computadora se denomina módulo y los módulos se agregan en sistemas . Cada sistema se administra como una unidad. En otras palabras, todos los módulos de un sistema conocen todos los discos y dispositivos de hardware de ese sistema. El resultado de esto es que un nombre de archivo que comienza con el nombre del sistema se refiere a archivos en otras computadoras y se puede abrir sin la necesidad de ninguna red especial. Lo mismo sucede con los dispositivos. Otras entidades del sistema, como los procesos, se referencian mediante nombres de módulo que se escriben % system # module . Los nombres de sistema y módulo VOS no tienen una relación definida con las direcciones IP o los nombres de dominio. La API VOS se desarrolló a fines de 1980, antes de que Internet fuera ampliamente adoptada y mucho antes de que se inventaran las URL.
Históricamente, StrataLINK era una red en anillo CSMA/CD de 10 Mb propietaria que permitía un alto rendimiento (para la época) con muy poca sobrecarga de memoria y utilización de CPU. Esta red nunca se desarrolló más allá de los 10 Mb y se abandonó en favor del uso de TCP/IP porque Ethernet se convirtió en el estándar de red dominante y porque el procesamiento de memoria y CPU se abarató.
Open StrataLINK también puede utilizar X.25 para comunicaciones de área amplia. El uso de los protocolos Open StrataLINK para comunicaciones de área amplia también se conoce como StrataNET.