Efecto 2038

Por el 27 de junio de 2008

en: Sin categoría

¿Os acordais del efecto 2000?, este tipo de efectos son producidos por errores de software o hardware que están relacionados con el almacenamiento de fechas.

En el llamado “Efecto 2038″ podría fallar una gran cantidad de software, este problema afecta a todos aquellos programas que utilizan el Unix Time Stamp que como ya muchos sabreis es el es el número de segundos transcurridos desde las 0:00:00 del 1 de enero de 1970 GMT.

Pues en máquinas de 32 bits, como son la gran mayoría de máquinas que se utilizan en estos momentos, el 19 de enero de 2038 a las 03:14:07 se dará una curiosa circunstancia y es que se llegará al tope de fecha posible para almacenar con este siste y un segundo despues “03:14:08″ se desbordaría la memoria volviendo probablemente al 1 de enero de 1970 a las 00:00:00.

La explicación es la siguiente, los sitemas de 32 bits utilizan un entero de 32 bits con signo para para poder representar una rango de números entre -2.147.483.648 y 2.147.483.647 y por lo tanto como hemos dicho anteriormente el último segundo representable en este formato es el “19 de enero de 2038 a las 03:14:07″.

Los menos alarmistas pensarán que para esas fechas se habrán actualizado la gran mayoría de los aparatos y habrá soluciones para evitar este “efecto”, sin embargo algunos más alarmistas pueden pensar que aún dentro de 30 años habrá algunos aparatos electrónicos (relojes, despertadores, móviles) que pueden estar basados en el formato timestamp y que por lo tanto no funcionarían correctamente a partir de enero de 2038.

Ejemplo del “efecto 2038″ en Debian

Tue Jan 19 03:14:01 2038
Tue Jan 19 03:14:02 2038
Tue Jan 19 03:14:03 2038
Tue Jan 19 03:14:04 2038
Tue Jan 19 03:14:05 2038
Tue Jan 19 03:14:06 2038
Tue Jan 19 03:14:07 2038
Fri Dec 13 20:45:52 1901
Fri Dec 13 20:45:52 1901
Fri Dec 13 20:45:52 1901


Bastante ilustrativo este Gif que encuentro en la Wikipedia:

efecto 2038


Lo pero viene al comprobar que este sistema es un estándar en algunos de los sistemas más importantes de hoy en día: UNIX, C, PHP, SQL, Servidores IRC…, por último decir que con la arquitectura de 64 bits soluciona totalmente el problema que no volvería a reproducirse porque usar un entero de 64 bits retrasaría la fecha del problema unos 290 mil millones de años.

Por lo tanto creo que visto esto la pregunta que nos debemos de hacer es: ¿Cuantas máquinas de 32 bits funcionarán dentro de 30 años?

  • Entradas relacionadas:
  • No hay coincidencias

Dejar un comentario