CP/M

Da Wikipedia, l'enciclopedia libera.
CP/M
Uno screenshot del CP/M
Uno screenshot del CP/M
Sviluppatore Digital Research/Gary Kildall
Release iniziale 1.0 (1974)
Release corrente 3.1 (1982)
Tipo di kernel Kernel monolitico
Piattaforme supportate Intel 8080, Intel 8085, Zilog Z80, Intel 8086, Motorola 68000
Licenza software proprietario

CP/M (sigla di Control Program for Microprocessor), era un sistema operativo per i microcomputer, al tempo Personal Computer, basati sulle CPU Intel 8080/85 e Zilog Z80. Fu creato dalla Digital Research, Inc., fondata da Gary Kildall. L'insieme formato dal CP/M e da computer con il Bus S-100 realizzato per primo sul MITS Altair ha costituito di fatto il primo vero e proprio "industry standard" per l'informatica, utilizzato diffusamente nella seconda metà degli anni settanta e nei primi anni ottanta. Anche per il popolare Commodore 64 era disponibile sul mercato una scheda per renderlo compatibile con il CP/M.

Descrizione: CCP, BDOS, BIOS[modifica | modifica wikitesto]

L'interfaccia a riga di comando del CP/M, implementata nel CCP command control processor, derivava dai sistemi operativi della Digital Equipment, quali l'RSTS/E per il PDP-11. I comandi in genere erano formati da una keyword seguita da un elenco di parametri separati da spazi o da caratteri speciali. I nomi dei comandi, a volte, erano non perfettamente comprensibili; è il caso, ad esempio del comando per copiare dei file che si chiamava PIP (Peripheral-Interchange-Program).

L'innovazione chiave introdotta dal CP/M fu l'uso di un abstraction layer, con la separazione del sistema operativo in due parti principali. Il CCP si occupava della traduzione dei comandi dell'utente in una serie di istruzioni a livello più basso. Queste istruzioni venivano inviate al BDOS (Basic Disk Operating System), che si occupava delle funzionalità di sistema, quali "open file" (apri il file). I programmi applicativi, allo stesso modo, dovevano interagire con il BDOS. Il BDOS si occupava della traduzione di tali comandi in una serie di istruzioni a livello ancora più basso, che a loro volta venivano inviate al BIOS (Basic I/O System), che conteneva il codice dipendente dall'hardware relativo all'esecuzione delle specifiche routine previste dal BDOS.

Per illustrare il flusso dei comandi, si può prendere in esame il comando PIP già menzionato. Quando nel CCP viene inserito un comando PIP, esso viene spezzettato in una serie di istruzioni per il BDOS, simili a "trova il file foo.txt, aprilo, crea un nuovo file col nome bar.txt...". I comandi del BDOS a loro volta erano inviati al BIOS come stringhe di istruzioni ancora più semplici, del tipo "seleziona il disco, muovi la testina del disco a questo settore, leggi i dati in modalità raw da settore..." ecc.

Gran parte della complessità del CP/M era racchiusa nel BDOS e, in misura minore, nel CCP. Ciò significava che il porting verso una differente piattaforma hardware avrebbe richiesto un minor lavoro, limitato all'adattamento dei semplici comandi contenuti nel BIOS a quella particolare piattaforma hardware, senza riscrivere il resto del sistema operativo. Ciò ridusse in maniera significativa i tempi di sviluppo necessari per supportare nuove macchine, costituendo una delle ragioni principali della diffusione del CP/M. Al giorno d'oggi questo tipo di astrazione è comune alla maggior parte dei sistemi operativi ma, al momento della nascita del CP/M, ciascun sistema era progettato specificamente per girare su una piattaforma specifica e un design multilayer era considerato non necessario.

Storia[modifica | modifica wikitesto]

L'inizio e l'apice della diffusione del CP/M[modifica | modifica wikitesto]

Il CP/M in origine era distribuito su floppy disk da 8 pollici, girava sulla CPU Intel 8080 (e sul compatibile e popolare Zilog Z80). In seguito, con il passaggio al formato da 5 pollici e ¼ il CP/M si adeguò—sfortunatamente ogni azienda realizzò un proprio formato sui dischi da 5¼ e ciò rese lo scambio dei dischi più difficile. I programmi scritti per il CP/M erano comunque completamente portabili tra diverse macchine con la stessa CPU; ciò lo rese popolare e fu scritto per il CP/M molto più software di quanto non fosse stato mai scritto su sistemi operativi strettamente dipendenti dall'hardware.

