top of page

El problema del año 2038

Algunos sistemas de software, como bases datos y algoritmos podrían fallar en 2038, pero ¿por qué?




 

En software se utilizan mucho las estampas de tiempo, para registrar acciones en el tiempo, para saber cuándo fue tu última conexión en Whatsapp, o cuándo hiciste un post en Facebook. Una estampa de tiempo es en pocas palabras una fecha, que puede estar en muchos formatos 30-09-2021 13:08:05, 30/09/2021, 09-30/2021, entre otros. Pero fijémonos en que todos estos formatos usan caracteres no numéricos, como /, - o : , esto significó un problema para algunos desarrolladores o sistemas, por lo cuál se desarrolló el formato de timestamp llamado EPOCH.


Este formato solo usa números, sí, es el número de segundos desde un valor de referencia 0 hasta el valor máximo almacenable por la computadora. ¿Y el cero qué fecha es? El valor 0 del formato epoch es la fecha del primero de enero de 1970, ¿Por qué? Porque en 1972 fue lanzado el lenguaje de programación C, y se llegó a estar de acuerdo que el año 1970 fuera declarado el nacimiento de la computación moderna.


Okay, pero, ¿por qué van a fallar las cosas?




Resulta que existen las computadoras o tipos de datos de 32 bits, es decir campos de memoria en los que solo se pueden guardar números entre 0 y 2^31 (dos elevado a la 31, 2147483648) ¿por qué 31 y no 32 si son 32 campos? Porque el último campo está reservado para el signo (+ o -) y así poder guardar números positivos y negativos.


Ajá, ¿y qué pasa con eso? Pues que cuando lleguemos a ese número límite, y el contador quiera aumentar en un segundo, pues va a haber un overflow, se va a saturar, y el campo (bit) reservado para el signo, va a cambiar y pasaremos de estar en el 19 de enero de 2038, a estar en el 13 de diciembre de 1901.


Interesante, ¿cierto?


¿Y luego? Pues que todos los cálculos se harán en sentido contrario, imagínate que en tu publicación de Facebook dice que no la publicaste hace 5 días sino que la publicarás dentro de 50 años?


¿Entonces cómo se evita esto? Simple, no usar campos de 32 bits en los sistemas informáticos, usar campos de 64 bits. El problema es que aún existen muchos sistemas basados en 32 bits. Incluso yo tengo una computadora Lenovo Thinkpad de 32 bits. (Barata, por si a alguien le interesa, necesito venderla antes del 2038).


Espero les haya gustado esta entrada, nos leemos pronto.


No olviden darle corazoncito.





99 visualizaciones0 comentarios

Entradas recientes

Ver todo
Publicar: Blog2_Post
bottom of page