El 19 de enero del 2038, cuando el reloj marque las cinco y catorce minutos con siete segundos de la madrugada (03:14:07 UTC), un bug informático hará que gran parte de los ordenadores, programas, servidores o cualquier tipo de dispositivo que utilice un sistema de 32 bits y no haya sido parcheado falle a escala global pensando que vuelve a ser el año 1901.
¿Te acuerdas del efecto 2000 que tanta preocupación causó a finales del siglo pasado? Pues "el efecto 2038" (Y2K38 para los amigos) es algo parecido. Posiblemente no acabe afectándonos, hay mucho tiempo para parchear o sustituir los sistemas de 32 bits, pero hoy te vamos a contar por qué existe este problema para que entiendas bien de qué se ha estado hablando, y se seguirá haciendo, cuando se refieren al Y2K38.
Empezamos a oír hablar con frecuencia del problema del año 2038 en diciembre del 2014, en plena fiebre del Gangman Style. El vídeoclip de PSY alcanzó las 2.147.483.647 reproducciones el 3 de diciembre de aquel año, y tras superar esa cifra YouTube dejó de ser capaz de contar más allá. Google tuvo que parchear YouTube, y el resto del mundo se dio cuenta de que teníamos un problema.
Qué es exactamente el problema del año 2038
El problema del año 2038 se debe a la capacidad máxima de bits con la que que cuentan los sistemas de 32 bits. 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 ordenadores 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.
El problema reside en el tipo de variable 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 sabemos 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 nos vaya a afectar.
¿Va a ser el Y2K38 un problema? NO
Aunque sobre el papel todo parece una catástrofe casi bíblica, realmente no hay demasiado de lo que preocuparse. Ten 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 nos acordemos 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.
Imagen de portada | Christiaan Colen
Gracias a vastak por la pista
En Xataka Basics | Qué significa que mi CPU sea de 32 o 64 bits y cuál es la diferencia
Ver 75 comentarios