Piccola storia ragionata dell’informatica

Probabilmente in rete si trovano elenchi più esaustivi e dettagliati della storia dell’informatica ma, per il corso di Sistemi e Reti, occorrono pochi passaggi anche senza date particolareggiate quanto il periodo storico in cui si vanno a collocare determinate scoperte.

Permettetemi un paio di definizioni fondamentali:

INFORMATICA:  scienza che si occupa del trattamento dell’informazione mediante procedure automatizzate.  

INFORMAZIONE: l’insieme di dati, correlati tra loro, con cui un’idea (o un fatto) prende forma ed è comunicata.

Da queste due definizioni possiamo comprendere come al centro dell’informatica ci sia il dato e la sua elaborazione, mentre per (cattiva) abitudine siamo portati ad identificare l’informatica con lo strumento principe che serve a gestire ed automatizzare i nostri dati che il personal computer.

Se intendiamo quindi informatica come automazione, il primo passo nella storia in tal senso lo possiamo far risalire al 2000/3000 a.C. circa quando contemporaneamente in Cina e Occidente viene realizzato l’abaco, rudimentale strumento per tenere conto.

Per vedere dei passi avanti nell’automazione, dobbiamo arrivare al persiano al-Khwarizmi, vissuto nell’800 d.C. che inventa l’algoritmo, emblema fondamentale del pensiero computazionale. In quello stesso periodo il mondo arabo dava un grande contributo all’astronomia realizzando gli astrolabi e altre macchine di misura, buttando poi le basi per la matematica e crittografia che conosciamo oggi.

Non è esattamente un informatico, ma Leonardo Da Vinci tra il 1400 e 1500 col suo genio progetta e realizza una grande quantità di macchine automatiche per svariati usi militari o teatrali, dando un significativo contributo al mondo dell’automazione.

Ancora un bel balzo, per arrivare attorno al 1600 d.C. quando Pascal realizza quella che con alcune raffinazioni anche successive, prenderà il nome di Pascalina, una calcolatrice meccanica.

Pascalina
Pascalina

Nel 1700 d.C. Leibniz, getta le basi per l’algebra di Boole ovvero il sistema di vero/falso, acceso/spento o uno/zero fondamento del concetto di bit alla base dell’architettura dei moderni calcolatori.

Nel 1800, in piena rivoluzione industriale, Charles Babbage costruisce un primo vero esempi odi calcolatore meccanico con tanto di schede perforate e una sorta di memoria intermedia. La sua assistente Ada Lovelace, ideò un sistema per programmare questa macchina tanto che gli è riconosciuto il merito di prima programmatrice della storia con tanto di dedica col nome del linguaggio ad oggetti ADA.

Arriviamo alla Seconda Guerra Mondiale, possiamo usare come riferimento l’anno 1940 d.c.I tedeschi, grazie ad una invenzione polacca, perfezionano Enigma, una macchina da scrivere particolare con alcuni cilindri rotanti che permetteva di crittografare i messaggi che si scambiava l’esercito in modo da non rivelare i propri piani. Fu un elemento vincente per i tedeschi finché Alan Turing riuscì ad inventare un calcolatore meccanico capace di decriptare i messaggi intercettati. Turing è in realtà considerato uno dei padri dell’informatica per la numerosa quantità e qualità di scoperte sia teoriche che pratiche. La seconda guerra mondiale fa comprendere come la strada dell’informatica sia sempre più necessaria per ogni campo pratico, militare, civile, industriale. Cominciano così a diffondersi anche componenti elettrici/elettronici e la ricerca teorica si infittisce di scoperte e teoremi fondamentali. In questo periodo le università americane vengono fortemente foraggiate anche dai vari organi militari che intuiscono la strategicità dell’investimento. Una di queste scoperte è la Macchina di Von Neumann che ha teorizzato il modello logico/progettuale dei calcolatori moderni con ALU, Unità di Controllo, registro accumulatore della ALU e la memoria.

Da questo momento in poi le scoperte come calcolatori, innovazioni tecnologiche e tutti i derivati fondamentali come CPU, Sistemi Operativi e Linguaggi di programmazione si inseguono con cadenza quasi giornaliera!

Nascono i primi calcolatori programmabili  come ENIAC, poderosa macchina da 180m2 di spazio, contava circa 18000 valvole, i predecessori degli odierni transistor, una sorta di lampadina molto veloce ad accendersi e spegnersi. Usava “purtroppo” il sistema decimale, si potevano inserire 20 numeri di 10 cifre alla volta ed eseguiva circa 5000 operazioni al secondo. Era programmato con schede perforata da una trentina di donne laureate in matematica, che vennero definite, ahimè in tono dispregiativo, le “computers” dando invece il nome ai nostri pc. Era il rimo calcolatore con soli circuiti elettronici non in movimento! Il suo uso era militare come i fondi che lo aveano finanziato: calcolava le traiettorie dei missili. In quel periodo nacquero calcolatori simili in molte università degli Stati Uniti dando vita ad un fermento innovativo considerevole.Eniac