Centinaia di diverse marche di macchine permettevano di caricare il CP/M, alcuni esempi degni di nota, oltre al già menzionato Altair, l'IMSAI 8080, l'Altos, i portabili Osborne 1 e Kaypro, persino l'Apple II quando veniva installata una scheda opzionale con i processore Z80. Il sistema con il CP/M probabilmente più venduto è stato il Commodore 128, sebbene in pochi realmente hanno utilizzato le caratteristiche proprie del CP/M su tale home computer.

WordStar, uno dei primi programmi di videoscrittura ad essere utilizzato diffusamente, e il dBASE, il primo software popolare per la gestione dei database per piccoli computer, ma anche programmi grafici come il primo Autocad, furono originariamente scritti per il CP/M. I compilatori Basic più utilizzati furono inizialmente il CBASIC e successivamente l'MBASIC il primo prodotto dell'allora sconosciuta Microsoft.

Il mondo a 16-bit[modifica | modifica wikitesto]

Versioni del CP/M sono state realizzate per alcune CPU a 16-bit, ma richiedevano che i programmi applicativi fossero ricompilati per le nuove CPU, o, se erano scritti in linguaggio assembly, di essere praticamente riscritti da capo. Uno dei primi fu il CP/M-86 per l'Intel 8086, che fu seguito molto presto dal CP/M-68k per il Motorola 68000. A questo punto il CP/M a 8 bit venne rinominato CP/M-80 per evitare confusione.

Il CP/M-68k è stato utilizzato praticamente solo come base per il computer Atari ST. Il CP/M-86 aveva il potenziale per diventare il sistema operativo standard per i nuovi PC IBM, ma non fu raggiunto l'accordo, per le richieste economiche che IBM non accettò. Questo spinse la società a rivolgersi alla Microsoft. Da un clone di una parte del CP/M, chiamato QDOS della Seattle Computer Products, fu creato il sistema operativo PC-DOS/MS-DOS che divenne il sistema operativo "ufficiale" del PC IBM e degli innumerevoli compatibili PC-IBM immessi sul mercato negli anni successivi. La Digital Research, Inc minacciò di far causa a IBM e Microsoft e quindi IBM consentì di vendere anche il CP/M-86 come sistema operativo per i suoi computer. Ma il prezzo cinque volte più elevato rispetto all' MS-DOS spinse la maggior parte degli acquirenti verso il prodotto Microsoft.[1]

L'MS-DOS prevale[modifica | modifica wikitesto]

Molti dei concetti di base e dei meccanismi interni delle prime versioni dell'MS-DOS erano copiati esattamente da quelli del CP/M. Strutture interne quali quelle per la gestione dei file di dati erano identiche, entrambi si riferivano alle unità a disco con una lettera (A:, B:, etc.). La principale innovazione del MS-DOS fu il file system moderno basato su FAT unico per tutti e non diversi tipi come in CP/M. Un certo grado di similitudine fu senz'altro voluto, soprattutto per semplificare il porting del software scritto su CP/M, come il WordStar e il dBase. Tuttavia, le ultime innovazioni introdotte nelle versioni più mature del CP/M — quale ad esempio il supporto per aree utente separate sullo stesso disco — non furono mai portate nell'MS-DOS.

L'interfaccia utente dell'MS-DOS, tuttavia, è un po' più user-friendly. Si confronti, ad esempio, il comando di copia semplice del CP/M, PIP:

PIP <file di destinazione>=<file di origine>

con la sintassi più intuitiva del comando del DOS COPY usato anche nel CP/M come comando esterno come lo fu il comando xcopy del MS/DOS.

CP/M perse posizioni sul mercato man mano che il mondo del microcomputer migrava verso le piattaforme basate sul PC-IBM compatibili già venduti con MS/DOS, senza mai riguadagnare in seguito la popolarità di cui aveva goduto inizialmente. Le ultime versioni del CP/M-86 avevano fatto passi avanti significativi in termini di prestazioni e di facilità di utilizzo, tanto da essere considerato da alcuni, nel corso degli anni 1980 enormemente migliore dell'MS-DOS stesso, dato che era multiutente e multitasking come gli UNIX. Per riguadagnare nel marketing, il CP/M-86 venne sostituito con il DR-DOS dalla DR.

Note[modifica | modifica wikitesto]

  1. ^ I cinque (non)eventi che cambiarono l'IT, Punto-Informatico.it, 23 marzo 2009. URL consultato il 23 marzo 2009.

Bibliografia[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]