Cosmos (sistema operativo Olivetti)
# Cosmos (sistema operativo Olivetti)

Cosmos fu un sistema operativo sviluppato dall'Olivetti, tra il 1973 e il 1975. Nato come sistema operativo per il sistema TC 800, esso fu poi utilizzato per la postazione da ufficio BCS 2000, per il minicomputer S1000 e il mainframe S6000 di derivazione Microdata. Nella sua quarta release, Cosmos venne adottato come sistema operativo per la gamma di elaboratori Linea 1, prima di essere sostituito con varie release UNIX alla fine degli anni '80.

## Storia

Nato per ovviare alla mancanza di un sistema operativo adeguato per il sistema modulare TC800, il Cosmos mosse i suoi primi passi come sistema di supporto per i grandi elaboratori centrali. Scritto in Assembly e in PL/I, Cosmos anticipava di molto quelli che sarebbero stati i trend del decennio successivo, tramite l'uso di un modello server-client: il programma locale (PAL) girava sul terminale TC800, mentre sul mainframe girava un aggregatore (PAC). L'impiego di questo sistema riduceva notevolmente il carico sui mainframe e, conseguentemente, le risorse utilizzate.

Successivamente la Olivetti mise in commercio la BCS 2000: una postazione da ufficio all-in-one mirata per gestire la contabilità di piccole aziende. Il suo sistema operativo, BCOS, era un'evoluzione del Cosmos della TC800. Nel frattempo, anche i più grossi e potenti minicomputer S1000 e S6000 che nativamente utilizzavano EMOS quale s.o., pare fossero stati convertiti ad utilizzare Cosmos.

Con l'introduzione della nuova gamma di elaboratori Linea 1 e del sistema Cosmos IV, la Olivetti introdusse il multitasking real-time (time sharing), uno dei primi sistemi a farlo. Ciò fu reso possibile dall'utilizzo del microprocessore a 16-bit Zilog Z8001 (Z8000A nel BCS 2099), che permetteva l'uso della memoria segmentata. Il kernel fu riscritto in Concurrent Pascal, per sfruttare al meglio le caratteristiche del nuovo processore: il sistema risiedeva in un'area di memoria dedicata, mentre i programmi venivano eseguiti su una macchina virtuale. Questo design all'avanguardia permetteva ai sistemi L1 di supportare un buon numero, per l'epoca, di programmi ed utenti in contemporanea.

Dal punto di vista software, MOS si presentava come un sistema solido e completo: erano disponibili emulatori per riutilizzare i programmi scritti per la TC 800 e la BCS 2000 senza modifiche, ed era possibile gestire carichi di lavoro complessi grazie al supporto per i linguaggi BAL, BASIC, COBOL e Fortran, la presenza del linguaggio di scripting OCL e di una toolchain per lo sviluppo di applicazioni in Pascal.

Successivamente l'azienda sostituì MOS con XOS (Olivetti Unix) sui sistemi LSX serie 3000 e adottò SCO Xenix per i nuovi LSX serie 5000, chiudendo un'epoca di sviluppo di sistemi operativi in-house.

## Versioni

La famiglia Cosmos comprende i seguenti sistemi operativi:

* Cosmos
   * Cosmos - Olivetti TC 800
   * BCOS - Olivetti BCS 2000
   * Olivetti S1000 e S6000
* Cosmos IV / MOS
   * PCOS - Olivetti L1 M20
   * BCOS II - Olivetti L1 M30, M40 BC
   * MDOS - Olivetti L1 M30, M40 ST
   * MOS - Olivetti L1 M60
