Blog

April 12, 2007 20:38 - 3 comments

I tizi che hanno inventato i computer sono sicuramente molto intelligenti, nessuno potrebbe dire il contrario. E lo saranno anche i programmatori dei sistemi operativi, no?
Bene, allora qualcuno mi spiega il motivo per cui questi simpaticissimi burloni hanno pensato di far smettere di girare il mondo esattamente il 19 aprile del 2038 (alle 3:14:07 UTC)? o.O
Il fatto è che le date vengono rappresentate, con il sistema POSIX, tramite un signed int a 32 bit, che indica il numero di secondi passati dal 1° gennaio 1970. La prima cosa che viene da pensare ad un programmatore è “uhm, quanti secondi ci stanno in 31 bit?”… e invece no! “Chissenefrega, ce ne stanno tantissimi!” Sì, talmente tanti che arrivati all’ora X il bit più significativo diventa 1, il numero diventa negativo, e la data si sposta automaticamente al 19 Gennaio 1901! O.O Immaginate il disastro!

Le spiegazioni sono 2:

1) avevano ragione i Maya (c’erano droghe potenti a quei tempi), quindi NON ci sarà un 2038, perchè secondo il loro calendario l’Età dell’Oro (cioè la nostra epoca) finirà il 21 dicembre del 2012 a causa di terribili catastrofi… ed evidentemente loro, i programmatori, sapevano tutto! (che sarebbe anche la trama dell’ultimissima puntata di X-Files, se qualcuno si ricorda :P)

oppure

2) aveva ragione John Titor, un enigmatico personaggio apparso su Internet nel 2000, dicendo di essere un soldato inviato indietro nel tempo dagli scienziati del 2036 per recuperare un vecchio IBM 5100, che sarebbe l’unica macchina capace di risolvere il bug che sconvolgerebbe il mondo (qui c’è tutta la storia).

Ehm.. tra le due mi sembra più simpatica la seconda! Vai John, io credo in te!!! ;)

Ehm.. tra le due mi sembra più simpatica la seconda! Vai John, io credo in te!!! ;)Tornando seri, mi sembra che ci sia qualcosa di DECISAMENTE mooolto strano. Voglio dire… stiamo parlando di gente abituata a risolvere problemi ben più cervellotici di una dichiarazione di variabile ed un prevedibilissimo overflow! Bohhh!

Ehm.. tra le due mi sembra più simpatica la seconda! Vai John, io credo in te!!! ;)Tornando seri, mi sembra che ci sia qualcosa di DECISAMENTE mooolto strano. Voglio dire… stiamo parlando di gente abituata a risolvere problemi ben più cervellotici di una dichiarazione di variabile ed un prevedibilissimo overflow! Bohhh!E adesso? Che si fa?
Qualcuno potrebbe dire “facile, cambiamo tutte le date e facciamole diventare a 64 bit!”. Tutte?!? Beh, non solo si dovrebbero cambiare tutti i sistemi operativi e tutti i programmi, ma anche tutti i file e tutti i filesystem del mondo! Ops, mi sa che è difficilotto! :P
“ok, allora recuperiamo 1 bit e dichiariamo le date come unsigned int, così siamo a posto fino al 2106 e poi se la sbrigano i nostri nipoti… prrr!”. Eh no! Si dovrebbe comunque riscrivere e ricompilare praticamente tutto, perchè non funzionerebbero più le differenze tra date!
E’ vero che adesso ci sono i sistemi a 64 bit, ma è anche vero che i chip a 32 bit vengono sfornati ancora in quantità enorme e non vogliono proprio saperne di sparire dalla circolazione, non solo in ambito personal computer… ad esempio ci sono i dispositivi embedded che ne fanno largo uso e oltretutto non sono aggiornabili!
Siamo sicuri che entro il 2038 ogni singolo chip presente sulla faccia della terra sarà sostituito? :S

