“Efecto 2038″, ¿Se repetirá la historia del “Efecto 2000″?

Publicado el 11 marzo 2014 por Geeksroom @GeeksRoom

Si rebasas las dos décadas de vida seguramente recordarás el alboroto que se armó a finales de 1999, cuando se decía que el llamado “Efecto 2000” o “Y2K” iba a tener efectos devastadores en los sistemas de comunicaciones y transportes a nivel mundial. Todo quedó en un simple susto pero a decir verdad no muchos podían asegurar con certeza que sucedería.

Sé que falta mucho para 2038 pero como simple curiosidad mencionaré el “Efecto 2038” o “Y2K38”. Pero antes debo mencionar que el problema en el año 2000 es que muchos sistemas computacionales codificaban el año con solo dos dígitos, por lo que cuando llegara el año 2000 los sistemas podrían haber interpretado que el año era 1900, un retroceso al parecer sin mucha importancia pero que hubiese afectado muchas industrias.

El 1 de enero de 2000 todo quedó en un simple susto para la mayoría de la gente, en gran parte porque las empresas invirtieron recursos para solventar el posible problema. Sin embargo, dentro de 23 años y algunos meses volveremos a enfrentar un problema similar, también relacionado con la forma en que las computadoras interpretan las fechas.

La cuestión es que actualmente se utilizan una serie de estándares que rigen los sistemas operativos con la finalidad de que se puedan crear aplicaciones multiplataforma. El estándar actual es POSIX (norma IEEE 1003) y la medida del tiempo implica sistemas de 32 bits.

Ahora bien, el reloj de la computadora se nos presenta en formato: días, horas, minutos y segundos, pero en realidad los sistemas solo manejan un contador en segundos y hacen la conversión para que nos muestre la hora de forma más práctica. El estándar POSIX usa una fecha de referencia para saber cuantos segundos han pasado, y esta fecha es el 1 de enero de 1970.

En los sistemas de 32 bits solo se utiliza un bit para almacenar el signo del número de segundos (positivo) y los 32 bits restantes se ocupan para contar los segundos que han pasado. Si hacemos una potencia como 2 elevado a la 31 el resultado será de 2,147,483,648 segundos, lo que una vez hecha la conversión arroja 68 años. En pocas palabras, los relojes de las computadoras tienen una capacidad máxima de 68 años a partir de 1970, por lo que en 2038 podrían colapsar.

¿Solución? A nivel de usuario el posible problema se solventa pasándose a sistemas de 64 bits (2 elevado a la 63, lo que da muchísimos más segundos, tantos como 220 veces la edad estimada del Universo); y digo posible problema porque a ciencia cierta nadie puede afirmar que es lo que pasará entonces, por lo que lo más posible es que las empresas deban migrar sus sistemas.

El problema para las empresas es que esto va a implicar altos costos porque no es tan simple que una empresa que utiliza miles o millones de computadoras actualice sus sistemas; solo hay que ver el caso actual de Windows XP, un sistema operativo muy bueno pero ya obsoleto, porque Microsoft ha decidido quitarle el soporte, aún cuando es un sistema muy utilizado todavía a nivel mundial.