MICA — кодовое название операционной системы, разработанной для архитектуры DEC PRISM . [1] MICA была разработана командой Digital Equipment Corporation под руководством Дэйва Катлера . [2] Разработка MICA была обусловлена потребностью Digital предоставить путь миграции на PRISM для клиентов Digital VAX/VMS , а также позволить системам PRISM конкурировать на все более важном рынке Unix. [3] MICA попыталась удовлетворить эти требования, реализовав пользовательские интерфейсы VMS и ULTRIX поверх общего ядра, которое могло бы поддерживать системные вызовы (или «системные службы» на языке VMS), библиотеки и утилиты, необходимые для обеих сред. [4 ]
MICA была отменена в 1988 году вместе с архитектурой PRISM, до того, как оба проекта были завершены. MICA наиболее известна тем, что вдохновила дизайн Windows NT (также разработанной Катлером). [2] Когда архитектура PRISM превратилась в архитектуру DEC Alpha , Digital решила перенести OSF/1 и VMS в Alpha вместо повторного использования MICA. [5]
Первоначальная цель MICA состояла в том, чтобы все приложения имели полный и взаимозаменяемый доступ к интерфейсам VMS и ULTRIX, и чтобы пользователь мог выбрать вход в среду ULTRIX или VMS и запустить любое приложение MICA из любой среды. [6] Однако оказалось невозможным одновременно обеспечить полную совместимость с ULTRIX и VMS для одного и того же приложения, и Digital отказалась от этого плана в пользу отдельной операционной системы Unix на основе OSF/1 (ее по-разному называли PRISM ULTRIX или OZIX ). [7] В результате MICA служила бы переносимой реализацией операционной системы типа VMS с совместимыми реализациями DCL , RMS , Files -11 , VAXclusters , а также RTL и системных служб VAX/VMS. Были выдвинуты предложения по восстановлению совместимости с Unix в MICA на уровне отдельных приложений, чтобы приложение MICA можно было скомпилировать и связать с интерфейсами VMS или интерфейсами ULTRIX, но не с обоими одновременно. [8]
Из-за проблем с планированием первые системы PRISM должны были поставляться с ограниченными подмножествами полной операционной системы MICA. Это включало такие системы, как Cheyenne и Glacier , которые были предназначены для запуска определенных приложений, и где прямое взаимодействие с операционной системой со стороны клиентов было бы ограничено. [9]
MICA должен был быть написан почти полностью на языке программирования высокого уровня под названием PILLAR . PILLAR произошел от EPascal ( специфического для VAXELN диалекта Pascal ) через промежуточный язык, называемый Systems Implementation Language (SIL). [10] [11] PILLAR должен был быть портирован на VAX/VMS, что позволило бы разрабатывать приложения, которые можно было бы компилировать как для VAX/VMS, так и для MICA. Общий набор высокоуровневых библиотек времени выполнения под названием ARUS (Application Runtime Utility Services) еще больше облегчил бы переносимость между MICA, OSF/1, VAX/VMS и ULTRIX. [12] В рамках проекта PRISM был разработан общий оптимизирующий бэкэнд компилятора под названием GEM (он выжил и стал бэкэндом компилятора для портов VMS на Alpha и Itanium, а также для Tru64 ). [13] [14]
В дополнение к PILLAR, MICA предоставила первоклассную поддержку ANSI C для поддержки приложений Unix. [10] Ассемблер под названием SPASM (Simplified PRISM Assembler) был предназначен для небольшого количества ассемблерного кода, необходимого для операционной системы, и не был бы общедоступным, чтобы отговорить клиентов от разработки непереносимого программного обеспечения. Аналогичным образом, реализация BLISS была разработана только для внутреннего использования, чтобы позволить перенести уже существующие приложения VAX/VMS на MICA. MICA представила бы порты или переписывания многих многоуровневых продуктов VAX/VMS, включая Rdb , VAXset , DECwindows и большинство компиляторов, доступных для VAX/VMS. [15]
Когда PRISM и MICA были отменены, Дэйв Катлер ушел из Digital в Microsoft , где он был назначен ответственным за разработку того, что стало известно как Windows NT . Архитектура Катлера для NT была в значительной степени вдохновлена многими аспектами MICA. [2] [16] [17] В дополнение к реализации нескольких API операционной системы поверх общего ядра ( Win32 , OS/2 и POSIX в случае NT) MICA и NT разделяли разделение ядра от исполнительной системы , [6] использование диспетчера объектов в качестве абстракции для взаимодействия со структурами данных операционной системы, [18] и поддержку многопоточности и симметричной многопроцессорной обработки . [4]
После отмены PRISM компания Digital начала проект по созданию более быстрой реализации VAX, которая могла бы запускать VMS и обеспечивать производительность, сопоставимую с ее линейкой Unix-систем DECstation . [5] Когда эти попытки потерпели неудачу, группа разработчиков пришла к выводу, что сама VMS может быть перенесена на архитектуру, подобную PRISM. Это привело к архитектуре DEC Alpha и порту VMS на Alpha . [19]
В интервью 2023 года Дэйв Катлер сказал о проекте: «MICA был невероятно амбициозен, ... на уровне амбиций Multics . Если бы мы когда-либо его построили, вероятно, его никто бы не купил, но в нем было много хороших идей». [20]