El error de 2038

3 de julio de 2022

A fines de la década de los 90 se habló mucho del famoso error informático Y2K, el cual consistía en que cuando se llegara al 1 de enero del año 2000 surgiría una cadena de errores en una parte importante de los sistemas, dado que por la mala costumbre de algunos programadores de usar solo dos dígitos para almacenar las fechas, se creaba una confusión, dando paso a diversos errores.

Este caso es similar, solo que esta vez se aplica a un problema con la arquitectura y se extiende 38 años más. Siendo exactos, hasta el 19 de enero de 2038, donde se prevé que para ese día la mayor parte de esos equipos en ejecución fallen. Ahora bien, ¿cómo es posible eso? ¿Existe algún timebomb puesto a propósito por un conjunto de grandes empresas al estilo de Phoebus? Dicho a la ligera, no. Pero si existe una cuestión lógica que hay que conocer.

Explicación ténica

Para gestionar la fecha y hora, la gran mayoría de los sistemas informáticos (incluyendo los que usamos a diario) hacen uso del estándar POSIX. Conocido también como Unix Time, administra el tiempo recurrente en base a un número entero con signo (es decir, positivo y negativo) almacenado como variable que parte de -2147483647 y por cada segundo que transcurre, este va incrementándose. Traduciéndolo al formato de fecha y hora, para el tiempo POSIX ese primer valor corresponde al 1 de enero de 1970 a las 0:00:00 UTC, que es el mínimo permitido.
 
Ahora bien, la cuestión radica en los límites donde una máquina puede interpretar ese tipo de valores. En el caso de los basados en 32 bits, el rango se puede incrementar hasta 2147483647, siendo ese número el representante de la fecha máxima a la que llega el tiempo POSIX en esa arquitectura, que transcito nos da un 19 de enero de 2038 a las 3:14:07. De ahí sale la denominación, ya que pasado ese día y hora el contador se reiniciará y cambiará radicalmente el tiempo comprendido, lo que podrá generar diversos errores en esos equipos.
 
Descripción gráfica del problema.

Aquí está claro que con los 64 bits el problema no se va a solucionar con exactitud, ya que en informática los conjuntos de instrucciones son siempre limitados. En su lugar, se va a extender varios miles de millones de años implicando que el inconveniente sea imperciptible para nosotros y para futuras generaciones cercanas.

El inminente final de los 32 bits 

El SO de Microsoft dejó a un lado las arquitecturas obsoletas en su última versión grande.

Con la llegada de Windows 11, el sistema operativo más usado en computadoras de escritorio también terminó apartando a los 32 bits en favor de los 64. Incluso en la época del 10 ya habían surgido algunas críticas al sistema por seguir brindándoles soporte, a sabiendas que en ese años varias distribuciones importantes de Linux se habían deshecho. Y Mac OS ya había hecho lo mismo en OS X Lion, lanzado en 2011.


En resumidas cuentas, este inconveniente es apenas otro de los motivos por los cuales se está abandonando esta arquitectura por completo, sumado a las ventajas que posee su sucesor en materia de capacidades y de rendimiento en general. No es nuevo, ya que si tu PC es del 2006 o superior, es casi segura su compatibilidad. Y los que se quedan sin el, son en su gran mayoría equipos embebidos o empresariales.

No hay comentarios: