2038, ovvero l’anno dell’Unix Millennium Bug

Homer Munch

Ricordate l’anno 1999?

Specialmente negli ultimi giorni, quando oltre alle profezie catastrofiche alla Nostradamus gravava sulle nostre teste un altro ben più noto (allora) problema: il Millennium Bug!

Previsioni catastrofiche di quel che sarebbe successo ai nostri computer e di conseguenza alle nostre vite animarono quel capodanno. A causa della rappresentazione sintetica degli anni (come 08 al posto di 2008) si sarebbero dovuti verificare problemi non prevedibili con sistemi bancari, centrali elettriche e nucleari e chissà cos’altro ancora. Insomma avevamo di che divertirci…

Ingenti quantità di denaro vennero spese, utilmente o meno, per porre rimedio a questo bug nei nostri PC che avrebbe potuto sconvolgere le nostre vite… e puntualmente infatti non successe niente. O il problema era stato largamente sopravvalutato oppure le soluzioni messe in atto avevano funzionato; quale dei due fosse il motivo nulla era successo e tutto proseguì normalmente.

Era il bug del 2000, chiamato anche Y2K bug, e alcuni avevano iniziato ad attivarsi dagli anni 80 (anzi dai, 1980, andiamo sul sicuro) per informare il mondo dei rischi che si correvano. Ora che le tecnologie sono progredite ci troviamo però dinanzi ad un altro problema con la data.

Oggi, 19 gennaio 2008, mancano solo 30 anni al Y2k38 Unix bug!

Accade infatti che tutti i sistemi Unix e da questo derivati, adoperino per la rappresentazione delle date un numero intero con segno a 32 bit, che tiene traccia dei secondi trascorsi dalla Unix epoch, ovvero le 00:00:00 UTC del 01/01/1970. Da qui si inizia il conto di (2^32)/2 (diviso due perchè signed, con segno) secondi che ci porta fino al 19 gennaio 2038, giorno in cui questo numero giungerà al massimo della sua rappresentazione binaria e diventerà un numero negativo (l’immagine è messa apposta per spiegare meglio questo concetto).

Year 2038 problem

Ed è così che passando dal 31/12/2037 al 01/01/1901 si ripresenteranno i fantasmi del passato, tutti i programmi che basano il loro funzionamento sulle date ricadranno negli stessi problemi del Y2k, con l’aggravante del fatto che probabilmente tra 30 anni saranno ancor di più i settori in cui i computer avranno un ruolo fondamentale e ormai insostituibile.

Chi conosce almeno un pò che differenza passa tra 32 bit e 64 bit, signed e unsigned potrebbe dire che basterebbe cambiare la rappresentazione della data modificando da 32 bit signed a 32 bit unsigned, o ancora meglio passando ai 64 bit. Nel primo caso però il problema sarebbe solo rimandato al 2106, buono per noi, meno buono per le generazioni che ci seguiranno.

Passare ai 64 invece, nonostante la garanzia di quasi 300 miliardi di anni senza problemi (oltre la vita presunta del nostro sistema solare) è ancora molto difficile, per via delle centinaia di milioni di sistemi che bisogna preparare al passaggio da 32 a 64 bit, capace di creare innumerevoli problemi di compatibilità e forse anche di corruzione dei dati.

Il processo è in corso, anche se non si ha la certezza che venga completato entro il 2038; io, da parte mia, mi preparo a convertire la mia esistenza virtuale ai 64 bit, almeno avrò la coscienza in pace, con la lungimiranza di poter gustare almeno qualcuno di quei 300 milioni di anni.

2 Risposte a “2038, ovvero l’anno dell’Unix Millennium Bug”

  1. Ci sarebbe poi una terza soluzione che consisterebbe nel buttare tutto in caciara

  2. nonostante non di capisca nulla di ste cose, lo trovò un argomento affascinante.

I commenti sono chiusi.