rmbit - La bitácora personal de Ricardo Martín
La bitácora personal de Ricardo Martín
Comentando cosas desde 2004
10 de abril de 2008

El «efecto 2038»

¡Échense a temblar! ¿Alguien se acuerda de aquel famoso efecto 2000? Ya casi nadie. Ni siquiera yo, que en los últimos meses de 1999 me dedicaba a esto de la informática, he vuelto a recordar aquel timo que sirvió para que algunas empresas se forraran. En aquella ocasión no llegué a conocer ni un solo caso de fallo por culpa de esa anomalía. Y tampoco se cayeron los aviones, ni se colapsaron las redes informáticas, ni se fue la luz ni explotaron las centrales nucleares. Nada de nada. El tránsito entre el 31 de diciembre y el 1 de enero se produjo sin ningún incidente.

Pero los agoreros de la tecnología ya tienen pensado otro «efecto». Esta vez la fecha será el 2038 (queda mucho todavía), y no el último día del año, sino el 19 de enero a las 3 horas 14 minutos y 7 segundos. ¿Y por qué esa fecha y hora concretas? Antes que nada hay que explicar algunos asuntos técnicos. Los lenguajes de programación con los que están construidas las aplicaciones y sistemas operativos que utilizamos tienen tipos de datos. Estos tipos sirven para almacenar información de uso interno para el programa (por ejemplo un contador que cuente el tiempo transcurrido, textos introducidos por el usuario o datos de control para el flujo interno de la aplicación entre otros). Pues bien, existe un tipo de datos donde se almacenan los segundos transcurridos desde el 1 de enero de 1970 a las 00:00. Es una forma de calcular la fecha actual en POSIX. Este sistema se da exclusivamente en UNIX y sus derivados.

La cuestión es que ese tipo de datos donde se almacenan los segundos tiene 32 bits (231 combinaciones, porque el bit 32 es el de signo -/+). Es decir, admite un rango de valores entre -2.147.483.648 y 2.147.483.647. El 19 de enero de 2038, el contador de los segundos llegará precisamente a 2.147.483.647. El siguiente segundo nadie puede prever lo que ocurrirá, pero es seguro que el tipo de datos se desbordará y dará un error. En el mejor de los casos, y si la aplicación está bien programada, la cuenta de segundos volverá a -2.147.483.648, lo que en cristiano sería el 1 de enero de 1970. Eso al menos son los resultados que se han obtenido en las pruebas que se han realizado. Y en el peor pues… mejor que no pensemos, pero puede producirse una hecatombe a niveles planetarios.

Aunque esto hoy puede alarmarnos, es posible que para entonces todos los sistemas informáticos hayan sido ya renovados y el sistema operativo y las aplicaciones estén preparadas contra el «efecto 2038».



rmbit está bajo una licencia de Creative Commons.
Plantilla de diseño propio en constante evolución.
Página servida en 0,100 segundos.
Gestionado con WordPress