Es noticia
Por qué tu móvil no concibe el tiempo más allá del año 2038
  1. Tecnología
el 19 de enero no podrá contar más segundos

Por qué tu móvil no concibe el tiempo más allá del año 2038

Quizá no lo sepas, pero tu móvil no permite que cambies la hora más allá del 2038. Es una fecha clave para muchos SO y podríamos vivir otro 'efecto 2000'

Foto:

Seguramente nunca te hayas fijado, pero si lo compruebas, verás que es así. Si vas a la sección de ajustes de su smartphone e intentas cambiar la fecha de forma manual, verás que tu móvil no te deja avanzar en el futuro más allá del mes de enero del año 2038.

En Teknautas la hemos hecho y hemos comprobado que es así en los teléfonos equipados con Android y con iOS, aunque admiten fechas distintas: 31 de diciembre de 2036, de 2037 o incluso 1 de enero de 2038. Depende de la versión de cada sistema operativo.

No es así en cambio con los terminales que corren en Windows Phone. En uno de estos teléfonos pudimos fijar sin problema la hora en 2040. ¿Por qué no es posible hacer lo mismo con los dos sistemas operativos para móviles más utilizados del mundo?

La respuesta es el llamado Problema del año 2038,o Y2K38, una limitación (no es un fallo propiamente dicho, puesto que sus creadores ya preveían que esto ocurriría) que podría causaruna especie de efecto 2000, aquel supuesto caos informático generalizado para el que nos preparamos con el cambio de siglo, y que luego resultó ser una alarma infundada porque la mayoría de los sistemas digitales hicieron la transición de 1999 a 2000 sin mayores contratiempos.

placeholder (Foto: Enrique Villarino)

El 31 de diciembre de 1999 fue tranquilo, pero ahora mismo es difícil asegurar que el 19 de enero de 2038 vaya a serlo también. Ese día, a las 3:14:07 (las 4:14:07 en España), se alcanzará el número máximo de segundos que muchos sistemas operativos son capaces de contar y nadie está seguro de qué ocurrirá después.

Este problema afecta al software que representan el tiempo (la fecha y la hora) utilizando el estándar POSIX. Este estándar fue desarrollado basándose en el sistema UNIX con el objetivo de crear una interfaz fácilmente implementable en distintos entornos y versiones. Sobre UNIX y el lenguaje de programación C están basados muchos de los sistemas operativos que usamos hoy en día, y por eso este estándar afecta a prácticamente todos los dispositivos.

Su funcionamiento es sencillo: calcula la fecha y la hora en la que estamos contando segundos desde un momento determinado. En concreto, cuántos segundos han pasado desde el 1 de enero de 1970 a las 00:00:00.Para contar esos segundos, utiliza un sistema de 32 bits. Cada uno de esos bits en un 1 o un 0. Es decir, que una fecha y hora concretas se calculan a partir de un número de segundos, que se representa como una serie de 1 y 0 de 32 posiciones, siguiendo esta fórmula:

00000000 00000000 00000000 00000001: 1 segundo

00000000 00000000 00000000 00000010: 2 segundos

00000000 00000000 00000000 00000011: 3 segundos

00000000 00000000 00000000 00000100: 4 segundos

Puesto que hay 32 posiciones que pueden adoptar dos valores distintos, existen más de cuatro mil millones de combinaciones posibles de 0 y 1 para ir registrando el tiempo. En concreto, 2 elevado a 32 = 4.294.967.296 combinaciones. Si tenemos en cuenta que se empezó a medir el 1 de enero de 1970, este sistema podría servir hasta el 7 de febrero de 2106 a las 06:28:16. Pero no es así porque la cosa tiene truco

En el sistema binario no hay símbolos, por lo que no se pueden utilizar el más y el menos (+ y -) para señalar si un número es positivo o negativo. En este sistema, el signo de un número viene determinado por el primer bit: si es un 0, el númeroes positivo, y si es un 1, es negativo. Hasta ahora todas las marcas han comenzado por 0, es decir, eran números positivos. Y es lógico, porque es la forma natural de medir el avance del tiempo.

Por lo tanto, solo se consideran apropiados para fijar la fecha y la hora las combinaciones binarias que empiezan por 0, y éstas son muchas menos. Concretamente a la mitad: unos dos mil millones (2.147.483.648), reduciendo significativamente el número de segundos que puede llegar a contar y por tanto la fecha hasta la que es capaz de calcular.

El problema llegará cuando la cuenta alcance la siguiente cifra:

01111111 11111111 11111111 11111111: 2.147.483.647 segundos.

Esto ocurrirá el día 19 de enero de 2038 a las 3:14:07. Ése es el límite al que este contador de 32 bits puede llegar sin cambiar el primer bit por un 1. Un segundo después, eso es precisamente lo que ocurrirá y al hacerlo, el número de contador pasará a ser un número negativo:

10000000 00000000 00000000 00000000: -2.147.483.648 segundos.

¿Y entonces qué? Pues no está muy claro. La mayoría de los programadores apuestan por que la fecha se trasladará automáticamente al 13 de diciembre de 1901, dos mil millones y pico de segundos antes del 1 de enero de 1970, momento en el que se fijó el inicio de esta cuenta.

De provocarse este fallo, podría haber errores en miles de softwaresen todo el mundo. Cuidado si tienes tus cuentas bancarias asociadas con tu smartphone, las consecuencias son ahora mismo imprevisibles.

Existen, sin embargo, varios motivos por los que no hay por qué preocuparse demasiado. El primero, y principal, es que faltan poco menos de 24 años para que llegue el momento clave y ya se están poniendo los medios para evitar el colapso.

Muchos fabricantes de sistemas operativos ya están migrando a estos sistemas que utilizan grupos de 64 bits para representar el tiempo, por lo que es de esperar que estén preparados cuando llegue 2038. Y es seriamente cuestionable que tu 'smartphone' vaya a durarte tanto tiempo…

La solución obvia pasa por añadir más bits, y eso es lo que se está haciendo: de 32 a 64 bits. Esto supondría el doble de posiciones y muchísimas más combinaciones. 2 elevado a 64 es igual a 18.446.744.073.709.551.616 (aunque de nuevo habría que reducir la cuenta a la mitad, ya que la otra mitad serían números negativos).

Si la cifra les resulta mareante, piensen que ese número de combinaciones, a una combinación por segundo, retrasaría el problema unos 2,9 billones de años. En fin, problema resuelto (por ahora).

Muchos fabricantes de sistemas operativos ya están migrando a estos sistemas que utilizan grupos de 64 bits para representar el tiempo, por lo que es de esperar que estén preparados cuando llegue 2038. Y es seriamente cuestionable que tu smartphone vaya a durarte tanto tiempo…

Seguramente nunca te hayas fijado, pero si lo compruebas, verás que es así. Si vas a la sección de ajustes de su smartphone e intentas cambiar la fecha de forma manual, verás que tu móvil no te deja avanzar en el futuro más allá del mes de enero del año 2038.

Tecnología Android
El redactor recomienda