Home Generale Y2038 Bug
Sabato 05 Gennaio 2008 00:07

Y2038 Bug

Scritto da  Gianni Feduzi
Valuta questo articolo
(0 voti)
Nel 2038 avremo di nuovo un bug nei sistemi informatici paragonabile al Millenium bug.
Lo so è presto per preoccuparci (anche se non servirà), ma è interessante capire come accade. (almeno proverò a spiegare quello che ho capito)
Il bug in questione è conosciuto come Y2038 e nasce con lo Unix, noto sistema operativo nato nel 1970, con tutti gli applicativi e linguaggi di programmazioni come il C e il C++.
In C e la maggior parte dei programmi per calcolare la variabile tempo, utilizzano i secondi a partire dalla data 01/01/1970. (rappresentazione Posix)
Se voglio memorizzare la data 10/02/1982, in realtà si memorizzano in una variabile intera a 32bit con segno (integer signed) i secondi a partire dal 01/01/1970.
Quanti secondi possono essere visualizzati?
2^31 (un bit serve per il segno) = 2147483647 secondi
Questi secondi ci portano alla data 19/01/2038 alle 3:14:07 AM.
Allo scoccare del successivo secondo (vi ricordate il bit del segno?) si passa da 2147483647 a -2147483648 portando la data a Venerdì 13/12/1901 ore 20:45:52.
In pratica con un secondo in più,  il bit del segno è settato da zero ad uno e dalla data 01/01/1970 non vengono più aggiunti secondi ma tolti 2147483648.
Per gli utenti Mac la data è solo rinviata visto che hanno adottato una variabile intera unsigned (senza segno) sfruttando il 32° bit.
Questo porterà per gli utenti MacOS alla data 06/02/2040 alle ore 6:28:15 AM.
Y2038 non comporterà nessun problema visto che  con l'avvento dei processori a 64 bit, si produrra software a 64 bit con l'adozione della variabile tempo da 32 a 64 bit.
Certo si poteva fin dall'inizio pensare ad una variabile intera a 64bit, ma negli anni 70 risparmiare memoria e sfruttare le poche risorse disponibili era una necessità.

 

Altre info le potete trovare al seguente indirizzo Y2038

 

Ultima modifica Sabato 15 Novembre 2008 20:02
Gianni Feduzi

Gianni Feduzi

Mi chiamo Gianni Feduzi e sono un tecnico della RAI.

Mi piace la tecnologia e l'informatica.

Ho realizzato questo sito in Joomla partendo da un idea della collega Alessandra Cerrina di condividere esperienze ed informazioni senza fini di lucro.

Chi volesse contattarmi segnalo la mia area contatti.

Sito web: www.areatecnicarai.it
Altro in questa categoria: « Monodevelop 1.0

Lascia un commento

I campi con l'asterisco (*) sono obligatori.
E' permesso l'uso di codice HTML.