PRIMOS es un sistema operativo descontinuado desarrollado durante la década de 1970 por Prime Computer para sus sistemas de minicomputadoras . Ganó popularidad rápidamente y a mediados de la década de 1980 era un serio contendiente como sistema operativo principal para minicomputadoras.
Con la llegada de las PC y el declive de la industria de las minicomputadoras, Prime se vio obligado a abandonar el mercado a principios de los años 1990 y, a fines de 2010, las marcas comerciales PRIME [1] y PRIMOS [2] ya no existían. [3]
Prime también había ofrecido un sistema operativo en tiempo real personalizable llamado RTOS. [4]
Una característica de PRIMOS era que, al igual que UNIX , estaba escrito en gran parte en un lenguaje de alto nivel [5] (con funciones de biblioteca de lenguaje ensamblador disponibles que se podían llamar). Al principio, este lenguaje era FORTRAN IV, [6] lo cual era una elección extraña desde un punto de vista puramente informático : sin punteros , sin tipo de cadena nativo , etc. [7] [8] Sin embargo, FORTRAN era el lenguaje más conocido por los ingenieros, y los ingenieros fueron un gran mercado para Prime en sus primeros años.
La inusual elección de FORTRAN como lenguaje de programación del sistema operativo tuvo que ver con las personas que fundaron Prime. Habían trabajado para Honeywell en un proyecto de la NASA . [9] FORTRAN era el lenguaje que habían utilizado tanto en la NASA como, para muchos de ellos, en el MIT . Esta conexión con Honeywell se extendió hasta el punto de que las computadoras Prime originales eran compatibles con las minicomputadoras Honeywell Serie 16.
Honeywell, en ese momento, no estaba interesado en las minicomputadoras, por lo que se fue y fundó Prime, "llevándose" el código con ellos. [10] Desarrollaron hardware optimizado para ejecutar FORTRAN, incluidas instrucciones de máquina que implementaron directamente la operación de ramificación de 3 vías distintiva de FORTRAN .
Dado que el hardware de Prime no realizaba direccionamiento de bytes , no hubo impulso para crear un compilador de C. Los modelos posteriores del hardware finalmente se modificaron para soportar el modo I y los programas se compilaron en C.
Más tarde, en la versión 16, una versión de PL/I , llamada PL/P , se convirtió en el lenguaje de alto nivel de elección dentro de PRIMOS, y los lenguajes PL/P y, más tarde, Modula-2 , se utilizaron en el núcleo. Además, algunas nuevas utilidades de PRIMOS se escribieron en SP/L, que era similar a PL/P.
El código fuente de PRIMOS estaba disponible para los clientes [4] [11] y, gracias a FORTRAN y PL/P, los clientes podían modificar razonablemente PRIMOS según fuera necesario. Por ejemplo, alrededor de 1990, la Universidad de Salford en el Reino Unido, modificó el PRIMOS que se ejecutaba en sus cinco sistemas 9955 de modo que los estudiantes universitarios ya no pudieran usar el comando MESSAGE, que envolvía la llamada PRIMOS SMSG$(), para enviar mensajes a otros estudiantes universitarios, porque el "chat" en línea utilizando ese comando se estaba volviendo común, congestionando terminales del limitado conjunto disponible. La mensajería que utilizaba ese comando era similar a la mensajería de texto SMS actual, excepto que se podía enviar un máximo de 80 caracteres por mensaje.
Las primeras versiones de PRIMOS (revisión 6) se denominaban originalmente DOS (PRIMOS 2) y más tarde DOSVM (PRIMOS 3), pero a partir de PRIMOS 4, en el sistema P400, PRIMOS fue el nombre que se mantuvo. [5] Hubo muchas versiones importantes de PRIMOS. La última revisión oficial (24.0.0.R52) se publicó el 3 de julio de 1997. En ese momento, una empresa llamada Peritus (que empleaba a varios ex ingenieros de Prime) se encargaba del mantenimiento de PRIMOS.
A partir de la Revisión 19, la mayor parte de PRIMOS se escribió en los lenguajes SPL y Modula-2 , y el uso del Macroensamblador Prime (PMA), FORTRAN IV y PL/P disminuyó considerablemente en esa época. Se garantizó la ejecución de los programas en todos los procesadores Prime actuales (siempre que hubiera suficientes recursos disponibles), así como en todos los procesadores Prime posteriores.
En las versiones de PRIMOS de alrededor de 1977 y posteriores, el sistema de archivos incluía una estructura distintiva conocida como Directorio de segmentos. A diferencia de los directorios más tradicionales, los archivos anclados en un directorio de segmentos se ubicaban utilizando un índice entero, lo que reducía de manera efectiva las búsquedas del directorio a una simple función hash . Los directorios de segmentos se utilizaron en su sistema de acceso a archivos de índice clave/acceso directo (KI/DA) y en versiones posteriores del cargador del sistema.
Los datos indexados se podían almacenar en un archivo MIDAS: Multi-Indexed Data Access System y se podía acceder a ellos mediante COBOL o FORTRAN. Entre las herramientas de terceros se encontraba un paquete llamado Queo [12] , que era más potente que COBOL a pesar de ser menos detallado.
El conjunto de caracteres de PRIMOS era básicamente ASCII , pero con el octavo bit invertido. El estándar original de 7 bits para ASCII dejaba el octavo bit sin especificar, pero en el Teletipo Modelo 33 ASR, que se encuentra disponible en la actualidad, el bit se configuraba habitualmente en 1, y este se convirtió en el estándar de Prime. Esto es fundamental para realizar cuando se transfieren datos de PRIMOS a casi cualquier otro sistema.
En el momento de la desaparición de Prime Computer , la lista de idiomas admitidos por Primos incluía: [13]
También estaban disponibles, aunque eran relativamente poco comunes:
Las versiones posteriores [14] de PRIMOS incluían un lenguaje de script , CPL (Command Procedure Language). [15] Este lenguaje interpretado , que guardaba similitudes con Pascal, era accesible para usuarios novatos y capaz de realizar una potente automatización de la línea de comandos. ESRI utilizó PRIMOS CPL como base para los lenguajes de script independientes de la plataforma AML (para ArcInfo ) y SML ( PC-ARC/INFO ).
Esto fue un paso más allá de lo que ya estaba disponible a través de:
Los "fantasmas" eran una forma de procesos en segundo plano desatendidos que comenzaban a ejecutarse inmediatamente en segundo plano cuando se los iniciaba con el comando PHANTOM. Los trabajos por lotes "convencionales" se iniciaban mediante el comando JOB, incluida la capacidad de programarlos para un momento determinado.
El sistema operativo PRIMOS incorporó características avanzadas de tolerancia a fallas para garantizar la confiabilidad del sistema y la integridad de los datos. Una característica notable fue el comando MIRROR_ON, que facilitó la creación de un par de particiones idénticas y lógicamente equivalentes que se mantenían en tiempo real. Este comando fue fundamental para mejorar la resistencia del sistema a fallas de hardware. Cuando se activaba, el comando MIRROR_ON iniciaba la duplicación de disco , duplicando todas las operaciones de escritura de un disco primario en un disco secundario. Esta redundancia permitía que el sistema continuara sin problemas las operaciones utilizando la partición duplicada en caso de una falla de la partición primaria. A diferencia de RAID 1 , que generalmente requiere soporte de hardware específico para la duplicación de disco, el comando MIRROR_ON implementó esta funcionalidad a nivel de software, ofreciendo una solución flexible y rentable para la redundancia de datos. [16]
Las principales ofertas de Primes, cada una cubriendo una necesidad específica, fueron:
El software PRIMENET de Prime fue diseñado para permitir "acceso transparente a cualquier sistema en la red sin cargar al usuario con comandos adicionales". [17] Con PRIMENET, un usuario del Sistema A podría acceder a archivos del Sistema B como si estuvieran en el Sistema A, [18] o incluso iniciar sesión en otro sistema usando el comando RLOGIN (Inicio de sesión remoto). [19]
Lanzado en un momento similar al de PRIMENET, [20] [21] permitió la creación de redes de área local de alta velocidad . [22]
Se incluyó la emulación 2780/3790. [23]
En 1985, la versión Prime del UNIX System V de AT&T , llamada Primix, se puso a disposición con la versión 19.4.2 de Primos, que se modificó para incluir funciones de Unix. Coexistía con PRIMOS, lo que permitía a los usuarios cambiar de sistema. [24]
Lenguaje de comandos de Prime, introducido con PRIMOS 18.2 en 1981