Noticias y Alertas
Header

El Efecto 2038 (migra a 64bits)

febrero 13th, 2014 | Posted by kwelladm in Noticias

Dudo mucho que en el año 2038 nos enfrentemos a un apocalipsis  como  el que algunos anunciaban con la llegada del año 2000 aunque, en cierta   medida, estamos hablando de un problema parecido.
En la norma IEEE 1003,  también conocido como POSIX,  se definen una serie de estándares que normalizan  una serie de  interfaces para sistemas operativos y, de esta forma, poder crear   aplicaciones multiplataforma. Entre los estándares que define POSIX  encontramos  la medida de tiempos de los sistemas de 32 bits; es decir,  el reloj que usan  estos sistemas.
El reloj que tienen muchos computadores no es más que un  contador de  segundos que se va incrementando con cada segundo que pasa. La  gracia de  este sistema es que se toma una fecha como referencia y, cuando se   quiere saber la hora, se mira el contador de segundos y se hace la  traslación a  formato de fecha tradicional (día, mes, año, hora, minutos y  segundos).  Concretemente, la fecha de referencia es el 1 de enero de 1970 y,  por tanto, el tiempo se mide como el número de segundos que han pasado desde  dicha referencia.
En un sistema de 32 bits, la variable del tiempo se  codifica como un  entero con signo y, por tanto, se deja un bit para almacenar  el signo y  los 31 bits restantes para codificar los segundos. Si hacemos el  cálculo  de 2 elevado a 31 obtenemos como resultado 2.147.483.648 segundos que   es un equivalente a unos 68 años.

Efecto 2038

Dicho de otra forma, cuando lleguen las 03:14:07 UTC del 19 de enero de 2038,  el contador de segundos llegará al  máximo número que puede almacenar en  positivo y, si se sigue incrementando, se  saldrá del rango de los  números positivos y, por desbordamiento, entrará en el  intervalo de los  números negativos. Tras llegar al número 2.147.483.647, el  contador se  trasladará, en el intervalo de un segundo, al -2.147.483.648 y la  fecha  del sistema pasará al 13 de diciembre de 1901.
Este gran  salto al pasado, evidentemente, no es algo simple y es un bug  que se  mira con cierta atención porque, al igual que ocurría en 1999,  nadie sabe a  ciencia cierta los efectos que podría tener en los sistemas  desplegados.
¿Son los 64 bits una solución al problema?  Obviamente, migrar hacia  sistemas de 64 bits elimina el problema pero  existen muchos sistemas antiguos  (por ejemplo basados en COBOL) que sí  requerirán soluciones (o  migraciones).
Si alguien tiene curiosidad con este tema, quizás le  interese probar la herramienta de conversión que ofrecen en Epoch Converter.

You can follow any responses to this entry through the RSS 2.0 You can leave a response, or trackback.

Deja un comentario