"Només sobreviuen els paranoics." - Andy Grove (expresident d'Intel)

Sembla ser que ja han descobert un altre pet! Estil el que ja va passar al 2000 amb els PC’s, però aquesta vegada amb Linux. Es veu que el 2038 tots el programes fets amb C i que utilitzin la variable time_t  tindran greus problemes.... a continuació us deixo la informació.

Martes, 19 de Enero de 2038. Hora: 03:14:07 GMT. Si los programadores Linux tienen pesadillas, son por está fecha y hora. Inmediatamente después de que pase ese segundo, las computadoras actuales corriendo Linux  se apagarán o entrarán en un bucle. Esto confundirá a muchas bases de datos. No, esto no es otro hoax llevado a cabo por un despacho anti-Linux. Es la propia pesadilla Y2K de Linux.

Si te preguntas que es este bug 2038, tendrás que conocer algunos tecnisísmos. La falla tiene su origen en al forma en que en lenguaje C, que ha sido usado para escribir Linux, calcula el tiempo. C usa el tipo de dato 'time_t' para representar fechas y horas. ('time_t' es un entero que cuenta el número de segundos desde las 12:00 a.m. GMT, del 1 de Enero de 1970.)

Este dato es almacenado en 32 bits, o unidades de memoria. El primero de estos bits es usado para el signo positivo o negativo, y los 31 restantes son usados para almacenar el número. El número más alto que estos 31 bits pueden almacenar es el 2147483647.

Calculado desde el día 1 de Enero de 1970, este número representaría la fecha y hora del año 2038 dada al inicio de la nota. Los problemas saldrán a relucir cuando los sistemas de tiempo de computadoras corriendo Linux alcancen este número. No puede seguir adelante y su valor cambiaría a -2147483647, que traducido es 13 de Diciembre de 1901. Eso llevará a muchos programas a regresar errores o simplemente a dejar de funcionar.

Esto es más dañino que el bug YK2. Eso es porque el Y2K solo involucraba aplicaciones críticas como pago de tarjetas de crédito y gestión de inventarios. el bug 2038. por otro lado, afecta la función básica del tiempo.

"Supongo que el mayor problema sería en el campo de embebidos, donde el software no es cambiado tan frecuentemente, si no es que nada. Controladores de proceso, ruteadores, teléfonos móviles, consolas de juego, switches y demás serán las principales víctimas," dice Raju Mathur, consultor y presidente del grupo de usuarios GNU/Linux de Delhi, en India.

Sin embargo, dice que con el paso con el que cambia la tecnología, la mayoría de los sistemas para esa fecha, el 2038, no usarán sistemas de 32-bits.

Pero, ¿que hay del presente? Muchas aplicaciones corriendo Linux podrían estar haciendo cálculos para fechas de aquí a treinta años, para cálculos de seguros y mortandad, y podrían regresar mensajes de error antes del día señalado. El problema se podría expandir porque más y más corporativos están migrando a Linux debido a la mejor seguridad que ofrece.

¿Como puede ser resuelto este problema? Los programas Linux modernos podrían usar plataformas de 64-bits o almacenamiento de datos de tipo time_t más grandes. Para los sistemas existentes, la forma en que el lenguaje C almacena datos de tipo time_t podría ser cambiada y entonces todos los programas podrían ser recompilados. Por supuesto, es más fácil decir que hacerlo.

"Debe haber millones, si no es que billones de líneas de código en C que usan el tipo de dato time_t. Localizarlas, cambiarlas, actualizar sistemas embebidos, en mi opinión es una tarea imposible," dice Mathur.

Joomla templates by a4joomla