# UNICOS

UNICOS è un sistema operativo di tipo Unix sviluppato dalla Cray Inc. per i suoi supercomputer. Unicos è il successore del Cray Operating System (COS). Il sistema operativo fornisce il supporto dei cluster via rete e uno stato software di compatibilità per la maggior parte dei sistemi Unix commerciali. Unicos venne sviluppato nel 1985 per il Cray-2 e in seguito utilizzato per gli altri supercomputer Cray. L'UNICOS originale venne sviluppato a partire dal System V.2, con l'aggiunta di molte caratteristiche BSD (gestione della rete, miglioramenti del file system, etc.).
Il sistema operativo inizialmente si chiamava CX-OS ma venne rinominato UNICOS quando venne commercializzato. Il prototipo venne eseguito su un Cray X-MP nel 1984 prima di venir portato sul Cray-2. Il sistema venne utilizzato per dimostrare la possibilità di utilizzare un sistema operativo Unix nei sistemi di supercalcolo prima della disponibilità del Cray-2.
Il nuovo sistema operativo era parte di una strategia ad ampio raggio svolta da Cray per modernizzare il proprio software. La strategia comprendeva la riscrittura del compilatore Fortran in un linguaggio ad alto livello (Pascal) e in molte ottimizzazioni e vettorializzazioni.
Per facilitare la migrazione dei propri clienti verso UNICOS da COS venne introdotto uno strato chiamato Guest Operation System che permetteva alle applicazioni di utilizzare i componenti COS pur essendo in un sistema UNICOS. I processi da eseguire COS erano eseguiti dal sottosistema COS che gestivano la memoria e il processori. I processi UNICOS utilizzati entro GOS erano eseguiti come fossero su un sistema UNICOS, la differenza era che le chiamate a basso livello non accedevano direttamente all'hardware ma passavano tramite un convertitore che si interfacciava all'hardware.
Uno degli utilizzatori delle prime versioni UNICOS furono i Bell Labs dove il pioniere dei sistemi Unix Dennis Ritchie portò parte dell'ottava versione di Unix (incluso lo stream I/O) in UNICOS. Inoltre sperimentò la possibilità di creare versioni ospiti di UNICOS e che lo stesso UNICOS accettava una versione ospite di se stesso.

## Varianti

Cray ha pubblicato diversi sistemi operativi chiamati UNICOS:
* UNICOS: la prima versione Cray UNIX, basata su System V, utilizzato da Cray-1, Cray-2, X-MP, Y-MP, C90, etc.
* UNICOS MAX: una versione basata su microkernel Mach utilizzato nei sistemi T3D per la gestione dei processori di calcolo in congiunzione con l'UNICOS gestito dall'host Y-MP o C90.
* UNICOS/mk: una versione server di UNIOCS utilizzante il microkernel Chorus per sistemi distribuiti. Utilizzato dal T3E.
* UNICOS/mp: non derivato dall'UNICOS ma basato su IRIX 6.5 utilizzato dall'X1.
* UNICOS/lc: non derivato dall'UNICOS ma basato su SuSE Linux. Utilizzato in XT3, XT4 and XT5. UNICOS/lx 1.x era una combinazione del microkernel Catamount (basato su Cougar utilizzato nel ASCI Red) eseguito dai nodi di calcolo e il SuSE linux eseguito dai nodi di servizio. Nell'UNICOS/lc 2.0 Catamount viene rimpiazzato da una versione personalizzata dal kernel Linux chiamato Computer Node Linux (CNL). Dalla versione 2.1 il sistema operativo è stato rinominato Cray Linux Environment (CLE).