Menu

Il contributo fondamentale del CP/M

Il CP/M di Gary Kildall è stato il primo sistema operativo general-purpose per computer ad 8 bit. Il professore americano dimostra al mondo che la possibilità di realizzare un’API generica per sistemi operativi dedicati ai microcomputer, garantendo al contempo sufficiente memoria per eseguire le applicazioni.

Questa, sostanzialmente, l’idea dietro al CP/M e la forza che di fatto lo trasforma nel sistema di riferimento di fine anni ’70 – inizio anni ’80, portando il mercato dei microcomputer ad esplodere e spingendo IBM a buttarsi nel settore. L’idea di interfacce per la comunicazione tra programmi diversi e tra compenti dello stesso programma, è comunque un concetto vecchio e rodato, sicuramente antecedente al lavoro di Kildall. L’esempio più significativo è la già citata API che ogni sistema operativo espone per il funzionamento dei programmi, basti pensare a UNIX.

In tale ottica il CP/M è stato foriero di idee. Infatti il BDOS, core del sistema, da una parte esponeva le API per le applicazioni, mentre dall’altra utilizzava il Basic Input/Output System (BIOS) per controllare l’hardware specifico. Questo approccio fu definito “il maggior contributo di Gary” da John Wharton (“Gary’s most profound contribution”),  “rivoluzionario e fenomenale” da Harold Evans ( “truly revolutionary”, “a phenomenal advance”), “supremo” da Tom Rolander  (“supreme accomplishment”, “originator of that layering of the software”).

 oslayers

Semplificazione della separazione tra gli elementi di un Sistema Operativo

Paterson è alquanto perplesso riguardo all’aspetto “rivoluzionario” nel design del CP/M, a cui va comunque riconosciuto il merito di aver introdotto questa architettura nel mondo dei microcomputer, ritenuto indispensabile dallo stesso Kildall dopo essersi trovato a riscrivere diverse volte le parti di gestione dell’hardware:

“..so many times that the tips of my fingers were wearing thin, so I designed a general interface, which I called the BIOS..”

Infatti le prime tracce del BIOS si incontrano nella versione 1.3 del CP/M, mentre nelle precedenti sembra non esservene traccia.  L’abilità di Kildall è stata quella di portare nel mondo dei microcomputer un sistema indipendente dall’hardware, cosa subito osannata dal mercato, stanco di frammentazioni ed incompatibilità.

Paterson aveva già avuto modo di studiare i concetti dietro la separazione layer interface based tra il core del sistema e l’hardware grazie al suo primo computer, l’IMSAI 8080, e al relativo sistema operativo NorthStat DOS, che disponeva già un livello di separazione con l’hardware sottostante in grado di farlo funzionare su hardware diverso. A quel tempo, sempre Paterson, afferma di non aver mai avuto neanche minimamente idea di cosa fosse il CP/M.

imsai8080 

l’IMSAI 8080

Su tali basi architetturali viene sviluppato lo stesso DOS. Il CP/M viene preso come modello di riferimento per la scelta delle funzionalità da aggiungere o eliminare. Infatti l’OS di Kildall era essenziale e quindi facilmente utilizzabile per avere elementi di confronto semplici ed atomici.

Quello che accomuna i due sistemi, quindi, è una stratificazione a livelli e una serie di funzionalità similari, esattamente come tutti i sistemi operativi sviluppati dagli anni ’80 in poi. Ciò però non porta automaticamente a considerare il DOS una copia del CP/M, altrimenti anche i moderni OS dovrebbero essere ritenuti “imitazioni” dell’OS DRI solo perché implementano il set di funzionalità pensate da Kildall, di fatto la scelta migliore per l’utilizzo dei microcomputer.