Developer | Digital Equipment Corporation |
---|---|
Written in | PILLAR,C, SPASM |
Working state | Abandoned |
Source model | Closed-source |
Marketing target | Minicomputers,Workstations |
Available in | English |
Platforms | DEC PRISM |
Kernel type | Monolithic kernel |
Userland | VMS and ULTRIX |
Influenced | Windows NT |
Influenced by | VAX/VMS,Ultrix,VAXELN |
Default user interface | DCL,Unix shell,DECwindows |
License | Proprietary |
MICA was the codename of the operating system developed for theDEC PRISM architecture.[1] MICA was designed by a team atDigital Equipment Corporation led byDave Cutler.[2] MICA's design was driven by Digital's need to provide a migration path to PRISM for Digital'sVAX/VMS customers, as well as allowing PRISM systems to compete in the increasingly important Unix market.[3] MICA attempted to address these requirements by implementing VMS andULTRIXuser interfaces on top of a common kernel that could support thesystem calls (or "system services" in VMS parlance), libraries and utilities needed for both environments.[4]
MICA was cancelled in 1988 along with the PRISM architecture, before either project was complete. MICA is most notable for inspiring the design ofWindows NT (also designed by Cutler) .[2] When the PRISM architecture evolved into theDEC Alpha architecture, Digital opted to portOSF/1 and VMS to Alpha instead of reusing MICA.[5]
The original goal for MICA was that all applications would have full and interchangeable access to both the VMS and ULTRIX interfaces, and that a user could choose to log in to an ULTRIX or VMS environment, and run any MICA application from either environment.[6] However, it proved to be impossible to provide both full ULTRIX and full VMS compatibility to the same application at the same time, and Digital scrapped this plan in favour of having a separate Unix operating system based onOSF/1 (this was variously referred to asPRISM ULTRIX orOZIX).[7] As a result, MICA would have served as a portable implementation of a VMS-like operating system, with compatible implementations ofDCL,RMS,Files-11,VAXclusters, and the VAX/VMS RTLs and system services. Proposals were made for reinstating Unix compatibility in MICA on a per-application basis so that a MICA application could be compiled and linked against the VMS interfaces, or the ULTRIX interfaces, but not both simultaneously.[8]
Due to scheduling concerns, the first PRISM systems would have been delivered with restricted subsets of the full MICA operating system. This included systems such asCheyenne andGlacier which were dedicated to running specific applications, and where direct interaction with the operating system by customers would be limited.[9]
MICA was to be written almost entirely in ahigh-level programming language namedPILLAR. PILLAR evolved fromEPascal (theVAXELN-specific dialect ofPascal) via an interim language called theSystems Implementation Language (SIL).[10][11] PILLAR would have been backported to VAX/VMS, allowing applications to be developed that could be compiled for both VAX/VMS and MICA. A common set of high-level runtime libraries namedARUS (Application Runtime Utility Services) would have further facilitated portability between MICA, OSF/1, VAX/VMS and ULTRIX.[12] As part of the PRISM project, a common optimizingcompiler backend namedGEM was developed (this survived and became the compiler backend for the Alpha and Itanium ports of VMS, as well asTru64).[13][14]
In addition to PILLAR, MICA provided first-class support forANSI C in order to support Unix applications.[10] Anassembler namedSPASM (Simplified PRISM Assembler) was intended for the small amount of assembly code needed for the operating system, and would not have been made generally available in order to dissuade customers from developing non-portable software. Similarly, an implementation ofBLISS was developed for internal use only, in order to allow pre-existing VAX/VMS applications to be ported to MICA. MICA would have featured ports or rewrites of many VAX/VMS layered products, includingRdb,VAXset, DECwindows, and most of the compilers available for VAX/VMS.[15]
When PRISM and MICA were cancelled, Dave Cutler left Digital forMicrosoft, where he was put in charge of the development of what became known asWindows NT. Cutler's architecture for NT was heavily inspired by many aspects of MICA.[2][16][17] In addition to the implementation of multiple operating system APIs on top of a common kernel (Win32,OS/2 andPOSIX in NT's case) MICA and NT sharedthe separation of the kernel from the executive,[6] the use of anObject Manager as the abstraction for interfacing with operating system data structures,[18] and support formultithreading andsymmetric multiprocessing.[4]
After the cancellation of PRISM, Digital began a project to produce a faster VAX implementation which could run VMS and provide comparable performance to itsDECstation line of Unix systems.[5] When these attempts failed, the design group concluded that VMS itself could be ported to a PRISM-like architecture. This led to theDEC Alpha architecture, and theAlpha port of VMS.[19]
In a 2023 interview, Dave Cutler said of the project: "MICA was wildly ambitious, ... at the level of ambition ofMultics. If we had ever built it, probably no one would have ever bought it, but it had a lot of good ideas in it."[20]