Blogs
El desconocido problema que tendr√≠an los computadores y celulares el a√Īo 2038
Publicado por: Alberto Zenteno
¬ŅEncontraste alg√ļn error? Av√≠sanos visitas

En las ciencias inform√°ticas, todo dato que queramos utilizar es guardado dentro de una ‚Äúvariable‚ÄĚ, la cual ocupa un espacio en la memoria principal del computador. Hay variables que tienen mayor capacidad que otras, ya que no para todo necesitamos el mismo espacio.

Ejemplo: necesito crear un programa que me administre personas.

Podr√≠a yo – como ni√Īo rata- inmediatamente pensar en utilizar una variable de 8 bits para almacenar la edad de la persona, ya que en 8 bits (1 Byte) puedo almacenar cualquier n√ļmero que est√© dentro del intervalo [-128 , 127] o [0 , 255]. Obviamente es pr√°cticamente imposible tener una edad mayor a 255, entonces parece razonable utilizar esta medida (espero no tener que contabilizar a Matusal√©n en este programa). Para guardar el tel√©fono necesito una variable m√°s grande, as√≠ que utilizar√© un ‚ÄúEntero‚ÄĚ que es de 32bits, pudiendo guardar valores que est√°n dentro del intervalo [0 , 4.294.967.295], pero ¬Ņqu√© pasa cuando necesito guardar un valor m√°s grande que ese?

Binario

Como vemos en este art√≠culo, los sistemas de 32 bits s√≥lo pueden utilizar variables de ese tama√Īo, lo cual aunque 232 pareciera ser un n√ļmero gigante, hay veces que podemos ‚Äúquedar cortos‚ÄĚ.

Problema del a√Īo 2038 (Y2K38)

En la siguiente animación, podemos notar que la fecha y hora de un sistema, está guardada dentro de una variable de 32 bits. Esta variable en realidad cuenta cuántos segundos transcurren desde el 1 de enero de 1970 en adelante, y lo que hace es transformar esos segundos a la fecha correspondiente. Desafortunadamente para esta variable, después del 18 de enero del 2038, sobrepasará su límite, quedando sin capacidad y podría causar un problema mundial.

Bug Y2K38

¬ŅPor qu√© esto no nos preocupa o no nos alarma?

Los sistemas operativos de 64 bits, est√°n apoder√°ndose casi por completo del mercado. Estos sistemas ocupan en su lugar, una variable de 64 bits para almacenar la fecha/hora, lo que soluciona de inmediato este problema y queda espacio de sobra para millones de a√Īos m√°s.

Sin embargo, a√ļn quedan muchos de 32 bits, el ejemplo m√°s grande de los sistemas x86 son los Smartphones Android. Hasta el momento la gran mayor√≠a de estos terminales son de esta arquitectura.

Mirad el siguiente ejemplo:

Intentar√© cambiar la fecha de este terminal Android que cuenta con la √ļltima versi√≥n (Marshmallow 6.0.1):

Cambiar Fecha

Misteriosamente‚Ķ s√≥lo puedo llegar al a√Īo 2037.

Aun as√≠, esto no es motivo de alarma (creo), se espera que de aqu√≠ al a√Īo 2038, ya todas las m√°quinas funcionen con arquitecturas de 64 bits o m√°s, quedando este problema en el olvido, al igual que el famoso a√Īo 2000, donde supuestamente todo quedar√≠a sumergido en caos.

Brevenota nerd

A prop√≥sito de quedar cortos de espacio…

En la √©poca donde los dinosaurios dominaban la Tierra, por ah√≠ por los a√Īos 80, el popular juego Pac-Man, almacenaba su contador de niveles en una variable de 1Byte, por lo tanto s√≥lo pod√≠a llegar su contador a 255 (tal como lo expliqu√© m√°s arriba), es por esto que cuando llegaba al nivel 256, el juego ‚Äúse iba a la B‚ÄĚ.

Pacman

Este problema se solucionó rápidamente, usando una variable de mayor capacidad.

Tendencias Ahora