Appendice I - La fine del
mondo in un biscotto
La data di scadenza di Google è il 17
gennaio 2038. Questa data è interessante perché è giusto due giorni prima della
fine del mondo. Il 19 gennaio 2038 è una data 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, etc). 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 32bits
infatti ci stanno appena 136 anni.
Quando Ken Thompson, quasi per gioco,
inventò lo Unix, mai avrebbe immaginato di rivoluzionare a tal punto l’informatica
e soprattutto mai avrebbe pensato che una serie 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 dal 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 protoccoli Unix) e dei
principali server del globo (che utilizzano sistemi operativi derivati da
Univx). 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.
La data di scadenza di Google è quindi la
data massima impostabile in un cookie comportando che il browser dei nostri sistemi operativi, non rimuoverà
mai quel cookie e le
informazioni in esso salvate. Per un approfondimento del problema delle date,
si vedano:
- http://www.2038bug.com/index.html
- http://www.iee.org/Policy/Areas/SCS/problemdates.cfm
- http://en.wikipedia.org/wiki/Unix_epoch~~