Grafo

I media telematici come strumento per la comunicazione scientifica

Bollettino telematico di filosofia politica
bfp
Home > Didattica > Media telematici

Elementi di teoria dell’informazione

a. Il computer
b. Internet
c. Il World Wide Web

a. Il computer

Il modello matematico del moderno computer è stato formalizzato poco più di sessanta anni fa, negli anni Quaranta del Novecento, dal matematico inglese Alan Turing. La storia del “calcolatore”, intesa in senso ampio come storia della ricerca di procedure e strumenti in grado di aiutare l’uomo a gestire grandi quantita di dati, è assai più antica; l’origine viene fatta risalire all’invenzione dell’abaco, nel 3000 a.C., e si arricchisce nel corso del tempo, di elementi essenziali (solo per enuclearne alcuni tra i più significativi: il sistema binario è un’invenzione cinese del 1100 a.C.; la prima calcolatrice meccanica con riporto automatico fu costruita da Pascal, nel 1642; Charles Babbage, nel 1830, creò la macchina analitica, e Ada Byron, conosciuta anche con il nome da sposata di Lady Lovelace, ne descrisse il funzionamento, scrivendo il primo programma della storia).

Alan Turing è considerato il padre del moderno computer per aver formulato, in uno studio del 1936, il modello teorico del calcolatore a istruzioni memorizzate. Tale modello, chiamato macchina di Turing (mdT), è astratto e universale in quanto dimostra la possibilità di macchine (come i nostri computer) in grado di risolvere problemi diversi. Il teorema che ne deriva è che, se un problema può essere risolto con una mdT, è calcolabile, dunque esistono soluzioni ad esso. Un corollario importante della scoperta di Turing, tuttavia, è che esistono problemi incalcolabili (quelli che la mdT non può risolvere, appunto). Di particolare interesse ai fini del nostro tentativo di definire il calcolatore, è la spiegazione funzionale proposta dallo stesso Turing nel saggio “ Macchine calcolatrici e intelligenza” del 1950.

Gli attuali personal computer sono di dimensioni assai ridotte, e si basano su una tecnologia in buona parte differente da quella in uso cinquant’anni fa. Commercializzati a partire dagli anni Ottanta dalla Apple, e a seguire da IBM e dai suoi concorrenti (che hanno offerto macchine IBM-compatibili a prezzi sempre più accessibili al pubblico), si sono rapidamente diffusi anche grazie alla propagazione del primo sistema operativo della Microsoft, Windows, che permetteva di visualizzare i dati nel computer in modalità grafica, facilitandone l’uso ai non addetti ai lavori.

Il sistema operativo è un software, cioè un programma, che si comporta da gestore delle risorse: mette a disposizione dell’utente una comoda interfaccia, tiene traccia di chi usa quale risorsa, soddisfa le richieste delle diverse risorse e ne contabilizza l’uso, mediando i conflitti provenienti da programmi e utenti diversi. Più in generale, il codice software consiste propriamente in una tavola di istruzioni, di regole che, eseguite, portano ad un risultato, producendo effetti più o meno visibili.

Per definire il calcolatore, è oggi in uso tra gli informatici un modello formale, che lo rappresenta come un’architettura di “strati” costruita secondo livelli di astrazione crescenti. Riproduciamo uno schema nella figura qui sotto, che rappresenta, semplificata, tale struttura 1 :

La sezione più scura dello schema, in basso, è composta dall’hardware (letteralmente “ferramenta”, cioè i dispositivi fisici), e da un primo strato di software, il linguaggio macchina o assembler (che viene trasformato in impulsi elettrici).

Le due sezioni superiori rappresentano strati di software, sono cioè programmi, solo codice; il grigio più scuro comprende software di livello più basso: il sistema operativo e altri programmi importanti tra cui i compilatori, programmi che trasformano codice sorgente (scritto in un linguaggio di programmazione detto di alto livello) in linguaggio macchina; colorato di grigio chiaro, lo strato più in alto contiene i programmi applicativi (i browser per navigare sul web, programmi per leggere la posta e di videoscrittura, e i molti altri che rispondono alle numerose e differenti necessità quotidiane dell’utente).

