Qué es Epochalypse, el próximo gran bug que amenaza con colapsar todos los ordenadores en 2038
Epochalypse (o Y2038) es un error informático que afectará a los sistemas de 32 bits dentro de 14 años.
El apagón cibernético global del viernes 19 de julio de 2024 es solo una muestra de lo que puede suceder tras un error informático a escala global. Más allá de los ciber ataques y errores en actualizaciones de software, hay un problema conocido como Epochalypse que afectará los sistemas operativos de 32 bits en el futuro.
Epochalypse, también conocido como Y2038, es un error informático que afecta la computación del tiempo a partir del año 2038. Al igual que el Millenium Bug (Y2K), que ocurrió porque las primeras computadoras ahorraron espacio de memoria al contar solo los dos últimos dígitos del año, sin distinguir entre 1900 y 2000, Epochalypse también nos catapultará al siglo pasado, es decir, a las 8 p.m. del 13 de diciembre de 1901, fecha que en la representación de los sistemas operativos Unix de 32 bits (y el software para sistemas operativos desarrollados en C) corresponde a las 03:14:07 del martes 19 de enero de 2038.
Esto se debe a que los sistemas de 32 bits cuentan el paso del tiempo midiendo el número de segundos que han pasado desde la medianoche del 1 de enero de 1970, momento conocido como la "Época" (de ahí el nombre Epochalypse): los segundos que han pasado son luego se almacena como un número entero de 32 bits (secuencia binaria de 32 ceros y unos) que de hecho alcanza su valor máximo a las 03:14:07 del 19 de enero de 2038.
Pasado ese momento, el contador indicaría un número entero negativo, por lo que las computadoras devolverían una fecha no correspondiente a 2038 sino a 1901.
Aunque todavía tienen que pasar 14 años y los informáticos buscan una manera de solucionar el problema, el error puede manifestarse incluso antes de 2038, cuando se pide a los PC que funcionen con fechas correspondientes o posteriores a la fecha crítica, algo que ya ha sucedido en el pasado.
Resolver el problema de Epochalypse 2038 no es fácil. Una solución podría ser cambiar el tipo de " time.h " de 32 bits a 64 bits, lo que haría avanzar el error en el tiempo aproximadamente 290 mil millones de años.
Otra estrategia podría ser dejar el " time.h " como un entero de 32 bits, pero sin posibilidad de tomar signo positivo o negativo (como unsigned ), lo que pospondría el problema 68 años, trasladándolo a febrero. 7, 2106. Aún así, causaría problemas a muchos programas.