De acuerdo a www.y2k38.info, todos los sitemas Unix/Linux 32bit, en sus actuales estados, llegarán a su fín el 19 de Enero de 2038 (Y2K38). Esto es debído al hecho de que los sistemas *nix llevan un registro del tiempo en un entero de 4 bytes que corresponde al número de segundos después del 1 de Enero de 1970. El máximo valor de un entero de 4 bytes es 2,146,483,547 el cual es equivalente al 19 de Enero de 2038.
menéame
"El máximo valor de un entero de 4 bytes es 2,146,483,547"
El valor máximo de un entero CON SIGNO de 32 bits es 2,147,483,647. (2^31 - 1)
De todas maneras no me acabo de creer lo que dice la web: o estoy muy equivocado, o las distros actuales almacenan la fecha en 64 bits desde hace bastantes años.
Los problemas se darán con máquinas antiguas o con chips empotrados (a los que es muy difícil actualizar el firmware).
Peor aún, muchos programas no utilizan el time_t para almacenar la fecha y lo hacen con int directamente.
#5 ahora en serio, si de aquí al 2038 no hemos pasado a 64 bits tenemos un problema como civilización xD
Tambien hay que migrar a IPv6, a HDTV... no se yo si dará tiempo a tanto cambio.
Pero para esa fecha, no creo que esté yo por aquí :-P
De todas maneras hay que destacar que este no es un problema de Linux, sino del hardware. Los procesadores de 32 bits no pueden incrementar de forma atómica un número mayor de 32 bits, todo lo que se haga para solucionar este problema por software será una chapuza.
meneame.net/story/19-enero-2038-03-14-07-fin-mundo-otra-vez
meneame.net/story/el-efecto-2038
meneame.net/story/19-01-2007-31-anos-efecto-2038
Bueno, me preocuparé en 2018... si para entonces todavía no hemos vuelto a la edad de piedra después de que se acabe el petróleo.
¡¡Rápido, tenemos que quitarle el signo a un int en todos los sitemas antes de que pasen 30 años!!
Esto es un síndrome holliwodiense, sin duda.
Sería irónico que después de tanto lío los únicos ordenadores que sobreviviesen fuesen los basados en windows, o incluso en Atari, spectrums y de más.
Ya hemos tenido la dosis catastrofista del día en Meneame. Cual será la siguiente? Petroleo? Meteorito? Clima? Enfermedades? Acebes presidente? Se aceptan apuestas
(todas las opciones me dan repelús por igual)
PD: me pregunto q pasara con las hojas viejas de excel en ese entonces?
Creo que tienes un pequeño lío con esto del cambio a digital... pero bueno tampoco tengo ganas de aclarate nada ahora. Lee si te interesa el asunto. Me voy a dormir que ya es hora y creo que con los comentarios que llevo habré recaudado suficientes negativos para donarlos esta navidad.
2^32=4294967296
Es 4.294.967.296 y no es 2.146.483.547 como pone en la noticia.
4294967296 segundos = 71582788,2666 minutos = 1193046,47111 horas = 49710,269629629 dias = 136,1925195 años
1970+136 = 2106
Según mis cálculos fallaría en 2016 y no 2038. O en algo me equivoco o hay algún dato mal en la noticia.
El tipo de datos time_t que es el que está en "crisis". Este tipo de datos es un typedef de otro tipo de datos entero, esto depende de la biblioteca que se use puede ser uno u otro, con signo y sin signo. Y además el tipo de datos puede tener un tamaño diferente e incluso alineación de bits distinto según la arquitectura.
En C se puede llegar a tener bastante control sobre estas cosas, alienaciones de bits, tamaños de tipos de datos, etc...
El caso es que la peor de las combinaciones sería una definición de time_t como int con signo representado por 4 bytes. Como cometas 4 bytes son 32 bits, pero en el caso de que sea un tipo de datos con signo (no unsigned int) el bit más significativo se emplea para almacenar el signo, de este modo los mayores valores de números en valor absoluto realmente estarían representando cantidades enteras negativas.