mercoledì 24 agosto 2016

1998, 1999… 2000? No, 1900

Il primo vero bug trovato in un computer:
una falena incastrata nei circuiti.
Storia di un insetto informatico affezionato al XX secolo: il Millennium Bug.

È stato così per tutte le mie invenzioni. Il primo passo è un’intuizione, e viene come una fiammata, poi le difficoltà crescono… ed è allora che quei “bachi”, così sono chiamati i piccoli sbagli e le difficoltà, si manifestano… Il 9 settembre del 1947 questa difficoltà colse la matematica, informatica e ammiraglio statunitense Grace Murray Hopper: tra i circuiti di un computer Mark II si era incastrata una falena. Un insetto, un baco. In inglese, un bug. Il tenente incollò il lepidottero sul registro del succitato elaboratore, tutt’ora conservato presso lo Smithsonian National Museum of American History. Ma nell’odierno linguaggio informatico un bug non è altro che un errore o un guasto di un software che porta al suo malfunzionamento, manifestato da un risultato errato, inatteso, imprevisto… generalmente per via di un codice sorgente difettoso.


Ma esistono insetti più grandi delle falene. Infatti verso la fine del secolo scorso alcuni sistemi usufruivano di una rappresentazione sintetica delle date, ovvero individuavano l’anno esclusivamente mediante le ultime due cifre. Ma allora che giorno avrebbe seguito il 21 dicembre del 1999? Il primo gennaio… del 1900.

Si temevano gravi conseguenze per economia e salute: sostanziosi investimenti permisero la rimozione delle cause del bug presso centrali elettriche o nucleari, istituti bancari o reti di telecomunicazione, che avrebbero rischiato malfunzionamenti. Per esempio le strutture aeroportuali attuarono il cosiddetto piano Contingency Y2K, alla cui simulazione presero parte Alitalia, Airlines, Swissair, Singapore, Air France, Cathay Pacific e British Airways.

L’organizzazione britannica di standardizzazione British Standards Institution si occupò della certificazione di conformità all’anno 2000. Una norma impiegata in fase di revisione dei sistemi, includeva le seguenti regole: nessun valore di data corrente causerà alcuna interruzione di funzionamento; le funzionalità basate sulla data dovranno avere un comportamento coerente con date precedenti, in corso o successive all’anno 2000; in tutte le interfacce e nei dati memorizzati, il secolo di tutte le date deve essere specificato esplicitamente oppure mediante algoritmi non ambigui o regole deducibili; l’anno 2000 deve essere considerato un anno bisestile.

Questo problema riguardò soltanto alcuni sistemi informatici: è il caso, per esempio, della versione 1.1 del Windows 3.x, ambiente operativo grafico prodotto dalla Microsoft tra il 1989 ed il 2000. Tracce dell’aggiornamento diffuso per risolvere i problemi del Millennium Bug è possibile rintracciarle sul sito della Microsof e anche altri accorgimenti che hanno permesso di estirpare una potenziale catastrofe sono sparsi nella rete.

Perciò non fu registrato nessun evento significativo e vissero tutti felici e coerenti, almeno fino all’anno 2038.