Millenium Bug 2038: intera infrastruttura informatica mondiale in pericolo

A cura di Giulio Montanaro.

31 dicembre 1999 e il 1° gennaio 2000: due date da ricordare, soprattutto per gli ingegneri e gli informatici di tutto il mondo che in quel periodo, prima del pranzo di natale, si trovarono a fronteggiare un pericolosissimo problema: in quei giorni infatti, senza il loro intervento, l’intera infrastruttura informatica mondiale sarebbe caduta in tilt, cosa che per fortuna non è accaduta. Parliamo del Millenium Bug.

Il cosiddetto baco del millennium, accompagnava tutti i computer prodotti tra 1960 e il 1980: il conteggio degli anni avveniva, infatti, tenendo conto solamente delle ultime due cifre (1997 -> 97). Un trucco utile per non aggravare l’allora limitatissima potenza di calcolo del computer, ma destinato a funzionare fino al 1999.

La risoluzione di questi problemi costò oltre 300 miliardi di dollari agli Stati Uniti d’America e 7 milioni delle vecchie lire all’Italia.

Ma quello che accadde due decenni fa può sembrare una sciocchezza se guardiamo al prossimo futuro. Allora i sistemi informatici non erano così diffusi a livello mondiale come adesso, e ogni anno continuano ad aumentare. La vera “apocalisse informatica” è, infatti, attesa per il 19 gennaio 2038, il nuovo Millenium Bug mondiale.

Le cause del Millenium Bug

Il fenomeno, come detto, prende il nome di Millennium Bug ed è univocamente legato all’architettura di un elaboratore. In questo nuovo caso si parla di sistemi a 32 bit, dove il numero massimo rappresentabile è 2.147.483.647 secondi in termini di tempo.

I più comuni sistemi a 32 bit segnano il tempo a partire dal 1° gennaio 1970, ciò significa che sono in grado di calcolare il tempo fino alle 03:14:07 del 19 gennaio 2038, dopodiché overflow.

[bquote by=”Mikko Hypponen” other=”CRO di F-Secure”]Le banche potrebbero andare in tilt e non essere in grado di eseguire transazioni, l’allarme di casa potrebbe impazzire, i sistemi GPS potrebbero smettere di funzionare[/bquote]

In particolare, nei sistemi Unix, la data viene calcolata come “differenza” o “offset” di secondi: oggi, 04/01/2020 è distante un tot di secondi dal 01/01/1970. Dato che i 32 bit che vengono utilizzati per rappresentare la differenza di secondi sono letti in complemento a due, riempiti gli ultimi 31 bit, un secondo in più causerebbe un overflow portando ad avere il primo bit (MSB) a 1 che significa numero negativo. Ecco quindi che i PC crederanno di essere nel dicembre 1901!

Simulazione del nuovo Millenium Bug

Un esempio pratico: il video di Gangnam Style

Un esempio pratico del problema giusto per rendere l’idea è correlato alle visualizzazioni legato il video Gangnam Style e il “contatore” delle views che, dopo aver superato il massimo, ovvero 2^31 views, ha iniziato a glitchare a causa di un ovvio Bit Overflow.

Youtube ha subito corretto il problema aggiornando i suoi sistemi a 64 bit in modo tale che il massimo calcolabile e/o rappresentabile sia 9.223.372.036.854.775.807 che tenendo contro della densità planetaria è impossibile.

La stessa soluzione verrà adottata da tutti per ovviare a questo nuovo Millenium Bug, aggiornare i propri sistemi ad architetture a 64 bit.

Mancano ancora molti anni, non sarà molto difficile quindi aggiornare gli attuali sistemi ancora basati sulla vecchia architettura, contando che sono già adesso obsoleti. L’unico problema sarà aggiornare i dispositivi embedded, come sistemi di allarme casalinghi, ip cam e via discorrendo, che sono pensati proprio per durare anni senza aggiornamenti hardware ma solo software.