Los ordenadores no dejarán de funcionar el 19 de enero de 2038

2038

A finales de los años 60, los primeros ordenadores UNIX (todavía no había Windows, aunque no podáis creerlo) contaban el tiempo en fracciones de 1/60 de segundo. La cuenta se llevaba sobre un entero con signo de 32 bits, que podía representar números desde −2.147.483.648 hasta 2.147.483.647. Aunque parezca un número muy grande, realmente solo permitía llevar la cuenta del tiempo durante 414 días. Más tarde, el sistema cambió para contar segundos enteros, lo que permitía gestionar fechas durante 24.855 días (68 años). Se decidió que la cuenta empezase en el primer segundo del 1 de enero de 1970. A esta manera de gestionar las fechas en computación se le llama tiempo Unix o Tiempo POSIX.

Ya desde su inicio se sabía que el día 19 de enero de 2028 a las 3:14:08 el sistema fallaría, marcando como fecha el 13 de diciembre de 1901 a las 8:45.

Year_2038_problem

Esto indudablemente supone un problema, ya que todos los programas que trabajan con este formato de tiempo se verán afectados. Todavía son muchos los sistemas que cuentan el tiempo con un entero de 32 bits con signo, como los sistemas android, iphone y muchos servidores, principalmente UNIX. Si vais a vuestro móvil y le intentáis cambiar la fecha, comprobaréis que no os deja avanzar más allá de 2037. La razón es esta, usan enteros de 32 bits con signo.

¿Por qué es esto un problema?

Porque después de más de 40 años utilizando este sistema, la codificación del tiempo con 32 bits está tan arraigada, que actualizarlo a 64 requiere de una gran inversión. Por ejemplo, se codifica el tiempo con 32 bits en muchos sistemas de ficheros (UNIX principalmente), en los campos de fecha de las bases de datos, en dispositivos bancarios, médicos y militares.

Cualquier cambio en el formato del tiempo provocaría la incompatibilidad con toda la información y los binarios previamente codificados con 32 bits.

La primera consecuencia de esta limitación, es que tendréis que cambiar de móvil antes de 23 años. La segunda, es que todos los programas que usen este protocolo de medida del tiempo tendrán que migrar si o si a un sistema equivalente de conteo del tiempo de 64 bits. Todavía no hay un criterio común sobre cual es la solución óptima, pero seguramente pasará por la coexistencia de los dos formatos, de 32 y 64 bits, y el paulatino abandono del antiguo para adoptar el nuevo. Sobre la adaptación de los datos que tienen embebido el formato de 32 bits, lo que ahora puede parecer una tarea faraónica, en 10 años parecerá un juego de niños. El primer disco duro con el que trabajé tenía 30 MBs. Pensaba que el tamaño de mi disco era absurdo, y que nunca nadie necesitaría tanto almacenamiento. Hoy lo habría llenado con 4 fotos. Dentro de 23 años es muy difícil estimar que capacidades tendrán nuestros ordenadores, pero para hacerse una idea, hace 23, en 1991, un PC medio como el que podemos tener en casa hoy, tenía un procesador intel 486 a 33 MHz (por supuesto, de un core), un disco duro de 500 MB y un modem a 2400 baudios. En 2038, este efecto será una anécdota.

  • @ Trueno:

    Acá está :-D

    httpv://www.youtube.com/watch?v=BehDmiP36P4

  • @ Tru:
    Acabas de describir mi infancia. :meparto: :meparto: :meparto:

  • Acá en Argentina «la BBS» era los pinos, es más «Los Pinos II» ya en el 94/95 tenía acceso a Internet Guau.
    Yo empece a programar Basic y Pascal con un TI 99.
    En cuanto al problema de 2038, no se preocupen en sistemas nos empezaremos a preocupar 6 meses antes, haremos todo un escandalo de como nadie se dió cuenta antes, y terminaremos de migrar el 31/12/2037 a las 23:58.

  • Gustavo dijo:

    Acá en Argentina “la BBS” era los pinos,

    Los Pinos, si habremos bajado cosas de ahí… :lloro:



\Incluya

Puedes seguir las respuestas a esta entrada por RSS 2.0 feed.