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
75 comentarios
dli666
Menos mal que hay solución, no tenía pensado cambiarme el móvil hasta el 2039
@lex
La explicación dada en el artículo no es del todo exacta. No está ligada ni limitada a los sistemas operativos de 32bits ni a los procesadores de 32 bits. El mismo "sistema" y aplicación compilada para 64 bits fallará igual.
El problema reside en que tipo de variable se utiliza para guardar una información temporal. Si se utiliza un "int" que en la mayoría de sistemas son 32bits el fallo parecerá. Si se usa un unsigned int, dará unos cuantos años mas de margen dado que al eliminar el signo se dispone del doble de capacidad porque no se pueden representar números negativos.
Si no voy errado, los sistemas operativos modernos utilizan variables tipo "long" para el reloj, así que hasta dentro varios millones de años no hay que preocuparse. Las variables tipo "long" pueden usarse también en sistemas operativos de 32 bits, pero con un inconveniente: hay que usar mas ciclos de reloj para hacer operaciones matemáticas con ellas, mientras que en una CPU de 64 bits la mayoría de operaciones se realizan directamente en un ciclo. Dependiendo del sistema operativo y compilador la atomicidad tampoco se puede garantizar y puede ser un problema... pero esto ya son otras historias que quedan fuera del alcance del comentario.
El problema es en aplicaciones empresariales, apps,... creadas hace años sin tener en cuenta el problema y que tendrán que ser revisadas de arriba abajo y remplazar el tipo de variable usado para representar el tiempo. Esto puede dar lugar a bugs si alguien se olvida de modificarlo en algún sitio.
De todas formas, mucho del código actual será completamente re-escrito de aquí a 2039.
Saludos
vodor
¿Hay algún satélite que fuera lanzado hace años y tenga prevista una misión que termine después de esa fecha?
Por ejemplo, algún satélite lanzado hacia algún punto muy lejano
troll_police
Y si 2012 tuvo su pelicula, como para cuando tendrá esto la suya.
Saludos.
black_ice
Viendo un par de comentarios en esta entrada, veo que hay gente tan obtusa que cree que esto es mentira "para que consumamos mas" a pesar de lo evidente y fácil de demostrar que es. Pero luego ven un vídeo en YouTube y van por la vida pregonando que "la tierra es plana" y "los gobiernos están controlados por los reptilianos".... Y luego su voto vale lo mismo que el mío. ¡que Dios nos coja confesados!
Spitfire
Efecto 2000 tenía más gancho que Efecto 2038, la verdad.
Espero que en los próximos 20 años a alguien se le ocurra un nombre mejor.
Cosmonautas
Homer ya no será el encargado de seguridad de la central nucelar de Springfield.
jotapersona
Como bien dice Heinlein: "Nunca subestimes el poder de la estupidez humana", Win XP lleva cerca de 20 años en el mercado, existen cajeros y sistemas que corren sobre este sistema operativo, o también del aeropuerto francés que utiliza Win 3.1 (26 años desde que salio al mercado, si no contamos que solo es una mejora de win 2.03, porque ahí serian 30 años) para su sistema DECOR. Por lo que no me extrañaría que en 20 años todavia existan equipos de 32 Bits en uso.
xduende
¿Los bancos van a cambiar sus sistemas en Cobol?, ¿Las aerolíneas van a cambiar sus sistemas anacrónicos, pero funcionales?... francamente no lo creo, si no lo han hecho ahora y no lo hicieron para el 2000, dificulto que lo hagan en el futuro.
Unos años antes, comenzara la crisis, todo el mundo a correr y vaticinando el fin del mundo tecnologico, muchas cuentas bancarias quedaran en cero y se crearan ciertos problemas a nivel mundial por querer guardar soportes "impresos" o digitales de registros que se pueden perder para esa fecha.
Al final, algunos problemas pasaran, algunas cosas dejaran de trabajar y seran parcheadas con la agilidad que siempre nos ha caracterizado, pero el mundo seguira rodando
razhan
2.147.483.647 valores negativos? Menuda forma de echar basura sobre los procesadores de 32 bits. Eso es absurdo, nadie compraría un ordenador con solo 2.147.483.647 valores negativos.
Se de muy buena tinta que en realidad tienen 2.147.483.648 valores negativos. Un procesador con 2.147.483.648 valores negativos claramente es mucho mejor que uno con 2.147.483.647 valores negativos. Hay que ver! Exijo una corrección inmediata
Bromas aparte, para los que no tienen conocimiento del tema, los procesadores suelen poder contar en negativo un numero más que en positivo, ya que el cero al final ocupa un espacio de los positivos. Algunas formas de representar números si que tienen el mismo valor de positivos y negativos, pero terminas con +0 y -0, y eso acaba siendo un caos (por ejemplo, al hacer comparaciones entre ambos). Hoy en día prácticamente no se usan.
sathwan
como curiosidad, no existió algo parecido con los sistema de 16 u 8 bits?
Usuario desactivado
Se que parece lejano pero todavia tengo un ordenador de 1988 en mi oficina, asi es que yo creo tener equipos de 32 bits para el 2038
nada
Primero... el "Efecto 2000", no hizo nada, al menos nada relevante.
Segundo... el "Efecto 2038" no hará absolutamente nada...
En serio, ¿alguien ha pensado qué son 20 años en informática?
Dentro de 20 años, ningún equipo estará funcionando, así que menuda chorrada de especulación.
Simplemente absurdo, especular por especular, es como ... ¿Qué pasaría si el sol se pusiera a 400 kilómetros de la Tierra?
areseldios
Vamos arrastrando este problema ya casi 40 años, que alguien lo solucione de una p vez y que garatizen que los sistemas aguanten 2000 años seguidos minimo
nonabol
En 2038 no quedarán ni máquinas a 64 bits.
Esto es como preocuparse en 1970 del peligro de deforestación por el uso de tarjetas perforadas...
luismiguelfustero
ese año ya estaremos todos en Marte
Usuario desactivado
No, los procesadores de 64 bits no serán sustituidos por otros más modernos, ya que 64 bits da para muchas décadas, incluso siglos. 128 bits es difícil que tengan sentido en un contexto humano normal.
gonzalo1987
https://www.cnet.com/news/gangnam-style-busts-youtubes-view-counter-not-so-fast/
Un saludo!
Cosmonautas
Hablar de qué ocurrirá en el 2038 es irreal... Trump y Kim mediante.
baxtin27
Esto si afectara a los satélites, "Quien va buscarlos". Aunque los sistemas operativos sean de 64 bits el software "La mayoría" trabaja a 32 bits. (x86 Sigue presente W10)
En 20 años veremos si se ha solucionado, no creo, porque siempre pasa lo mismo, se va dejando para el último momento y sorpresa.
(En 1962 se inventaron las bombillas Led que iban a cambiar el mundo pero estamos en ello aún, ahí lo dejo)
tecnoman
Si claro, igual que el efecto 2000 que mucho ruido y pocas nueces. Esto es otra chorrada.
marius.martin
¿1901? ¿No es el inicio del Unix timestamp el 1 de enero de 1970?
Por cierto. Yo lo que hago para evitar que mis programas casquen ese día es guardar las fechas en datetime (Y-m-d h:i:s) en lugar de timestamp.
davidavila2
Yo no le veo demasiado problema, casi todo es 64 bits, incluso los móviles, por lo que se vea afectado es muy poco cuando pasen 21 años
mamptecnocrata
Ok, dicen que faltan 20 años para... ¿estar "abandonado" los 32 bits? ¿Y qué de aquellos que no podemos hacerlo porque no sale barato reemplazar algo tan simple como un móvil, imagínense un computador portátil? Vamos, dirán "son solo 250€", pero créanme que a veces no es fácil cuando recibes como 30€ mensual de salario... y más cuando conseguir divisas extranjeras es más difícil que conseguir ganar la lotería nacional al primer intento...
darkfish
Espero que no aparezcan los especuladores de siempre a querer venderte alguna solución mágica para afrontar este problema en el año 2038, dicho sea de paso, seremos 11 años más viejos.
darkfish
perdón, seremos 21 años mas viejos!.