Problema del añu 2038
From Wikipedia, the free encyclopedia
N'informática, el problema del añu 2038 (conocíu tamién pol numerónimo Y2K38) podría causar qu'una parte del software falle nesi añu. El problema afecta a los programes qu'usen la representación del tiempu basada nel sistema POSIX, que se basa en cuntar el númberu de segundos trescurríos dende'l 1 de xineru de 1970 a les 00:00:00 (inorando los segundos entrepolares). Les últimes versiones del kernel Linux empiecen a cuntar dende les 21:00 del 31 d'avientu de 1969. En Android, asocede lo mesmo, yá que utiliza esta versión de kernel, anque nun ye posible escoyer la fecha dende'l menú d'axustes.
![Thumb image](http://upload.wikimedia.org/wikipedia/commons/e/e9/Year_2038_problem.gif)
Esta representación ye un estándar de facto nos sistemes tipu Unix y tamién nos programes escritos pa munchos otros sistemes operativos debíu al gran algame del llinguaxe de programación C. Na mayoría de sistemes de 32 bits, el tipu de datu time_t usáu pa guardar el contador de segundos ye un enteru de 32 bits con signu, esto ye, que puede representar un rangu de númberos ente -2 147 483 648 y 2 147 483 647 (-231 y 231-1; 1 bit pal signu, y 31 pa representar el so valor en complementu a dos), polo que'l postreru segundu representable con esti formatu va ser a les 03:14:07 UTC del 19 de xineru de 2038, cuando'l contador llegue a 2 147 483 647. Un segundu dempués, el contador va enchise y va saltar al valor -2 147 483 648, que va causar el fallu de programes que van interpretar el tiempu como que tán en 1901 (dependiendo de la implementación), en cuenta de en 2038. De la mesma, esto causaría cálculu y procesamientu incorreutu y causaría un problema mundial. Los sistemes que cunten la hora dende (21:00 31/12/1969) llegaren al so tope a les 00:14:07.
Nun hai una forma senciella d'iguar esti problema pa les combinaciones esistentes de CPU/SO. Camudar la definición de time_t pa usar un tipu de 64 bits rompería la compatibilidá binaria pal software, almacenamientu de datos y, polo xeneral, cualquier cosa que tenga daqué que ver cola representación binaria del tiempu. Camudar time_t a un enteru de 32 bits ensin signu afectaría a los programes que faen cálculos con diferencies de tiempu.
La mayoría de sistemes operativos para arquitectures de 64 bits utilicen enteros de 64 bits pa time_t. La migración a estos sistemes ta inda en procesu y espérase que se complete muncho primero de 2038. Usar un enteru de 64 bits retrasaría la fecha del problema unos 2,90 billones d'años (2,9 × 1012). Esto ye, 220 vegaes la edá averada del Universu.