Possiamo tralasciare i dettagli tecnici, e osservare l’utilità di tale modello: la metafora degli strati mostra infatti che sotto il livello superiore, che oscura quelli inferiori alla nostra vista, si nascondono, come in una cipolla, altri strati sempre più profondi. In questo modo, ci è possibile gestire le nostre informazioni senza dover interagire con gli strati più bassi del sistema, come facevano i primi programmatori. Allo stesso modo, gli stessi programmatori hanno a disposizione strumenti che facilitano loro notevolmente il lavoro; salendo dal basso verso l’alto, i programmi vengono infatti scritti in linguaggi di livello sempre più alto, che avvicinandosi al linguaggio naturale, sono più facilmente comprensibili dagli esseri umani (si vede, in figura, un esempio di codice sorgente scritto in XX).

Lavorando al nostro calcolatore vediamo la punta di un iceberg: la parte più vasta di esso è nascosta alla vista, ma sta sotto e sorregge ciò che emerge. La metafora degli strati può così essere estesa al piano dei contenuti, per mostrare che tale livello comunica ed interagisce con gli altri. Le pagine che state leggendo, ad esempio, sono state scritte con un particolare programma ad un calcolatore su cui gira un particolare sistema operativo, sono state codificate in un formato e poi pubblicate sul Web. Tutte queste variabili avrebbero reso un tempo impossibile leggerle da chi avesse avuto hardware e software diverso dal mio. L’avvento di Internet e del World Wide Web hanno promosso l’interoperabilità; tutt’oggi, comunque, hardware e software influenzano il modo in cui le informazioni vengono visualizzate, ma anche e soprattutto quanto sono accessibili ed esportabili, e quanto dureranno nel tempo.

Riferimenti e link rilevanti

Andrew S. Tanenbaum. I moderni sistemi operativi (cfr. nota).

b. Internet

Quando parliamo di Internet, intendiamo tanto l’infrastruttura fisica che collega in rete tramite cavi un’insieme di calcolatori, quanto il software che permette lo scambio di informazioni tra computer, in particolare lo stack di protocolli TCP/IP. Entrambe le idee sono dovute a Paul Baran, cui, alla fine degli anni Cinquanta fu affidato il compito di studiare un sistema di comunicazione in grado di resistere ad un attacco nucleare. In un articolo del 1964 Baran suggerì tre possibili topologie per una rete di comunicazione: (a) centralizzata; (b) decentralizzata; (c) distribuita.

Lo scienziato americano dimostrò che solo la terza, progettata con un’architettura a maglie analoga alla rete stradale, rispondeva all’esigenza postagli. Baran propose inoltre di dividere l’informazione in pacchetti, e di far viaggiare i pacchetti attraverso la rete indipendentemente l’uno dall’altro; questa soluzione necessitava il passaggio da un sistema analogico ad uno digitale, e stentò a farsi strada.

Attualmente, la topologia di Internet è assai più complessa di quella indicata da Baran; della struttura iniziale, resta l’impossibilità di identificare al suo interno un database centrale da cui chi è connesso possa attingere informazioni; viceversa, la struttura reticolare e la sua efficienza consiste nell'assenza di un vero e proprio centro e dalla centralità dei margini. Lo stack di protocolli TCP/IP (Transmission Control Protocol/Internet Protocol) di Vinton Cerf e Robert Kahn, usa invece propriamente la tecnica di commutazione di pacchetti come fu pensata dallo scienziato americano.

Il TCP/IP non istituisce un’interazione permanente tra due macchine; uno stesso canale di rete può servire contemporaneamente più utenti, così che la rete non sia propriamente una cosa, ma piuttosto un accordo che permette la coesistenza e la cooperazione tra i nodi. Il modo in cui funziona ricorda il sistema delle cretule di argilla, antenate della scrittura sumerica cuneiforme. Il protocollo definisce una serie di regole standardizzate e comuni che permettono la comunicazione tra differenti tipi di calcolatori che non parlano necessariamente la stessa lingua, proprio come le cretule istituivano un codice comune di scambio, astratto dalle lingue effettivamente parlate.