Il dopoguerra sarà frenetico: nasce nel ’47 il transistor, elemento cardine per sostituire i tubi a vuoto e ottenere una miniaturizzazione dei calcolatori. Negli anni 50, continua l’innovazione con i dischi rigidi magnetici, i circuiti integrati, la memorie RAM, calcolatori sempre più piccoli ed economici soprattutto da parte di IBM, industria all’avanguardia nel settore. Nel 1962 viene venduto il  PDP-1, il primo computer commerciale con un monitor e tastiera mentre i calcolatori fino a quel momento erano destinati ad università e militari; un paio di anni dopo nel 1964 la Xerox inventa il mouse, mentre nascono l primi linguaggi di programmazione come BASIC, FORTRAN e COBOL che segnano la fine delle schede perforate.

Negli anni 70 continuano le innovazioni: nascono i primi microprocessori ed in particolare lo Intel 8080, il primo microprocessore ad 8 bit. Nasce l’Atari, storica società di videogiochi e il mitico Pong, mentre viene rilasciato il linguaggio C, caposaldo della attuale programmazione. Nascono i primi sistemi operativi per i computer soprattutto Unix, cominciano a diffondersi le reti Internet per collegare le università americane.

Negli stessi anni vedono la luce i microprocessori Intel x8086 e Apple, due architetture che governeranno il mercato dei calcolatori assieme a quelli più videoludici come Commodore e Amiga. Negli anni 80, i PC IBM, Commodere64 faranno record di vendite tra la gente comune decretando il successo definitivo dei pc desktop come li conosciamo oggi.

Mentre IBM e compatibili continuerà ad utilizzare i processori Intel, Apple farà una scelta architetturale diversa affidandosi da prima ai processori Motorola realizzando una sinergia per realizzare i famosi PowerPC basati su architettura RISC contro quella CISC dei processori Intel e sistema operativo MacOS basato su Unix contro i commerciali DOS e Windows 1.04. Due filosofie a confronto che facevano la forza dei computer Apple fortemente indirizzati alla qualità piuttosto che alla quantità, caratteristica che ne ha fatto la fortuna tra i professionisti della grafica soprattutto. Nel 2005/2006, Steve Jobs decide di abbandonare l’architettura RISC per inserire la più commerciale di Intel e puntare al logo assieme a caratteristiche diverse quali aspetto ed usabilità piuttosto che capacità di calcolo.

Dagli anni 80 in poi Intel e la neonata AMD rilasceranno con cadenza periodica CPU sempre più potenti dell’architettura CISC x86, con una quantità di transistor sempre crescente secondo la famosa legge di Moore che prevedeva il raddoppio della potenza di calcolo ogni 18 mesi. Nascono i famosi Pentium e AMD K. Nel 2000 comincia ad affacciarsi una miglioria con la x86-64 nel 2003 e il multicore nel 2005. Attorno al 2010 la legge di Moore perde di significato, avendo raggiunto sostanzialmente dei limiti produttivi fisicamente difficili da superare: i transistor vengono stampanti con laser che raggiungo i nano metri (nm) ma non si può andare troppo nel piccolo se non alterando gli atomi! Un numero elevato di transistor inoltre implica consumo di corrente e relativo problema con le temperature. Le CPU odierne possono consumare da sole anche 120w scaldando un quadratino di pochi cm fino a 90°/100° che richiedono sistemi di raffreddamento davvero sofisticati.

Legge di Moore

L’architettura RISC non viene messa da parte ma vive e vegeta soprattutto grazie ai dispositivi mobili, telefonini, tablet, dove il problema del consumo delle batterie e della temperatura sono problemi significativi e richiedono CPU diverse. RISC viene rispolverata anche da AMD per i processori Opteron dei server aziendali.

Sicuramente le CPU x86 continueranno ad essere raffinate aggiungendo potenza di calcolo come il passaggio x86-64, ma i limiti strutturali sono evidenti. Al lettore attento che si chiede perché non fanno una x86-128 una risposta secca: per le attività computazionali di oggi non c’è un reale beneficio che giustifico un re-design dell’attuale architettura. Si i registri delle nostre ALU sarebbero grandi 128 bit così da poter effettuare operazioni con numeri grandi ma per gestire tanti bit occorrono anche componenti che possiedano altrettante porte di in/out, bus su misura che fisicamente occuperebbero molto spazio per quanto miniaturizzati. Anche a livello di RAM indirizzabile non si ha un gran vantaggio: i sistemi a 64 bit indirizzano 512 GByte di memoria che è un numero già spropositato per le attuali applicazioni.  Ecco perché da anni vengono studiati i computer quantistici, che superano le attuali architetture basate sul bit 1 o 0 ma introducono un terzo simbolo. IBM e Google sono costantemente impegnate nell’evoluzione di questo progetto e già nel 2019 i c.q. riescono a risolvere problemi perlopiù matematici con tempi decisamente migliori. Un test sul campionamento ad ottobre ha risolto, ad esempio, in 3 minuti quello che un pc tradizionale farebbe in 10000 anni. Sono processori al momento non commerciali che ovviamente avrebbero limiti di funzionamento con le operazioni quotidiane.

Ultima modifica 30 Gennaio 2022