|
CP/M
con MP/M
di
Rodnay Zaks
Ed. Gruppo editoriale Jackson
1982 Italiano Lire 22.000
Interessandosi
un poco alla storia dell'informatica e leggendo articoli
o monografie su pubblicazioni che vanno dal 1975 al
1990 ci si imbatte spesso in questa sigla CP/M che
rappresenta l'acronimo di "Control
Program for Microprocessor".
Si tratta del primo sistema operativo concepito per
l'utilizzo di calcolatori basati su microprocessori,
di proprieta' della Digital
Research, caratterizzato
da una ampia diffusione e da una certa fortuna. Realizzato
originariamente per il controllo di un sistema di
sviluppo per il microprocessore 8080 della Intel,
fu trasportato agevolmente sullo Z80 della Zilog.
Si tratta di un raro esempio di simbiosii tecnologica:
lo Z80 si diffuse molto grazie alla presenza del CP/M
e dei programmi applicativi che ne sfruttavano i servizi
e contemporaneamente il CP/M godette di una larga
diffusione grazie al fatto che i produttori di PC
adottavano lo Z80 come cuore del loro sistema di calcolo.
Il CP/M nasce nel 1974 ad opera di un certo Gary Kildall
che lo sviluppo' per scopi personali al fine di agevolarsi
il compito nel supporto ad un compilatore PL/M che
girava su un sistema Intel. Dopo qualche anno di strepitoso
successo la Digital Research perdera' la sfida con
la Microsoft per aggiudicarsi la commessa del sistema
operativo DOS per IBM. Una versione a 16 bit del sistema
operativo e' comunque stata realizzata e commercializzata
con nome CP/M-86, evolta verso una versione di MSDOS
compatibile (DRDOS, Digital Research DOS) ma senza
eccessive fortune.
Il
libro presenta la versione 1.4 ma si spinge fino a
considerare le nuove caratteristiche della 2.2 (che
poteva gestire piu' di 64 Kb di memoria) e del sistema
multiutente MP/M (Multiprogramming
Control Program for Microprocessor). Non
sorprenda il fatto che i progettisti si siano spinti
fino ad estenderne le caratteristiche alla multiutenza
dato che il paradigma di un sistema di elaborazione
dati dell'epoca era basato sulla presenza di una unita'
centrale e sui collegamenti di terminali a carattere.
E' sorprendente invece che uno semplice Z80 con frequenza
di clock al massimo di 4 MHz riuscisse a realizzare
un ambiente elaborativo multitasking in time sharing.
E' evidente comunque che la risposta dei terminali
e l'esecuzione dei programmi non avevano l'immediatezza
alla quale siamo abituati nel 2002. Gli stessi programmi
erano molto meno ambiziosi, gli archivi piu' contenuti,
le elaborazioni molto piu' semplici e prevalentemente
batch e in definitiva si tolleravano tempi di attesa
molto piu' lunghi degli attuali. Era uso nei reparti
produzione preparare la compilazione e al lancio andarsene
tranquillamente a prendere il caffe', tanto il terminale
rimaneva bloccato su quel task per buoni 10 minuti
(bene che andasse). Un elogio della lentezza lasciatemelo
fare!
Il
volume inizia con una presentazione di cosa sia un
calcolatore, come deve essere affrontato, come e'
fatta la tastiera e come vengono maneggiati i floppy.
-"Vedete come sono comodi i floppini da 5 pollici?"
sembra suggerire l'immagine con il confronto dimensionale.
Poi si parte subito: dischetto di sistema inserito
(mica c'erano gli HD e anche se qualche emiro li possedeva
non facevano certo boot!), e via a generare la copia
di lavoro del floppy di sistema.
Il
prompt del sistema si presenta con una semplice lettera
"A" maiuscola e il segno di maggiore ">".
"A>"
vi ricorda qualche cosa?
Proprio
cosi'! Il buon Bill Gates quando ancora dirigeva uno
scantinato gia' scopiazzava. Poi ne ha fatto un'arte,
ma questa e' storia attuale.
I
comandi interni alla shell erano francamente pochini,
Si' che esisteva il comando DIR per visualizzare il
contenuto del floppy (niente directory, verranno un
bel po' dopo), ma pochissimo altro. Per esempio non
esiste la COPY che deve essere eseguita come comando
esterno, cioe' un file eseguibile che risiede sul
floppy di sistema. Il programma per copiare files
si chiama PIP (Peripheral Interchange Program) con
una sintassi abbastanza ridondante:
PIP
A:COPIA.TXT = B:ESEMPIO.TXT
Il
nome di destinazione e' davanti. Per stampare si usa:
PIP
LST: = A:COPIA.TXT
LST:
e' infatti il nome di un device riservato alla periferica
di stampa, come CON: e' il device della console e,
udite udite PUN: e' la device del lettore di nastri
perforati.
Il
nastro perforato era una maniera di registrare permanentemente
informazioni ri-leggibili quando non esisteva la tecnologia
magnetica. In pratica un nastro di carta di circa
un pollice (2,5 cm) era avvolto su una bobina tipo
quelle dei film (priva dell'avvento del DVD, si intende!).
Sul nastro venivano praticati dei fori che rappresentavano
l'informazione registrata. Questo metodo era poco
pratico e fu presto abbandonato, sostituito con le
schede perforate che avevano il vantaggio di poter
essere organizzate secondo la bisogna senza l'obbligo
di lettura di tutte le informazioni in maniera sequenziale.
La
versione multiutente (MP/M) puo' gestire la bellezza
di 16 utenti contemporanei in time sharing (con un
minimo di 32K di memoria RAM). Il problema piu' banale
che deve essere risolto su un sistema multitasking
e' la rilocazione dei programmi in memoria ed infatti
per rendere un programma per CP/M compatibile con
l'MP/M e' necessario "rilocarlo" con l'utility
di sistema GENMOD. Per spiegare il problema in due
parole quando un programmatore crea il codice Assembly
assume che la prima istruzione parta da una locazione
speciale di memoria che nel CP/M era la 100 (esadecimale).
Uguale e' per i programmi "COM" del MSDOS.
Ma lo Z80 non ha istruzioni di segmentazione, introdotte
solo con la famiglia di processori 8086, quindi puo'
gestire piu' utenti assegnando ad ognuno spazi fisici
diversi ad indirizzi di memoria non sovrapposti.
A riprova della difficile gestione della memoria il
comando MOVCPM permette di riconfigurare il sistema
quando sia stata aggiunta o tolta memoria fisica alla
macchina.
Le
directory ancora non esistono ma il CP/M aveva inventato
una soluzione "in casa" per garantire la
privacy dei dati e cioe' lo "user space".
In pratica il sottosistema dischi poteva dividere
una unita' floppy in aree utente (fino a 16). La prima,
quella di default e' la zero ed e' quella di uso normale
su un sistema monoutente. Il programma di trasferimento
dati PIP e' in grado di copiare dati fra aree diverse.
E
per creare un testo? Niente paura esiste il programma
ED, uno stupendo editor di linea molto simile al fratellino
ED.COM di MSDOS (ma guarda un po'! Solo coincidenze?).
Che cos'e' un "editor di linea"? Bene, immaginatevi
di non avere Word, di non avere Write, di non avere
nemmeno il Notepad, come fate a scrivere un testo?
Semplice, tornate indietro nel tempo ed imparatevi
ED. Potete scrivere una riga alla volta (con INVIO
si va a capo) e se sbagliate potete pure correggere,
anche se la procedura e' talmente macchinosa che vi
conviene riscrivere l'intera riga.
In
conclusione del volume l'autore accenna alla presenza
di altri sistemi operativi ed in particolare a quel
UNIX cosi' di moda sui mini-sistemi. Dice infatti:
-"Si e' tentato piu'
volte di rendere i microsistemi compatibili con un
sistema UNIX, ma senza successo. Comunque l'investimento
richiesto sarebbe molto grande e la probabilita' di
un successo limitata"
.
Tanto
per dire che se oggi abbiamo Linux e' grazie alla
caparbieta' e alla generosita' di tantissime persone
che ci hanno creduto veramente, senza fare calcoli
commerciali, ma semplicemente mettendo alla prova
ogni giorno le proprie capacita' e la propria fantasia.
Ad Excelsior - Aprile 2002
sonicher@interpuntonet.it
|