Y2K: la secuela y otra más

Vía Slashdot me hacen notar que el Sábado pasado comienza una cuenta regresiva para un error informático de proporciones importantes. Investigando un poco más encuentro que en realidad estamos ante dos problemas latentes en nuestros sistemas informáticos.

Y2K36: protocolo de sincronización de tiempo (NTPv3)

El protocolo de sincronización de tiempo (NTP) se utiliza para mantener el reloj de las computadoras en la hora correcta. Muy utilizado en internet y de muy alta precisión. Sin embargo, su versión 3 tiene un límite de precisión de poco más de 136 años.

Utilizando como fecha cero el 1º de Enero de 1900, la marca de 32 bits para los segundos implica que el problema sucedería en el año 2036. Afortunadamente, el protocolo ya previno dicho inconveniente y su última versión NTPv4 ya utiliza 64 bits para dicha representación, suficiente como para mantener las horas sincronizadas hasta el fin del universo.

Sin embargo, numerosos sistemas aún utilizan la versión 3. En particular, Windows XP y Windows Server 2003, sistemas operativos utilizados desde hace 6 ó 7 años. Y, por lo que pude leer, Windows Vista utilizaría la misma aplicación, lo que aumenta las probabilidades de que haya problemas al respecto con estos sistemas operativos.

Y2K38: tiempo Unix

Los sistemas basados en Unix cuentan el tiempo en segundos desde el 1º de Enero de 1970 (llamado Epoch) con 31 bits - 32 en realidad, pero 1 bit es para el signo -. Esto quiere decir que sólo pueden contar hasta 2147483647 (un poco más de 2 mil millones) segundos, equivalente a las 03:14:07 del 19 de Enero de 2038 en UTC. Esto sería la 01:14:07 en Argentina si para aquél entonces todavía cambiamos la hora como hicimos este verano (las 00:14:07 si no).

Eso nos da aproximadamente 30 años, pero hay aplicaciones que trabajan 30 años a futuro. En particular: aquellas que son utilizadas para préstamos hipotecarios o similares. Ésto, sin embargo, podría llevar a errores de cálculo en este momento si dichos programas hacen una simulación de los pagos de dichos préstamos.

El problema no existe en plataformas de 64 bits, cuya adopción debería de ser popular para aquél entonces. Sin embargo, una solución para los dispositivos de 32 bits es necesaria. Y cualquier cambio que se haga será complicado de implementar ya que implicaría romper muchos programas que no están preparados para ello.

Por suerte el futuro queda muy lejos :P

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*