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.

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!
Indice dei contenuti
La pima generazione di calcolatori (’45 – ’55)
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, una valvola termoionica, 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 sistemi meccanici 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 avevano 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 come Colossus e il Mark.
La programmazione nasce comunque in quel periodo, anni ’50, con le celebri schede perforate. I programmi erano come i calcolatori erano ad appannaggio di pochi nelle università. Non esistevano i sistemi operativi, non c’era la necessità. Le schede perforate per ottenere 1 e 0 andavano a gestire direttamente le risorse di memoria e calcolo. Se sbagliavi a forare un bit, il programma non partiva ed era impossibile o quasi scovare l’errore, tanto da dover riscrivere l’intero programma.
Seconda generazione (’55 – ’65)
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 i primi linguaggi di programmazione come l’Assembly. L’assembly semplificava con i suoi opCode la realizzazione dei programmi, ma erano a basso livello e ogni programma girava esclusivamente sul computer per cui era stato ideato, in base all’architettura specifica della sua CPU. Siamo ancora lontani dal pensare alla necessità di un sistema operativo.
Piuttosto si cominciano ad evidenziare delle problematiche di ottimizzazione: le schede prima, i nastri magnetici dopo per essere caricati richiedevano anche molto tempo, tempo in cui la cpu rimaneva accesa a consumare corrente senza però fare conti. Occorreva la gestione a lotti:
- un piccolo sistema hardware a parte leggeva un lotto (batch in inglese) di schede perforate sulle quali erano memorizzati programmi e li trasferiva su un nastro magnetico, decisamente più veloce e performanti. Questo sistema viene detto di buffering
- terminata la lettura di un job, veniva riavvolto il nastro e inserito in un calcolatore più potente vero e proprio, prevalentemente l’IBM 7094, dotato dell’antenato degli attuali sistemi operativi, l’IBSYS per la gestione dei batch.
- questo rudimentale os si occupava di leggere in “sequenza” i vari job e di eseguirli uno dopo l’altro memorizzando i risultati su un secondo nastro magnetico. Il nastro di output veniva dato ad un piccolo calcolatore per stampare i dati ottenuti dall’ elaborazione.
Da li a poco verranno diffusi i linguaggi di programmazione di livello decisamente più alto come BASIC, FORTRAN e COBOL che segnano la fine delle schede perforate.
Terza generazione (’65 – ’80)
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. IBM prende letteralmente il monopolio della fascia sia industriale che quella di utenza comune che comincia ad avere accesso a calcolatori più piccoli ma limitati.
I pc cominciano ad usare la tecnologia dei circuiti integrati (IC), allora a bassa scala di integrazione, che portò però innumerevoli vantaggi in termini di dimensioni, prezzo e prestazioni.
Negli stessi anni vedono la luce i microprocessori Intel x8086 a 16bit 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.
Nascono i primi calcolatori compatibili con quelli IBM, delle copie diciamo così, che fecero la fortuna di tanti costruttori e permisero di uniformare software di utilità prima e S.O. dopo. La compatibilità software fra i diversi computer fu un fattore di grande forza, ma anche un punto debole. Principalmente ciò è dovuto al fatto che l’intenzione era di avere lo stesso software, SO compreso, su tutti i modelli, ma le grandi differenze nelle caratteristiche hardware e nell’uso in ambito scientifico e commerciale avevano requisiti spesso in conflitto fra loro.
Nasce un grossolano sistema operativo, l’OS/360. Era costituito da milioni di righe di codice assembler, scritto da migliaia di programmatori e conteneva centinaia di errori, che rendevano necessarie versioni sempre nuove, con le quali si correggevano i vecchi e se ne introducevano di nuovi. Nonostante le enormi dimensioni e gli errori, i sistemi operativi della terza generazione seppero soddisfare gli utenti, anche grazie all’introduzione di nuove tecniche: la multiprogrammazione, spooling e il time sharing. Quest’ultimo con l’innovativo S.O. chiamato CTSS. Nasce anche Unix, padre di Linux e i sistemi operativi di casa Apple.
Quarta generazione (’80 – ’90)
Gli anni ’80 decretano una svolta senza precedenti. Ad iniziare dai circuiti integrati su larga scala LSI (Large Scale Integration) che portò, alla costruzione dei primi personal computer più economici. Nel 1974 la INTEL costruì la il microprocessore 8080. Gary Kildall costruì un controllore per floppy disk che collegò all’8080 realizzando il primo microcalcolatore con disco e scrisse il sistema operativo CP/M basato su disco, praticamente dominatore unico sui pc commerciali
Nel 1980 IBM leader dei PC e chiede più o meno segretamente Bill Gates la licenza del suo interprete BASIC e un sistema operativo adatto. Gates suggerì di contattare la Digital Research di Kildall ma, non trovando intesa commerciale, venne anche invitato a fornire un nuovo OS. Microsoft acquistò allora il DOS (Disk Operatine System) da una piccola azienda e lo propose con l’interprete BASIC alla IBM. Il colosso fu praticamente costretto a riscriverne buona parte, visto il numero impressionante di bug.
Il successo Microsoft dipese anche dalla scelta di Gates di vendere MS-DOS alle aziende che producevano computer perché formasse un unico pacchetto con la macchina. Una operazione di marketing senza precedenti che monopolizzò il mercato, tagliando fuori chi vendeva s.o. singolarmente.
Le successive versioni di MS DOS avevano caratteristiche più avanzate ispirate anche da UNIX.
Originariamente, i controlli di questi sistemi dipendevano da una serie di comandi da tastiera. Tuttavia, Engelbart ha rivoluzionato il modo in cui interagiamo con i computer introducendo l’interfaccia utente grafica (GUI) che prevedeva l’uso di icone, menu, finestre e, in particolare, del mouse. Questa innovazione fu successivamente sfruttata da Jobs, il creatore della calcolatrice Apple, che produsse il Macintosh. Il Macintosh ottenne un successo senza precedenti rendendo i personal computer accessibili alle masse.
Come risultato di questa influenza, Microsoft ha creato un sistema operativo chiamato Windows. Inizialmente, questo sistema funzionava insieme a MS-DOS dal 1985 al 1995. Tuttavia, le versioni successive come 95 e 98 includevano quasi tutte le funzionalità del sistema operativo originale. Alla fine fu rilasciato Windows XP, che eliminò completamente la necessità di MS-DOS.
Una nota particolare merita il S.O. Linux apparso per la prima volta nel 1991, che, nato su iniziativa di un giovane studente di nome Linus Torvalds, che intendeva scrivere una versione professionale gratuita di un clone di UNIX detto MINIX, ha ben presto ricevuto l’appoggio di numerosi sviluppatori sparsi in tutto il mondo, che hanno potuto contribuire al suo sviluppo soprattutto grazie ad Internet. L’ affermazione di questo SO è storia recente ed è tuttora in crescita con Linux presente su circa il 3% dei pc utente (fino al 13% in India) e il 70% dei server commerciali del mondo.
E’ un periodo florido per la tecnologia con l’introduzione del DMA e la diffusione di linguaggi di programmazione ad alto livello come il C++.
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.
Mentre IBM e compatibili continueranno 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.
Anni 2000
Nascono i famosi Pentium e AMD K. Nel 2000 comincia ad affacciarsi una miglioria con la x86-64 a 64 bit 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 120 watt scaldando un quadratino di pochi cm fino a 90°/100°, richiedendo sistemi di raffreddamento davvero sofisticati.

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 20 Ottobre 2023