La fecha se calcula a raíz de ese día en segundos usando enteros de 32 bits. El problema es que, llegado el 19 de Enero de 2038 a las 3:14:07 de la noche, el número de segundos alcanzará la cifra de 2.147.483.647. Esa cifra es el número positivo máximo que se puede alcanzar usando enteros positivos de 32 bits. Pasada esa fecha, los números usados pasarán a ser negativos, y lo más probable es que la fecha que pase a verse en los sistemas afectados pase a ser el 13 de Diciembre de 1901 a las 20:45:53, que es la fecha a la que llegamos si restamos 2.147.483.647 segundos desde el 1 de Enero de 1970.
Por suerte, el trabajo para evitar que esto ocurra en los sistemas operativos basados en Linux, como Android, ya ha empezado, y en el kernel Linux 5.10, el desarrollador de sistema de archivos de Oracle, Darrick J.Wong, ha enviado código afirmando que "habrá soporte para fechas hasta el año 24862".
Muchos móviles Android pueden quedar inutilizados en 2038
Por tanto, si Linus Torvals sigue lanzando el nuevo kernel de Linux cada ocho semanas como hace normalmente, el fallo estará arreglado en Navidad de este año, algo más de 17 años antes de que ocurra. Los dispositivos que no actualicen y estén usando una función time_t basada en 32 bits se verán afectados por este problema.
Por ejemplo, si tienes un móvil Android que ya se haya quedado sin actualizaciones, y utilice un kernel anterior a la versión 5.10 con un time_t de 32 bits, a partir del año 2038 puede que vayas a tener problemas. Si te fijas en los ajustes de fecha y hora, el sistema no te deja elegir una fecha posterior al 31 de Diciembre de 2037. En versiones anteriores de Android se podía elegir una fecha posterior, pero, aunque se viese bien, el sistema volvía a 1903, por lo que se decidió limitarlo para evitar que hubiera graciosos que cambiasen la fecha.
A modo de anécdota, en 2014, Gangnam Style fue el primer vídeo de YouTube en superar esa cifra de visualizaciones, lo que obligó a Google a prepararse meses antes y utilizar enteros de 64 bits para aceptar cifras más altas de visualizaciones.
No hay comentarios:
Publicar un comentario