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.
Allora perchè viene programmato?

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. 

 

Indietro

2004

96. Quest'anno ho un incarico in un professionale... In quinta pensavo di parlare dell'open source...