L'analogia con le cretule si fa calzante osservando che su Internet le informazioni sono tramesse in “piccole scatole”. Il TCP suddivide il flusso cifrato dei dati in pacchetti, contrassegnando ciascuno di essi con un’intestazione particolare (composta da un’informazione che indica il loro ordine di creazione e quello che bisognerà seguire per ricomporli all’arrivo) e una somma di verifica (un numero utilizzato per accertare l'eventuale presenza di errori). Ciascun pacchetto comincia inoltre con le istruzioni d’indirizzamento previste dalla normativa IP, una notazione che corrisponde a quella utilizzata per le buste cartacee: nome mittente, nome destinatario, e indirizzi di entrambi.

È importante osservare che lo stack di protocolli è pubblico, cioè può e dev’essere consultato da chi intende connettere fisicamente un calcolatore alla rete Internet. È dunque un vero e proprio dominio pubblico che, lasciando i permessi fuori dal sistema, è aperto a tutti e può essere (ed è) continuamente migliorato a condizione che sia mantenuta la sua semplice struttura fondamentale.

Nonostante la completa pubblicità del protocollo che collega i singoli nodi alla rete, la gran parte dei programmi che girano sui nostri calcolatori non sono altrettanto pubblici. La chiusura delle sorgenti (ovvero la non accessibilità delle istruzioni che l'uomo scrive e può comprendere) è una prassi consolidata nel mondo del software proprietario (la Microsoft di Bill Gates in primo luogo), e genera un vero e proprio monopolio della conoscenza. Di contro, la stessa rete è stata la culla di un vasto e variegato movimento per il software libero.

c. Il World Wide Web

E' storia nota che il Web è stato inventato alla fine degli anni Ottanta al CERN da Tim Berners-Lee. Al tempo, il giovane ricercatore inglese si occupava di sistemi informatici per il prestigioso istituto di fisica delle particelle con sede a Ginevra. Il suo compito richiedeva in particolare di memorizzare velocemente alcune informazioni riguardanti all'incirca 1.400 persone, che lavoravano con macchine diverse e programmi diversi. In Weaving the Web Berners-Lee racconta che Enquire fu il primo programma che anticipò il World Wide Web. Il nome riprendeva un'enciclopedia inglese che da bambino il programmatore amava sfogliare, dal titolo “Enquire Within Upon Everything”.

Enquire, a differenza dei tradizionali sistemi informativi, non usava alberi ma link bidirezionali (all'interno del programma) e link monodirezionali (in direzione esterna). Ogni pagina era un nodo, e per creare nuovi nodi era necessario linkarsi a un nodo esistente; i link ai nodi si ordinavano in un elenco che, per trovare un'informazione, doveva essere sfogliato dall'inizio. “Immaginate, scriveva nella sua proposta Berners-Lee, di realizzare un grande modello tridimensionale, in cui la gente compare in forma di piccole sfere, con i fili che corrono tra le varie persone aventi qualche rapporto di lavoro. Adesso immaginate di dare una scrollata alla struttura, fino a dare un senso a quel groviglio. Forse in quel punto vedrete dei gruppi intrecciati strettamente, e in altri delle aree di comunicazione debole, con poca gente.” (L'Architettura del nuovo Web, p. 32)

Da Enquire al suo successore Tangle ("intrico") fino al World Wide Web, il progetto del fisico inglese prende la forma di un sistema di documentazione universale: nel suo lavoro, Berners-Lee sperimenta con difficoltà la mancanza di interoperabilità tra hardware e tra software e progetta un sistema con regole comuni, accettabili per tutti, cioè il più possibile vicino alla mancanza di regole.

A modello del suo sistema Berners-Lee sceglie l'ipertesto. E' necessario che il nuovo sistema funzioni tramite associazioni tra cose apparentemente scollegate. All'importanza del collegamento nei sistemi di documentazione e all'idea di ipertesto si erano già dedicati, in tempi più remoti, Vannevar Bush e Ted Nelson. Nel saggio As we may think (1945), il primo aveva ipotizzato una macchina fotoelettronica, il Memex, in grado di attuare e seguire riferimenti incrociati su microfilm servendosi di codice binario, fotocellule e fotografia istantanea; il secondo, autore del noto Literary Machines (1981) è l'inventore del termine “ipertesto”, una griglia in espansione in grado, potenzialmente, di raccogliere in un unico sistema tutti i testi della letteratura mondiale, secondo il progetto dell’utopico software Xanadu; nel sistema ideato dal Nelson, ogni citazione sarebbe stata dotata di un link con la fonte, garantendo così una ricompensa agli autori citati.

Berners-Lee si immagina l'ipertesto come uno strumento per il lavoro di gruppo e collaborativo. Nello spazio del Web sarebbe stato possibile leggere e muoversi nell'ipertesto, e scriverci. Il sistema avrebbe dovuto però essere decentrato, in modo che ogni nodo fosse intrinsecamente equivalente agli altri; lo strumento per creare i collegamenti il link, che, in questo caso, è stato pensato solo monodirezionale.

Da un punto di vista tecnico, il Web è un architettura minima e universale a ipertesto che, per funzionare su scala planetaria, si serve di Internet, intesa tanto come infrastruttura fisica di comunicazione, quanto come insieme di protocollli (primo tra tutti il TCP/IP). La necessità di interoperabilità tra diversi hardware e software e il problema dell'internazionalizzazione delle codifiche sono vincoli tali da aver comportato la necessità di un principio architettonico fondante: l’apertura (universalità). Da tali presupposti sono pertanto derivate poche scelte tecniche fondamentali:

  • 1. URI o URL: il modo in cui il web funziona richiede a ciascuno di dare un Universal Resource Identifier (o, più precisamente, Uniform Resource Locator) ai propri documenti. Ogni volta che un pezzo d'informazione viene etichettato con un indirizzo, è possibile chiedere al proprio computer, tramite un browser, di trovarlo. In questo modo, tutti i documenti sono uguali tra loro; la parità dei nodi è garantita mantenendo la facilità nei link e la possibilità di aggiungere link verso qualsiasi pagina.

  • 2. http: il protocollo di scambio delle informazioni, http, è aperto a tutti i formati e si basa su regole minime, tali da permettere ai computer di comunicare tra loro; con un protocollo minimo e semplice, al crescere dei nodi il sistema, invece di collassare, si arricchisce.

  • 3. HTML: il linguaggio di mark-up del Web è una lingua franca, comprensibile ai browser, che si basa su una regola fondamentale di progettazione (veicolare solo la struttura del documento ipertestuale, non il suo apparire) e permette con enorme facilità di collegare le pagine l’una all’altra.

Anche il Web dunque, è utile ripeterlo, non è un programma, ma un insieme di protocolli. Come mostra la figura in basso, le specifiche http, URI e HTML formano una specie di “bus” che connettono i programmi che risiedono sul computer dell’utente (detti client) ad altri programmi installati su computer remoti che forniscono le informazioni (cosiddetti server).



[1] Si tratta, ovviamente, di una rappresentazione semplificata; la stratificazione è, nella realtà, più varia e complessa. Cfr. A.S. Tanenbaum, I moderni sistemi operativi, Jackson università, Milano 2001. L’informatico olandese è inventore di Minix, un sistema operativo il cui sviluppo ha dato un impulso fondamentale alla ricerca e alla didattica dei sistemi operativi. È noto, tra gli hacker, l’aspro contrasto con Linus Torvalds, inventore di Linux, sul problema del kernel monolitico o a più strati.


Creative Commons License
This work is licensed under a Creative Commons License