MICA era el nombre en código del sistema operativo desarrollado para la arquitectura DEC PRISM . [1] MICA fue diseñado por un equipo de Digital Equipment Corporation dirigido por Dave Cutler . [2] El diseño de MICA fue impulsado por la necesidad de Digital de proporcionar una ruta de migración a PRISM para los clientes VAX/VMS de Digital , así como permitir que los sistemas PRISM compitan en el cada vez más importante mercado de Unix. [3] MICA intentó abordar estos requisitos implementando interfaces de usuario VMS y ULTRIX sobre un núcleo común que pudiera soportar las llamadas del sistema (o "servicios del sistema" en la jerga de VMS), las bibliotecas y las utilidades necesarias para ambos entornos. [4]
MICA se canceló en 1988 junto con la arquitectura PRISM, antes de que ambos proyectos se completaran. MICA es más conocido por inspirar el diseño de Windows NT (también diseñado por Cutler). [2] Cuando la arquitectura PRISM evolucionó hacia la arquitectura DEC Alpha , Digital optó por trasladar OSF/1 y VMS a Alpha en lugar de reutilizar MICA. [5]
El objetivo original de MICA era que todas las aplicaciones tuvieran acceso completo e intercambiable a las interfaces VMS y ULTRIX, y que un usuario pudiera elegir iniciar sesión en un entorno ULTRIX o VMS, y ejecutar cualquier aplicación MICA desde cualquiera de los entornos. [6] Sin embargo, resultó imposible proporcionar compatibilidad total con ULTRIX y VMS a la misma aplicación al mismo tiempo, y Digital descartó este plan a favor de tener un sistema operativo Unix separado basado en OSF/1 (esto se denominó de diversas formas PRISM ULTRIX u OZIX ). [7] Como resultado, MICA habría servido como una implementación portátil de un sistema operativo similar a VMS, con implementaciones compatibles de DCL , RMS , Files-11 , VAXclusters y los RTL y servicios del sistema VAX/VMS. Se hicieron propuestas para restablecer la compatibilidad con Unix en MICA para cada aplicación, de modo que una aplicación MICA pudiera compilarse y vincularse con las interfaces VMS o las interfaces ULTRIX, pero no con ambas simultáneamente. [8]
Por cuestiones de programación, los primeros sistemas PRISM se habrían entregado con subconjuntos restringidos del sistema operativo MICA completo. Esto incluía sistemas como Cheyenne y Glacier , que estaban dedicados a ejecutar aplicaciones específicas y donde la interacción directa con el sistema operativo por parte de los clientes sería limitada. [9]
MICA iba a ser escrito casi en su totalidad en un lenguaje de programación de alto nivel llamado PILLAR . PILLAR evolucionó a partir de EPascal (el dialecto específico de Pascal , VAXELN ) a través de un lenguaje provisional llamado Lenguaje de Implementación de Sistemas (SIL). [10] [11] PILLAR se habría trasladado a VAX/VMS, lo que permitiría desarrollar aplicaciones que pudieran compilarse tanto para VAX/VMS como para MICA. Un conjunto común de bibliotecas de ejecución de alto nivel llamadas ARUS (Application Runtime Utility Services) habría facilitado aún más la portabilidad entre MICA, OSF/1, VAX/VMS y ULTRIX. [12] Como parte del proyecto PRISM, se desarrolló un backend de compilador optimizador común llamado GEM (este sobrevivió y se convirtió en el backend de compilador para los puertos Alpha e Itanium de VMS, así como para Tru64 ). [13] [14]
Además de PILLAR, MICA proporcionó soporte de primera clase para ANSI C con el fin de soportar aplicaciones Unix. [10] Un ensamblador llamado SPASM (Simplified PRISM Assembler) fue pensado para la pequeña cantidad de código ensamblador necesario para el sistema operativo, y no se habría puesto a disposición del público en general con el fin de disuadir a los clientes de desarrollar software no portable. De manera similar, se desarrolló una implementación de BLISS solo para uso interno, con el fin de permitir que las aplicaciones VAX/VMS preexistentes se portaran a MICA. MICA habría presentado puertos o reescrituras de muchos productos en capas VAX/VMS, incluyendo Rdb , VAXset , DECwindows y la mayoría de los compiladores disponibles para VAX/VMS. [15]
Cuando PRISM y MICA fueron cancelados, Dave Cutler dejó Digital para irse a Microsoft , donde se le puso a cargo del desarrollo de lo que se conocería como Windows NT . La arquitectura de Cutler para NT se inspiró en gran medida en muchos aspectos de MICA. [2] [16] [17] Además de la implementación de múltiples API de sistema operativo sobre un núcleo común ( Win32 , OS/2 y POSIX en el caso de NT), MICA y NT compartían la separación del núcleo del ejecutivo , [6] el uso de un Administrador de objetos como abstracción para interactuar con las estructuras de datos del sistema operativo, [18] y soporte para multiprocesamiento y multiprocesamiento simétrico . [4]
Tras la cancelación de PRISM, Digital comenzó un proyecto para producir una implementación de VAX más rápida que pudiera ejecutar VMS y proporcionar un rendimiento comparable al de su línea DECstation de sistemas Unix. [5] Cuando estos intentos fracasaron, el grupo de diseño concluyó que el propio VMS podía trasladarse a una arquitectura similar a PRISM. Esto condujo a la arquitectura DEC Alpha y al puerto Alpha de VMS . [19]
En una entrevista de 2023, Dave Cutler dijo sobre el proyecto: "MICA era tremendamente ambicioso, ... al nivel de ambición de Multics . Si alguna vez lo hubiéramos construido, probablemente nadie lo habría comprado, pero tenía muchas buenas ideas". [20]