Augurios del Milenio
Muy seguramente la gran mayoría de quienes leen estas páginas recuerden con claridad cómo, en el umbral del cambio del milenio, surgieron miles de advertencias sobre la inevitable crisis informática causada por el cambio de los marcadores de las computadoras del año 1999 al año 1900 o al 0000.
Como todos sabemos, esto no sucedió. Y no habría podido suceder porque, contrario al concepto común, la mayor parte de los computadores no miden el tiempo como nosotros, con base en las fechas clave. Lo hacen con un contador que, segundo a segundo, les va indicando la fecha, y como dicho contador no terminaba en el año 2000, la fecha no iba a hacer ninguna diferencia.
El sistema es casi universal y es un estándar, en términos prácticos, de los sistemas Unix. En el caso de Android y las últimas versiones de Linux, dicho contador empieza en el año 1969, el 31 de diciembre a las 21:00 horas. Así mismo, muchos otros sistemas basados en el lenguaje C y derivados tienen un estándar semejante: en general, la absoluta mayoría del software actual funciona de esta manera (aunque en algunos casos comienza a contar desde las 00:00 del 1 de enero de 1970) No se puede integrar un sistema nuevo en el existente sin modificar el software actual, por lo que en la práctica una migración a otros sistemas es prácticamente imposible.
El asunto va algo así. El indicador time_t es un entero de signo positivo o negativo que indica un segundo en el sistema. Comienza en -2 147 483 648 (es decir, -232) y termina en 2 147 483 647. Un segundo después de alcanzar este valor, el contador saltará a 0 y los sistemas detectarán, dependiendo del funcionamiento, que están en 1900 o en 1970. En cualquier caso, implicaría el colapso del mundo informático y un fallo en todos los sistemas de software actuales que usan la representación del tiempo basada en el sistema POSIX, es decir, la mayoría.
Así que como vemos, no es que las predicciones apocalípticas estuviesen totalmente equivocadas. Es más bien que erraron el momento en que dicho problema ocurriría.
¿La fecha del final?
El año será el 2038.
Específicamente hablando, a las 3 horas, 14 minutos y 7 segundos del 19 de enero del año 2038 para los sistemas basados en las 00:00 del 1 de enero de 1970 y a las 00:14:19 para los basados en las 21:00 horas del 31 de diciembre de 1969, el contador de los dispositivos llegará a 2 147 483 647. Un segundo después, el sistema colapsará.
Es por esta razón que la mayor parte de los sistemas de Android y Linux, así como las versiones de IOS previas al Iphone 5S, no permiten que la persona coloque manualmente una fecha posterior al año 2038. De hacerlo, el dispositivo automáticamente se bloquea.
La solución
El problema es imposible de resolver… para sistemas basados en 32 bits (de ahí el 232). Sin embargo, los sistemas a 64 bits, más nuevos, manejan una cantidad inmensa de espacio. Si 232 segundos son poco más de 60 años, 264 son más de 2.90 billones de años. O más de lo que, se espera, sobreviva el Universo.
La transición a sistemas de 64 bits está muy lejos de terminarse, pero se espera que en 20 años ya haya sido completada. De ser así, el problema no será tal y no sucederá nada. Como siempre, cabe la posibilidad de que algún irresponsable omita un software de 32 bits en un sistema crítico, por lo que podrían ocurrir accidentes. Pero una catástrofe mundial es poco probable.
Fuente de imágenes: 1: myriadsupply.com, 2: i0.wp.com