19 gennaio 2038: La fine del mondo digitale?

Data 6/10/2009 20:39:53 | Argomento: Articoli


Ho letto qualche giorno fa il libro di Ippolita "The dark side of Google" (che potete scaricare gratuitamente e legalmente da qui: www.ippolita.net/google [Il libro è rilasciato sotto licenza Creative Commons 2.0 by-nc-sa]).

Una cosa che mi ha colpito particolarmente è stato l'appendice 1 (pagina 78 del libro), il quale lo riporto in versione quasi integrale:

"Il 19 gennaio 2038 è una data essenziale per tutto il mondo POSIX, che comprende tutti i sistemi operativi derivati dal sistema UNIX (GNU/Linux, BSD, Solaris, ecc...) e tutti i protocolli di rete UNIX style (http, ftp, ecc...). Sui sistemi POSIX il tempo è regolato per ragioni storiche dal numero di secondi intercorsi dal primo gennaio 1970.
L'unità di misura per questo numero è un 'intero segnato', valore che nell'informatica occupa in memoria 32 bits.
Se un programmatore crea una variabile di tipologia intero segnato per memorizzare un valore numerico, questo può essere come minimo -2147483648 e come massimo 2147483647. Un numero molto grande, ma che diventa un valore piccolissimo se lo trasformiamo in secondi. In 32 bits infatti ci stanno appena 136 anni.
Quando Ken Thompson, quasi per gioco, inventò Unix, mai avrebbe immaginato di rivoluzionare a tal punto l'informatica e soprattutto mai avrebbe pensato che una serie di sue scelte (il filesystem, l'ora, la codifica caratteri, le chiamate a funzione, il linguaggio di programmazione, ecc...) sarebbero diventate legge per ogni programmatore del globo da lì a brevissimo. Thompson decise nel 1972 che la data 0 (zero) del suo sistema operativo sarebbe stata il 1 gennaio 1970.

2147483647 secondi dopo il 1 gennaio 1970, sarà esattamente il 19 gennaio 2038 alle 3:14 di mattina, ultimo secondo del mondo Unix, di internet (che funziona grazie a protocolli Unix) e dei principali server del globo (che utilizzano sistemi operativi derivati da Unix). Dopo quel secondo saremo proiettati nel 13 dicembre 1901 alle 20:45. Sicuramente questo sarà un problema da gestire da qui ai prossimi anni e richiederà un cambio epocale nella gestione del tempo e di tutto il resto nei sistemi Unix. Sicuramente un problema un po' più serio e fondato del tanto decantato "Millennium bug" nel passaggio dal 1999 al 2000."


Qual'è la soluzione? Bhè... semplicemente... da qui ad un paio di anni i computer saranno tutti a 64 bit, e il problema non si presenterà! :P



Dopo aver letto tutto ciò ho finalmente capito perchè quando uso determinate funzioni 'temporali', queste iniziano a contare dal 1 gennaio 1970!



Ricordo infine che il libro è distribuito sotto licenza Creative Commons 2.0 (Attribuzione, Non Commerciale, Condividi allo stesso modo). Maggiori dettagli sulla licenza li potete trovare nelle ultime pagine del libro.



This article comes from www.NonSoloGuide.altervista.org
http://www.nonsologuide.altervista.org

Il link di questa guida e':
http://www.nonsologuide.altervista.org/modules/news/article.php?storyid=21