Año 2038.Tropezando con la misma piedra?

Ya la tenemos liada otra vez con lo de las fechas, según leo en la wiki; en el año 2038 podría haber un fallo en los sistemas Posix, que se basa en contar desde 1 de enero1970 los segundos transcurridos. Este error afectaría a los sistemas programados en C, Unix principalmente, pero también otros; y que sean de 32 bits. Para entonces puede que nosotros humildes mortales asalariados de a pie ya tengamos CPUś de tropecientos núcleos, pero nunca se sabe que empresa, servidor o banco; se le pueda olvidar de actualizar la cafetera de tubos de vacío, haberlos haylos…

La cosa técnica seria tal cual:

“En la mayoría de sistemas de 32 bits, el tipo de dato time_t usado para guardar el contador de segundos es un entero de 32 bits con signo, es decir, que puede representar un rango de números entre -2.147.483.648 y 2.147.483.647 (-231 y 231-1; 1 bit para el signo, y 31 para el valor absoluto), por lo que el último segundo representable con este formato será a las 03:14:07 UTC del 19 de enero de 2038, cuando el contador llegue a 2147483647. Un segundo después, el contador se desbordará, y saltará al valor -2.147.483.648, que causará el fallo de programas que interpretarán el tiempo como que están en 1901 ó 1970 (dependiendo de la implementación), en vez de 2038. A su vez, esto causaría cálculo y procesamiento incorrecto.”

Para los que no quieran calentarse la cabeza, aquí tenéis la explicación gráfica:

La solución, actualizar a sistemas de 64 bits, que retrasaría el problema unos 290 mil millones de años, vamos! que menuda herencia.. y a ver quien se acuerda para entonces :S

Si es que no aprendemos….

Random Posts

votar
Si te ha gustado este artículo y lo encuentras interesante, eres libre de votarlo en bitacoras, para así hacerme mejorar poco a poco y poder seguir adelante con este humilde proyecto
blog comments powered by Disqus