Colossus
era una macchina da calcolo costruita per 'rompere' i messaggi
cifrati della Germania nazista che venivano forniti a Colossus su un nastro perforato.
Il sistema era
formato da otto telai con i circuiti a vista (cioè senza alcuna scatolatura).
Le intelaiature
erano alte più di due metri e contenevano 2500 valvole. Il primo modello
cominciò a lavorare nel gennaio del 1944 a Bletchley
Park, a nord di Londra. Fu presto
seguito da altre nove macchine. Finita la guerra otto sistemi sul totale dei dieci
costruiti vennero smontati
e distrutti. Due rimasero in servizio durante la "guerra fredda"
fino al 1960. Dopo di che anche questi dispositivi vennero smantellati.
Colossus, coperto da segreto militare per quasi venti anni, ha attirato l'attenzione di esperti e di curiosi. Un importante contributo alla sua riscoperta è stata la ricostruzione di un esemplare avviata agli inizi degli anni novanta e terminata nel 1996. Una breve e sostanziosa relazione scritta da Tony Sale che ha partecipato in prima persona al lavoro, si trova pubblicata in: http://www.codesandciphers.org.uk/lorenz/colossus.htm In essa emerge chiaramente che Colossus era programmato mediante spinotti, cavi ed interruttori ("programming of the cross-correlation algorithm was achieved by a combination of telephone jack-plugs, cords and switches."). Proprio questa tecnica esclusivamente hardware, permetteva una velocità di esecuzione eccezionale per quei tempi. Questa caratteristica porta ad una seconda conclusione e cioè Colossus era una specie di tabulatrice e non era un vero computer il quale, per definizione, è guidato da un programma scritto su scheda, su banda perforata, su un supporto magnetico o altro. Il programma software costituisce la caratteristica centrale della "macchina di Turing", il prototipo teorico di ogni computer o elaboratore di questo mondo. Dunque Colossus non è stato il primo computer della storia, come qualcuno racconta in giro. Questa rettifica deluderà quelli che propendono per una visione romantica dell'Informatica. Mi spiace, ma i fatti non possono essere travisati ed il primo computer della storia resta quello costruito da K. Zuse nel 1941 in Germania. Il suo programma era ingegnosamente perforato su una pellicola fotografica, riciclata per lo scopo. L'immissione delle istruzioni era lenta, il numero di istruzioni eseguibili ridotto, il programma era piccino, ciononostante la programmazione software vedeva per la prima volta la luce ed insieme nasceva il primo elaboratore della storia. Il contributo di Colossus alle vicende belliche fu di indubbia portata, ma anche in questo versante si è favoleggiato. La data di nascita ci dice che l'apparecchiatura cominciò a lavorare quando ormai la supremazia degli alleati era ben solida sui campi di battaglia e non mancava molto tempo alla fine della guerra.
anno 2004 |
94.
Ho letto la storia del controspionaggio inglese che determinò importanti successi nel corso dell'ultima guerra mondiale grazie a "Colossus". Fu questo il primo computer della storia? |
95. Per quali ragioni i computers hanno bisogno di essere programmati? |
Cominciamo col dire che i motivi non dipendono
dalla macchina in sé. Un elaboratore, tecnicamente parlando, potrebbe eseguire
intere sequenze di calcoli
con i soli circuiti hardware senza dover ricorrere al software. La maggior parte degli autori concordano nel sostenere che i motivi che dettano il software sono economici. Vari e differenti programmi riutilizzano gli stessi circuiti e questo produce un evidente risparmio di materiali ed un costo assai minore per l'acquirente. C'è
indubbiamente del vero in questa analisi. Ma l'economicità non è la prima ragione
della programmzione, quanto piuttosto un benificio aggiuntivo.
Il computer deve essere programmato perché nel tempo è chiamato a svolgere compiti completamente nuovi, aggiornati o comunque modificati.
Vediamo la questione con più dettaglio: Le
origini del software
2004 |
Il
source o
sorgente
è la versione simbolica del programma ovvero è la versione scritta
in Basic, in Java oppure in un altro linguaggio. Dal programma
sorgente o simbolico si ottiene il programma eseguibile
mediante un processo automatico che comprende vari passi: compilazione,
rilocazione ecc. Il programma sorgente è particolarmente importante perché si possono apportare modifiche e migliorie soltanto sul sorgente. Chi ha il sorgente è il vero proprietario del programma. Senza di esso, l'acquirente può soltanto utilizzare il programma, niente più. Per open source si intende la possibilità di copiare e modificare liberamente il programma sorgente da parte dell'utenza. Questa può apportare liberamente cambiamenti sul software open. E' ragionevole sospettare che una azienda dichiari 'open' un prodotto per venderlo più facilmente e poi questo non lo sia affatto. Ad evitare truffe è stato stabilito uno standard internazionale da parte dell'Open Source Initiative che fissa regole precise e quindi assegna il certificato al prodotto. Il più noto programma open è il sistema operativo Unix e la sua più recente versione Linux. Esso fu preparato da volontari per il preciso scopo di metterlo a disposizione di tutti con la libertà di apportarvi cambiamenti. Ancora sono open Apache (vedi risposta 61), Open-SSA per la crittazione, Star-Office, il browser Mozilla creato questo dalla Netscape come prodotto 'free' per contrastare la concorrente Microsoft.
Alle altre questioni espresse nella sua lettera, ho risposto privatamente.
2004 |
96. Quest'anno ho un incarico in un professionale... In quinta pensavo di parlare dell'open source... |