El Efecto 2038, qué es y a qué dispositivos afecta

Similar al efecto del Y2K, el efecto 2038 podría destruir equipos de computación que no hayan sido actualizados, además de Smartphones y otros electrónicos.

Cuando el reloj marque las cinco y catorce minutos con siete segundos de la madrugada (03:14:07 UTC) el 19 de enero del 2038, un bug informático podría hacer que gran parte de los equipos, programas, servidores o cualquier tipo de dispositivo que utilice un sistema de 32 bits y que no haya sido parcheado falle a escala global pensando que vuelve a ser el año 1901.

¿Recuerdas el efecto 2000 que tanta preocupación causó? Pues  bueno, el efecto 2038 es algo parecido y, aunque seguramente no terminará afectando a nadie, pues será dentro de mucho tiempo y, tal vez, ya las plataformas de 32 bits no existan, es bueno conocer  por qué existe el problema para que entiendas bien de qué se ha estado hablando cuando se refieren al Y2K38.

Ya en diciembre del 2014 se comenzó a escuchar sobre el efecto 2038. El videoclip de PSY que alcanzó las 2.147.483.647 reproducciones el 3 de diciembre de aquel año y tras superar esa cifra, hizo que YouTube dejara de ser capaz de contar más allá. Google tuvo que parchear YouTube y el resto del mundo se dio cuenta de que había un problema.

El problema real del año 2038 tiene que ver con los bits

2038

La capacidad máxima de bits con la que que cuentan los sistemas de 32 bits es el problema. Estos almacenan memoria y ejecutan sus procesos utilizando 32 dígitos binarios, los cuales pueden representarse por un 1 o un 0, lo que permite permite un total de 4.294.967.296 combinaciones posibles.

Pero hay que tener en cuenta que estas combinaciones pueden ser positivas o negativas, por lo que en realidad los sistemas de 32 bits “sólo” cuentan con 2.147.483.647 valores positivos superiores a cero y otros 2.147.483.648 valores negativos. Un valor negativo más porque el cero ocupa el espacio de los positivos.

Uno de los sistemas que estos procesadores usan para contar el tiempo es el POSIX, que calcula los segundos transcurridos desde el 1 de enero de 1970 a las 00:00:00 UTC. Esto quiere decir, que partiendo de ese 1 de enero de 1970, los computadores de 32 bits sólo son capaces de contabilizar las fechas comprendidas entre las 20:45:52 UTC del 13 de diciembre de 1901 hasta las 03:14:07 UTC del 19 de enero del 2038.

Por lo tanto, un segundo después de las 03:14:07 UTC del 19 de enero del 2038 los sistemas de 32 bits ya no serán capaces de contar más, y confundirán la fecha con el 13 de diciembre de 1901, que es la fecha de referencia de 1970 restándole los 2.147.483.647 segundos negativos.

Así que el problema reside en el tipo de variable que se utiliza para guardar una información temporal. Si se utiliza un “int” el fallo aparecerá, que es la variable que se utiliza en casi todos los sistemas de 32 bits. Sin embargo, si se usa un “unsigned int” se eliminará el signo negativo y habrá unos cuantos años más de margen.

El bug afecta sobre todo al sistema operativo Unix, que está en las tripas de otros sistemas como GNU/Linux, Android e iOS. Por lo tanto, esto abarca desde casi todos los teléfonos móviles hasta una gran parte de los servidores de Internet. Y  lo más inquietante es que no se sabe cómo van a actuar estos sistemas que se vean afectados al no ser capaces de contar más tiempo.

Algunos simplemente podrían resetear sus fechas volviendo a 1901, suficiente para crear un poco de caos dependiendo de dónde suceda. Pero también es posible que se desencadenen fallos de sistema, o incluso que algunos dispositivos se apaguen y no vuelvan a encenderse. En cualqueir caso puedes estar tranquilo, porque no es algo que realmente vaya a afectar.

¿Va a ser el Y2K38 un problema? NO

Efecto 2038

Aunque sobre el papel todo parece una catástrofe casi bíblica, realmente no hay demasiado de lo que preocuparse. Tienes que tener en cuenta, por ejemplo, que los procesadores de 32 bits ya hace años que se están abandonando en beneficio de los de 64 bits, que al tener una mayor capacidad de bits tardaría algunos siglos aún en tener ese problema.

Por ejemplo, Microsoft lleva ofreciendo versiones de 64 bits de su sistema operativo desde Windows XP Professional en 2005, sistema macOS de Apple lleva siendo exclusivo de 64 bits desde Mac OS X 10.7 “Lion” en 2011, y los primeros móviles de Android con 64 bits empezaron a llegar en 2014.

Por lo tanto, si ya en 2017 los 32 bits están quedándose obsoletos, es lógico pensar que para 2038 incluso los de 64 bits a los que poco a poco se va transicionando se hayan abandonado también por otros más avanzados. Después de todo la tecnología está avanzando a pasos agigantados, por lo que es difícil que para dentro de 20 años te acuerdes siquiera de los 32 bits.

E incluso en el caso de que aún quedase algún sistema de red o dispositivo secundario anclado en los 32 bits por aquel entonces, los fabricantes tienen tiempo de sobra para parchearlos con actualizaciones de software. Vamos, que va a ser muy difícil que este problema de 2038 acabe causando algún estrago significativo.