jueves, 6 de marzo de 2014

Tecnologicas: a partir del 19 de enero del 2038, los teléfonos no podrán contar mas segundos

EL 19 DE ENERO DEL 2038, NO PODRÁ CONTAR MÁS SEGUNDOS, si es en serio, por lo menos en los teléfonos actuales, por un motivo de 32b, y aunque será raro que algún telefono de los actuales este aun en uso, vamos a explicar por qué tu móvil no concibe el tiempo más allá del año 2038

Lo mas seguro es que nunca te hayas fijado, pero si lo miras en tu telefono, , 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.

 

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, pero fechas mas lejanas del 19/01/2038 no.

 

 

 

Sin enbargo, con los terminales que corren en Windows Phone. En uno de estos teléfonos si que pueden 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, y realmente es una limitación, no un fallo propiamente dicho, puesto que sus creadores ya tenian muy claro que esto ocurriría y que podría causar una especie de efecto 2000, el supuesto caos informático generalizado para el que nos preparamos y sufrimos los meses antes para evitar el caos que debía ocurrir con el cambio de siglo, y que luego resultó ser una alarma exagerada ya qué la mayoría de los sistemas digitales hicieron la transición de 1999 a 2000 sin muchos problemas.

yo aun recuerdo esa noche, con el telefono al lado esperando que alguien llamase por que el ciberspacio se hundiria y se abriría las puestas del infierno, pero no:

El 31 de diciembre de 1999 fue tranquilo, pero ahora mismo es complicado poder 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

Deja tus opiniones y/o comentarios, nos sirven para mejorar nuestro blog, gracias