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 causar una 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.
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.
El número de segundos desde 1970
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
La cuenta se agota
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úmero es 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 softwares en todo el
mundo. Cuidado si tienes tus cuentas bancarias asociadas con tu smartphone,
las consecuencias son ahora mismo imprevisibles.
Tu móvil no va a durar tanto
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…
No hay comentarios:
Publicar un comentario