El 19 de enero del 2038, cuando el reloj marque las cinco y catorce minutos con siete segundos de la madrugada (03:14:07 UTC), un bug informático hará que gran parte de los ordenadores, programas, servidores o cualquier tipo de dispositivo que utilice un sistema de 32 bits y no haya sido parcheado falle a escala global pensando que vuelve a ser el año 1901.

¿Te acuerdas del efecto 2000 que tanta preocupación causó a finales del siglo pasado? Pues "el efecto 2038" (Y2K38 para los amigos) es algo parecido. Posiblemente no acabe afectándonos, hay mucho tiempo para parchear o sustituir los sistemas de 32 bits, pero hoy te vamos a contar por qué existe este problema para que entiendas bien de qué se ha estado hablando, y se seguirá haciendo, cuando se refieren al Y2K38.

El problema del año 2038 se debe a la capacidad máxima de bits con la que que cuentan los sistemas de 32 bits. Estos almacenan memoria y ejecutan sus procesos utilizando 32 dígitos binarios, los cuales pueden representarse por un 1 o un 0, lo que permite permite un total de 4.294.967.296 combinaciones posibles.

Pero hay que tener en cuenta que estas combinaciones pueden ser positivas o negativas, por lo que en realidad los sistemas de 32 bits "sólo" cuentan con 2.147.483.647 valores positivos superiores a cero y otros 2.147.483.648 valores negativos. Un valor negativo más porque el cero ocupa el espacio de los positivos.

Uno de los sistemas que estos procesadores usan para contar el tiempo es el POSIX, que calcula los segundos transcurridos desde el 1 de enero de 1970 a las 00:00:00 UTC. Esto quiere decir, que partiendo de ese 1 de enero de 1970, los ordenadores de 32 bits sólo son capaces de contabilizar las fechas comprendidas entre las 20:45:52 UTC del 13 de diciembre de 1901 hasta las 03:14:07 UTC del 19 de enero del 2038.

Por lo tanto, un segundo después de las 03:14:07 UTC del 19 de enero del 2038 los sistemas de 32 bits ya no serán capaces de contar más, y confundirán la fecha con el 13 de diciembre de 1901, que es la fecha de referencia de 1970 restándole los 2.147.483.647 segundos negativos.