sábado, 18 de enero de 2014

19 de enero (2038) el día que tu sistema operativo colapsará (Y2K38)

El 19 de enero de 2038, será la fecha cuando ocurra “el problema del año 2038”, conocido también por el numerónimo “Y2K38”.

Este problema podría causar que una parte del software falle en ese año. 

El problema afecta a los programas que usen la representación del tiempo basada en el sistema POSIX, que se basa en contar el número de segundos transcurridos desde el 01 de enero de 1970 a las 00:00:00.

Esta representación es un estándar de facto en los sistemas tipo Unix y también en los programas escritos para muchos otros sistemas operativos debido al gran alcance del lenguaje de programación C.

En la mayoría de sistemas de 32 bits, el tipo de dato time_t usado para guardar el contador de segundos es un entero de 32 bits con signo, es decir, que puede representar un rango de números entre -2.147.483.648 y 2.147.483.647 (-231 y 231-1; 1 bit para el signo, y 31 para el valor absoluto), por lo que el último segundo representable con este formato será a las 03:14:07 UTC del 19 de enero de 2038, cuando el contador llegue a 2.147.483.647.

Un segundo después, el contador se desbordará y saltará al valor -2.147.483.648, que causará el fallo de programas que interpretarán el tiempo como que están en 1901 (dependiendo de la implementación), en vez de en 2038.

A su vez, esto causaría cálculo y procesamiento incorrecto y causaría un problema mundial.

Este problema incluye por ejemplo a los dispositivos Android (al menos algunas versiones) los cuales se bloquearán y no podrán ser reiniciados cuando lleguen a esa fecha.

Para comprobar esto,  se puede ir a la configuración de fecha y hora en el dispositivo y al tratar de cambiar la fecha al año 2038; se encontrará que solo le permite cambiar hasta el año 2036 o 2037. Sorpresa!


Más efemérides sobre el tema en:


Fuente:
disastercountdown.com
http://www.disastercountdown.com/event/y2k38/