Non sò se è vero, ma è terrificante...


  Autori   Messaggio
« indietro    |   Pagine (1) 2   di   [2]
Divitiae

Terre Esterne Cittadino libero Nessuno

26-11-2008 23:00
Bug dell'anno 2038


Il Bug dell'anno 2038 è un noto bug informatico che potrebbe avere ripercussioni su alcuni software nell'anno 2038.

Il problema riguarda programmi che usano la rappresentazione POSIX per calcolare il tempo: questa calcola la data del sistema a partire dal numero di secondi a partire dal 1ยบ gennaio 1970 (ignorando i secondi intercalare). Questo tipo di sistema è lo standard per i sistemi Unix, e colpisce anche software per altri sistemi operativi che siano stati sviluppati in C. Sulla maggior parte dei sistemi a 32 bit il valore del dato time_t usato per questo calcolo è un numero intero a 32 bit di tipo signed. Usando questo sistema, la data più avanzata rappresentabile a partire dal 1/1/1970 sono le 03:14:07 di martedì 19 gennaio 2038. Dopo questo momento, il contatore supererebbe il valore massimo, e verrebbe considerato come un numero negativo. I computer leggeranno la data non come 2038 ma come 1901 (precisamente, le 20:45:52 di venerdì 13 dicembre 1901), causando errori di calcolo<1>. "Year 2038" è chiamato anche "Y2038", "Y2K38", o "Y2.038K" nel linguaggio specialistico


Problemi noti
Nel maggio 2006 AOLserver ha subito un primo problema dovuto a questo bug. Un software che usava una data pari a un miliardo di secondi nel futuro per classificare le richieste ad un database come "senza scadenza". Alle 21:27:28 del 12 maggio 2006 (un miliardo di secondi prima della data fatidica del 19 gennaio 2038) il sistema di calcolo della data superò il limite critico e causò un crash del sistema<2><3>.

Soluzioni
Risolvere il problema sui processori/sistemi operativi esistenti non è semplice.

Cambiare il valore di time_t per usare un sistema a 64-bit renderebbe il sistema incompatibile con software, sistemi di memorizzazione e tutti gli strumenti che usano una rappresentazione binaria del tempo. Cambiare time_t in un intero unsigned, permettendo di rimandare il problema al 2106, causerebbe comunque problemi a molti programmi.

Molti sistemi operativi per sistemi a 64-bit usano già dei numeri interi a 64-bit per il time_t. Il passaggio a questo tipo di architetture è in corso, e ci si aspetta che sia completo prima del 2038. Tuttavia, ancora oggi esistono centinaia di milioni di sistemi a 32 bit sul mercato, di cui molti in sistemi integrati, e non è affatto certo che vengano rimpiazzati prima del 2038.

Nonostante l'attuale trend di aggiornamento dei computer ogni 18-24 mesi, i computer integrati possono lavorare senza interruzioni per tutta la vita del sistema che controllano. L'uso di time_t a 32 bit è anche stato inserito in vari formati di file, cosa che comporta la persistenza del problema anche oltre la vita delle macchine stesse.

Usare un valore di tipo signed a 64-bit sposterebbe l'emergere del problema in avanti nel tempo di circa 290 miliardi di anni, spostando la data addirittura al di là della previsione di vita del sistema solare.

Sono state avanzate anche una serie di proposte alternative, alcune delle quali in uso, per sfruttare questo spostamento eccessivo della data massima calcolabile: tra queste, includere nel calcolo delle ore i millisecondi o i microsecondi, abbreviando la vita utile delle macchine a soli, si fa per dire, 300.000 anni



Ho preso tutto da Wikipedia quindi se volete maggiori informazioni vi dò il link dove c'è anche un esempio visivo di quello che potrebbe succedere ^_*


http://it.wikipedia.org/wiki/Bug_dell'anno_2038

 
Jadelia

Terre Esterne Cittadino libero Nessuno

27-11-2008 18:56
Risolvere il problema sui processori/sistemi operativi esistenti non è semplice.

Vero.
Ma nel 2038 i processori/sistemi operativi esistenti saranno nel cestino dei rifiuti da parecchio tempo, con la velocità con cui si muove l'informatica.

Tuttavia, ancora oggi esistono centinaia di milioni di sistemi a 32 bit sul mercato, di cui molti in sistemi integrati, e non è affatto certo che vengano rimpiazzati prima del 2038.

Ne dubito molto fortemente. La velocità con cui i vecchi macchinari diventa obsoleti è in crescita.
Scommetto che nel 2038 ci saranno delle tecnologie che attualmente non riusciamo neppure a pensare.

Dimostrazione? 30 anni fa i pc erano una cosa da ufficio, e solo in quelli più grandi.
Il cellulare era una cosa della NATO.
Il walkman era il massimo per la musica.

E oggi siamo qua a scriverci via internet su pc alla portata di tutti, e nel mentre scarichiamo la musica e la passiamo sulla pennina mp3 (inutile negare, non ci crede nessuno)


Quindi si, è vero.
Ma direi che possiamo evitare di preoccuparci :P

 
Silvestro

Terre Esterne Cittadino libero Nessuno

28-11-2008 10:00
Ma chi ci vuole arrivare, al 2038?

 
Thunder

Terre Esterne Cittadino libero Nessuno

28-11-2008 11:23
io mi fermo al 2010 >_>

 
Dayel

Terre Esterne Cittadino libero Nessuno

28-11-2008 14:10
tanto il mondo finisce il 21/12/2012...tsè chissene dei problemi più avanti tanto saremo tutti morti

 
Lionhalt

Terre Esterne Cittadino libero Nessuno

28-11-2008 14:30
Dayel ha ragione u.u Se tutto va come previsto mi toccherà morire a 22 anni, che sfiga XD

 
Divitiae

Terre Esterne Cittadino libero Nessuno

28-11-2008 15:57
Della serie " L' ottimismo è il profumo della vita ! " XD

 
Kantaros

Terre Esterne Cittadino libero Nessuno

28-11-2008 17:48
John Titor...

Voi ci credete?

 
Dayel

Terre Esterne Cittadino libero Nessuno

28-11-2008 17:51
morirò a circa 18 anni 15 gg prima del mio compleanno

 
Iridial

Terre Esterne Cittadino libero Nessuno

28-11-2008 18:29
Io morirei a 17 anni XD. Non ci tengo proprio, perciò vediamo di non portare sfiga. Io preferisco la teoria dell' asteroide nel 2017, almeno ci sono 5 anni in più XD, ma se nessuno dei due si avvera, non mi dispiace affatto, anche perchè di teorie sulla fine del mondo ce ne sono a bizzeffe. XD

 
Kantaros

Terre Esterne Cittadino libero Nessuno

28-11-2008 19:17
Tanto il 21 Dicembre del 2012 la Russia ci Bombarda tutti con le atomiche.

State Shalla :p

 
(1) 2   di   [2]