Ehm.. tra le due mi sembra più simpatica la seconda! Vai John, io credo in te!!! ;)Tornando seri, mi sembra che ci sia qualcosa di DECISAMENTE mooolto strano. Voglio dire… stiamo parlando di gente abituata a risolvere problemi ben più cervellotici di una dichiarazione di variabile ed un prevedibilissimo overflow! Bohhh!E adesso? Che si fa?
Qualcuno potrebbe dire “facile, cambiamo tutte le date e facciamole diventare a 64 bit!”. Tutte?!? Beh, non solo si dovrebbero cambiare tutti i sistemi operativi e tutti i programmi, ma anche tutti i file e tutti i filesystem del mondo! Ops, mi sa che è difficilotto! :P
“ok, allora recuperiamo 1 bit e dichiariamo le date come unsigned int, così siamo a posto fino al 2106 e poi se la sbrigano i nostri nipoti… prrr!”. Eh no! Si dovrebbe comunque riscrivere e ricompilare praticamente tutto, perchè non funzionerebbero più le differenze tra date!
E’ vero che adesso ci sono i sistemi a 64 bit, ma è anche vero che i chip a 32 bit vengono sfornati ancora in quantità enorme e non vogliono proprio saperne di sparire dalla circolazione, non solo in ambito personal computer… ad esempio ci sono i dispositivi embedded che ne fanno largo uso e oltretutto non sono aggiornabili!
Siamo sicuri che entro il 2038 ogni singolo chip presente sulla faccia della terra sarà sostituito? :SIo direi di cominciare a fare una bella scorta di carta e penneeeeeeeee! :lol:

Ehm.. tra le due mi sembra più simpatica la seconda! Vai John, io credo in te!!! ;)Tornando seri, mi sembra che ci sia qualcosa di DECISAMENTE mooolto strano. Voglio dire… stiamo parlando di gente abituata a risolvere problemi ben più cervellotici di una dichiarazione di variabile ed un prevedibilissimo overflow! Bohhh!E adesso? Che si fa?
Qualcuno potrebbe dire “facile, cambiamo tutte le date e facciamole diventare a 64 bit!”. Tutte?!? Beh, non solo si dovrebbero cambiare tutti i sistemi operativi e tutti i programmi, ma anche tutti i file e tutti i filesystem del mondo! Ops, mi sa che è difficilotto! :P
“ok, allora recuperiamo 1 bit e dichiariamo le date come unsigned int, così siamo a posto fino al 2106 e poi se la sbrigano i nostri nipoti… prrr!”. Eh no! Si dovrebbe comunque riscrivere e ricompilare praticamente tutto, perchè non funzionerebbero più le differenze tra date!
E’ vero che adesso ci sono i sistemi a 64 bit, ma è anche vero che i chip a 32 bit vengono sfornati ancora in quantità enorme e non vogliono proprio saperne di sparire dalla circolazione, non solo in ambito personal computer… ad esempio ci sono i dispositivi embedded che ne fanno largo uso e oltretutto non sono aggiornabili!
Siamo sicuri che entro il 2038 ogni singolo chip presente sulla faccia della terra sarà sostituito? :SIo direi di cominciare a fare una bella scorta di carta e penneeeeeeeee! :lol:PS: ok, non volevo essere allarmistico… probabilmente non succederà niente… ma ste cose mi fanno viaggiare troppo con l’immaginazione! :P


  • Currently 2/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
blackout99 @ April 12, 2007 21:46

Da quanto ne so io stanno lavorando per portare la data di inizio dal 1970 al 2000 o li vicino, risolvendo così anche dei vecchi problemi legati al millennium bug.

Se così non fosse, quanti anni avrò nel 2038? Mi faccio 4 calcoli…

Bruno @ April 13, 2007 12:10

Non mi sembra una soluzione ottima, visto che adottandola bisognerebbe decidere un secondo ben preciso in cui tutti i computer del mondo dovrebbero effettuare tale aggiornamento. Qualora qualche computer non fosse aggiornato, si ritroverebbe sfasato di 30 anni rispetto agli altri!

TheKaneB @ April 15, 2007 16:51

Che bello… visto che con il millennium bug non è successo niente, adesso possiamo cominciare a farci la cacchina addosso per il 2038ennium bug.

BUWuauWUWHAUHA


probabilmente chi ha dato le direttive posix per la rappresentazione della data a 32 bit pensava che i sistemi unix non sarebbero campati più di 30 anni ;)

Name


Email


Website/Blog


Add comment