Problema del año 2038 para niños
En el mundo de la informática, existe un desafío conocido como el problema del año 2038. También se le llama Y2K38. Este problema podría hacer que muchos programas de computadora dejen de funcionar correctamente en ese año. Afecta principalmente a los programas que usan una forma de medir el tiempo llamada Tiempo Unix. Este sistema cuenta los segundos que han pasado desde el 1 de enero de 1970 a las 00:00:00 (medianoche).
Esta forma de contar el tiempo es muy común en sistemas como Unix y en programas hechos con el lenguaje de programación C. En la mayoría de las computadoras antiguas de 32 bits, el número que guarda estos segundos es un número entero de 32 bits con signo. Esto significa que puede representar números desde -2.147.483.648 hasta 2.147.483.647. El último segundo que se puede guardar con este formato es el 19 de enero de 2038, a las 03:14:07 UTC. Un segundo después, el contador se "desborda" y salta al número más bajo posible, -2.147.483.648. Esto haría que los programas piensen que están en el año 1901 en lugar de 2038, causando errores importantes.
No es fácil arreglar este problema en las computadoras y sistemas operativos que ya existen. Cambiar la forma en que se guarda el tiempo para usar números de 64 bits podría hacer que muchos programas viejos dejen de funcionar. Sin embargo, la mayoría de los sistemas operativos modernos para computadoras de 64 bits ya usan números de 64 bits para el tiempo. Se espera que la mayoría de los sistemas se actualicen a 64 bits mucho antes de 2038. Usar un número de 64 bits retrasaría este problema por miles de millones de años.
Contenido
¿Qué es el Problema del Año 2038?
El problema del año 2038 es un error potencial en los sistemas informáticos que usan una forma específica de contar el tiempo. Imagina que el tiempo es un contador que empieza en 1970. Este contador tiene un límite. Cuando llega a su número máximo, en lugar de seguir contando, se reinicia al número más bajo posible. Esto hace que las computadoras piensen que están en una fecha muy anterior, lo que podría causar fallos en muchos sistemas.
¿Cómo Funciona el Tiempo en las Computadoras?
Muchas computadoras, especialmente las que usan sistemas tipo Unix, miden el tiempo contando los segundos que han pasado desde el 1 de enero de 1970 a la medianoche. A esto se le llama "Tiempo Unix". Es como un cronómetro gigante que nunca se detiene.
¿Por Qué Ocurre este Problema?
El problema surge porque en muchas computadoras antiguas, este contador de segundos se guarda en un espacio de memoria de 32 bits. Un "bit" es la unidad más pequeña de información en una computadora, como un 0 o un 1. Con 32 bits, solo se puede contar hasta un número limitado: 2.147.483.647. Cuando el contador de segundos llegue a ese número, el 19 de enero de 2038, no podrá seguir contando. Se "desbordará" y volverá a un número negativo, haciendo que la computadora piense que es el año 1901.
Otros Ejemplos de Problemas de Tiempo en la Informática
Este tipo de problemas de "desborde" no son nuevos. Aquí tienes algunos ejemplos:
- Problema del Año 2036 (NTP): Algunos sistemas que sincronizan la hora (como el Protocolo de Tiempo de Red o NTP) podrían tener un problema similar en 2036. Sus contadores de tiempo también tienen un límite, aunque se ha trabajado para solucionarlo en versiones más nuevas.
- Falla en el Boeing 787: Algunos aviones Boeing 787 tuvieron un problema de software donde un contador de centésimas de segundo se desbordaba después de 248 días de uso continuo. Esto obligaba a apagar y reiniciar los sistemas eléctricos para evitar fallos.
- Unidades de Estado Sólido (SSD) de Hewlett Packard Enterprise: Ciertos discos duros SSD tenían un contador de horas de uso que se desbordaba después de 32.768 horas. Esto hacía que los datos no pudieran recuperarse sin una actualización especial.
- Sonda Espacial Deep Impact: En 2013, esta sonda espacial tuvo un error en su contador de tiempo que hizo que sus paneles solares se desorientaran, perdiendo energía y terminando su misión.
- Dispositivos GPS: Algunos dispositivos GPS cuentan el tiempo por semanas en un campo limitado. Esto ha causado que el contador se reinicie dos veces, en 1999 y 2019, haciendo que algunos dispositivos muestren fechas incorrectas.
¿Qué Dispositivos Podrían Verse Afectados?
El problema afecta a programas que usan el sistema de tiempo POSIX, común en sistemas Unix y en programas hechos con el lenguaje C.
- Dispositivos Android: Algunos dispositivos Android antiguos se bloqueaban o no reiniciaban si se intentaba poner la fecha en 2038. Las versiones más recientes de Android (desde la 5.0) ya usan 64 bits y no tienen este problema.
- Dispositivos iOS: Los iPhones más recientes (desde el iPhone 5s) tienen procesadores de 64 bits y no se ven afectados.
- Otros sistemas: Dispositivos con Ubuntu Phone, Ubuntu Touch o Firefox OS de 32 bits también tienen esta limitación. Los dispositivos con Windows Phone 8 no están afectados.
¿Cómo se Está Solucionando el Problema?
La solución principal es que la tecnología está dejando atrás los sistemas de 32 bits y migrando a los de 64 bits.
- Los principales fabricantes de procesadores (como Intel, AMD, Qualcomm) ya ofrecen procesadores de 64 bits.
- Los sistemas operativos también han evolucionado:
- Microsoft ofrece versiones de Windows de 64 bits desde Windows XP, y Windows 11 solo tiene versiones de 64 bits.
- macOS solo tiene versiones de 64 bits desde Mac OS X 10.7.
- GNU/Linux tiene versiones de 64 bits desde 2003.
- iOS usa 64 bits desde iOS 7.
- Android tiene versiones de 64 bits desde la versión 5.0.
Como la mayoría de los sistemas ya están migrando a 64 bits, es poco probable que muchos sistemas de 32 bits sigan en uso en 2038. Si quedaran algunos sistemas antiguos, los fabricantes tendrían tiempo para actualizarlos.
Solución Específica para Linux
Para resolver esta limitación de fecha en el sistema operativo Linux, se tuvieron que hacer muchos cambios en diferentes partes del sistema. Fue un trabajo complejo, especialmente en la forma en que se manejan los archivos y sus fechas. En junio de 2018, se lograron implementar todos los cambios necesarios en el "núcleo" (kernel) de Linux, solucionando el problema para este sistema.
Véase también
En inglés: Year 2038 problem Facts for Kids
- Problema del año 2000
- 4 294 967 295
- 9223372036854775807
- Problema del año 10000
- Error de software
- Network Time Protocol
- Época (informática)