Programmazione.it v6.4
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicità Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Forum
Disastri informatici, bug dell'anno 2038?
Scritto da Alessandro Vinciarelli il 29-09-2008 ore 08:49
Intel Cluster Studio XE
Continuiamo questa piccola serie di articoli destinata ai disastri informatici descrivendo un caso analogo, per possibili conseguenze, al millenium bug, ma che anche per l'esperienza avuta con il Y2K, non desta grandi preoccupazioni.

Nello specifico si tratta di un'altra data critica, quella del 2038 e che questa volta riguarda quei programmi che utilizzano per l'ora e la data la rappresentazione POSIX. Semplificando, in questo caso infatti la data viene calcolata dal numero di secondi trascorsi dal primo gennaio 1970. Questo è lo standard per i sistemi UNIX, ma il problema potrebbe diventare critico anche su altri sistemi operativi sviluppati in C.

Dal punto di vista operativo la failure potrebbe essere determinata dal fatto che il valore dell'informazione contenuta in time_t, utilizzato per il calcolo di cui sopra, è un numero intero signed a 32 bit. Pertanto, andando avanti nel tempo, il momento più lontano rappresentabile rispetto a 1/1/1970 è il martedì 19 gennaio 2038 ed esattamente alle ore 03:14 e sette secondi.

Da questo momento in poi la variabile sarebbe interpretata come un numero negativo, trasformando il significato corretto dell'anno 2038 nell'errato valore 1901. In particolare si salterebbe indietro fino alle ore 20:45:52 di venerdì 13 dicembre 1901. Tuttavia questo problema, che prende differenti nomi a seconda delle preferenze di chi ne espone il significato (ad esempio Year 2038, Y2038, Y2K38 o Y2.038K), è considerato non catastrofico, soprattutto in funzione dell'evoluzione tecnologica.

Nonostante alcuni problemi già emersi e taluni pareri contrastanti, molti studiosi e analisti sono infatti concordi sul fatto che entro il 2038 sarà già completato il passaggio verso sistemi a 64-bit e verso l'adozione di sistemi di rappresentazione di numeri interi a 64-bit, anche per il time_t.

Curiose le conseguenze di questa migrazione verso i 64-bit, che di fatto traslerebbe il problema di 290 miliardi di anni, ovvero oltre la più rosea previsione di vita dell'intero sistema solare. Per questo alcuni studiosi hanno avanzato delle ipotesi di utilizzo della parte in eccedenza rispetto alla memorizzazione dell'ora per come la si intende attualmente, ad esempio potrebbero essere calcolati i microsecondi.
Precedente: Come e perché Wall Street ha mentito ai computer
Successiva: Altri 20 errori informatici da evitare
Intervento di Cesare Di Mauro a.k.a. cdimauro del 29-09-2008 ore 09:22, San gregorio di catania (CT)
Marchese
Marchese
(904 interventi)
Iscritto il 22-05-2008
Fra 290 miliardi di anni dubito pure che esista l'universo. Per lo meno il nostro. :-P
Intervento di Maurizio Zio a.k.a. ziomaul del 10-10-2008 ore 02:57
Cavaliere
Cavaliere

(122 interventi)
Iscritto il 22-02-2007
Io non sarei cosi' sicuro che il problema Y2K38 sia solo dei sistemi Posix, anzi molti sistemi operativi hanno implementato per compatibilità nei meandri del kernel. Windows in questa ottica si è ripulito ?

Ciao
Intervento di Cesare Di Mauro a.k.a. cdimauro del 10-10-2008 ore 09:19, San gregorio di catania (CT)
Marchese
Marchese
(904 interventi)
Iscritto il 22-05-2008
http://msdn.microsoft.com/en-us/library/ms724950(VS.85).aspx
  1. wYear
  2.  
  3. The year. The valid values for this member are 1601 through 30827.
Fino al 30827 Windows è a posto. :D
Copyright Programmazione.it™ 1999-2013. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.319 secondi.