40 anni del CP/M: chi l'ha sviluppato, come e perché

Nel 1973 un giovane professore di Computer Science comincia a realizzare un emulatore della nascente piattaforma Intel i8080 al fine di completare per la società di Santa Clara il porting del popolare linguaggio PL/1, ribattezzato PL/M (Programming Language for Microprocessors). Nasce così l'embrione del Control Program/Monitor, successivamente ribattezzato in Control Program for Microcomputers, ovvero CP/M.

Avatar di Felice Pescatore

a cura di Felice Pescatore

Le origini

Gary Kildall, figlio di un capitano norvegese, consegue la laurea in matematica presso l'Università di Washington con l'intenzione di diventare docente in tale ambito. La sua passione per le tecnologie, però, diventa presto incontenibile e, con l'entrata in marina per la leva obbligatoria, si avvicina alla docenza di Computer Science presso la Naval Postgraduate School di Monterey, dove conseguirà anche il dottorato in Informatica. Parallelamente, Kildall comincia a smanettare su un sistema i4004, e le sue pubblicazioni lo avvicinano a Intel, con la quale nel 1973 si accorda per la realizzazione del porting del popolare linguaggio per mainframe PL/1 per la nuova CPU i8080.

Gary Kildall - clicca per ingrandire

La sfida entusiasma il giovane professore che, però, ha difronte un ostacolo non da poco: non riesce a ottenere un prototipo funzionante di un calcolatore basato sulla nuova CPU, ma solo le relative specifiche. Kildall decide allora di realizzarne un emulatore in Fortran sfruttando il DEC PDP-10 disponibile presso la propria università, unitamente a un monitor che permetta di controllarne il funzionamento.

Proprio quest'ultimo elemento è l'embrione del primo sistema operativo per microcomputer, inizialmente chiamato Control Program/Monitor. Il lavoro di Kildall è encomiabile e Intel fornisce presto al giovane tecnico l'Intellec-8, prototipo di microcalcolatore basato sulla nuova CPU.

Intellec 8

Resta però da risolvere ancora un ulteriore problema: il salvataggio dei dati (e del codice) su un supporto removibile. Kildall riesce a ottenere un'unità Shugart da 8" e trasforma il CP/M in un "micro" sistema operativo in grado di gestire le operazioni di I/O, sulla falsa riga di quanto effettuato dal TOPS-10 in esecuzione sul DEC. Si tenga presente che nella seconda metà degli anni '70, il concetto di sistema operativo è strettamente legato alle funzionalità di I/O, e assolutamente lontano dall'accezione che comincia ad assumere quasi un decennio dopo.

L'operazione è particolarmente complessa poiché richiede la realizzazione del Controller fisico, oltre che del software. Così Kildall chiede aiuto a John Torode che prende in carico l'aspetto hardware e, tra il 1973 e il 1974, il CP/M prende forma nella versione 1.2 (tipicamente la versione 1.0 viene associata al Monitor sviluppato sul PDP-10 e senza supporto hardware per il floppy).

John Q. Torode

Nella realizzazione del nuovo sistema, il professore coinvolge anche i propri studenti e, uno di essi, Gordon Eubanks, realizza un interprete BASIC, semplice ma efficace. Essendo tutte le attività finanziate, direttamente o indirettamente, dalla Marina, le prime versioni del CP/M sono di pubblico dominio e cominciano a suscitare un discreto interesse negli ambiti governativi.