Efecto 2038

Leo en el foro una noticia curiosa sacada de Barrapunto, aunque ya iene bastante tiempo. Se trata del efecto 2038:

Os acordáis del efecto 2000 (Y2K)? Pues el siguiente podría ser el efecto 2038 (Y2K38)… Me explico: Unix Time Stamp (también conocido como Unix Epoch) 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, usando complemento a dos, como usamos un bit para el signo, nos quedan 31 bits para la magnitud, y podemos trabajar con números entre el rango [-2^31+1, 2^31-1]. Pues bien, 2^31-1 segundos después del 1 de enero de 1970 a las 0:00:00 GMT, es el 19 de enero de 2038 a las 03:14:07 (que por cierto cae en martes) sería la fecha máxima que podríamos representar y, un segundo después, 03:14:08, se produciría un desbordamiento (”overflow”), lo que podría producir errores en el software que corra sobre dicha máquina.

Y dado que “timestamp” es un formato de representación de fecha/hora muy frecuente no solo en sistemas Unix, sino también en el lenguajes como C y PHP , en SQL es un tipo de datos, servidores IRC te devuelven la fecha en la que fue modificado por ultima vez el topic de un canal, y supongo que tendrá más aplicaciones.

Estaréis pensando que para el 2038 todos tendremos procesadores de 64 bits por lo menos, pero nuestros móviles (que también podrían usar timestamp) ¿también tendrán más de 32 bits? Dentro de unos años podrán aparecer aparatos electrónicos (relojes, despertadores, vídeos…) que puedan estar basados en timestamp y que dejarían de funcionar a partir de enero del 2038. ¿Debemos preocuparnos? ¿Nos afectará? ¿Se inventará otro formato para representar fechas? De todos modos aun quedan 34 largos años… Podéis ver un pequeño script en perl que chequea el problema en distintos sistemas operativos.

El script imprime la hora en calendario gregoriano justo unos segundos antes y después de la fecha crítica… Mi máquina –Debian con kernel Linux 2.6.7– tiene el bug Y2K38… :-(

miquel@kusanagi:~/software$ ./2038.pl
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
miquel@kusanagi:~/software$

Curioso, a ver si duramos pa esa fecha. Más info aquí.


Responder

Los campos marcados con asterisco * son obligatorios


(Opcional)

Comentario
Vista previa