y2k38.docx

3
Problema del año 2038 Animación del efecto 2038. En informática , el problema del año 2038 (conocido también por elnumerónimo Y2K38) podría causar que una parte del software falle en ese año. El problema afecta a los programas que usen la representación del tiempo basada en el sistema POSIX , que se basa en contar el número de segundos transcurridos desde el 1 de enero de 1970 a las 00:00:00 (ignorando los segundos intercalares ). Esta representación es un estándar de facto en los sistemas tipo Unix y también en los programas escritos para muchos otros sistemas operativos debido al gran alcance dellenguaje de programación C . En la mayoría de sistemas de 32 bits , el tipo de dato time_tusado 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 (-2 31 y 2 31 -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 2 147 483 647. 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 (dependiendo de la implementación), en vez de en 2038. A su vez, esto causaría cálculo y procesamiento incorrecto y causaría un problema mundial.

Upload: efrenescobedobecerra

Post on 09-Nov-2015

7 views

Category:

Documents


0 download

DESCRIPTION

problema del año 2038 ...lo que sucedera con los sistemas operativos (todos caeran repentinamente).

TRANSCRIPT

Problema del ao 2038

Animacin del efecto 2038.Eninformtica, elproblema del ao 2038(conocido tambin por elnumernimoY2K38) podra causar que una parte delsoftwarefalle en ese ao. El problema afecta a los programas que usen la representacin del tiempo basada en el sistemaPOSIX, que se basa en contar el nmero desegundostranscurridos desde el 1 de enero de 1970 a las 00:00:00 (ignorando lossegundos intercalares).Esta representacin es un estndarde factoen los sistemas tipoUnixy tambin en los programas escritos para muchos otrossistemas operativosdebido al gran alcance dellenguaje de programacin C. En la mayora de sistemas de32 bits, el tipo de datotime_tusado para guardar el contador de segundos es unentero de 32 bits con signo, es decir, que puede representar un rango de nmeros entre -2147483648 y 2147483647 (-231y 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:07UTCdel 19 de enero de 2038, cuando el contador llegue a 2147483647. Un segundo despus, el contador se desbordar y saltar al valor -2147483648, que causar el fallo de programas que interpretarn eltiempocomo que estn en 1901 (dependiendo de la implementacin), en vez de en 2038. A su vez, esto causara clculo y procesamiento incorrecto y causara un problema mundial.No hay una forma sencilla de arreglar este problema para las combinaciones existentes deCPU/SO. Cambiar la definicin detime_tpara usar un tipo de64 bitsrompera la compatibilidad binaria para el software, almacenamiento de datos y, por lo general, cualquier cosa que tenga algo que ver con la representacin binaria del tiempo. Cambiartime_ta un entero de 32 bits sin signo afectara a los programas que hacen clculos con diferencias de tiempo.La mayora de sistemas operativos paraarquitecturasde64 bitsutilizan enteros de 64 bits paratime_t. La migracin a estos sistemas est todava en proceso y se espera que se complete mucho antes de 2038. Usar un entero de 64 bits retrasara la fecha del problema unos 2,90 billones de aos (2,9 x 1012). Es decir, 220 veces la edad aproximada del Universo. 1Dispositivos afectados 2Vase tambin 3Referencias 4Enlaces externosDispositivos afectados[editar]El problema hace que los dispositivosAndroid(al menos algunas versiones) se bloqueen y no reinicien cuando se cambia la fecha a esa fecha. Para comprobar esto se puede ir a la configuracin de fecha y hora en el dispositivo, y al tratar de cambiar la fecha y hora al 2038; se encontrar con la sorpresa de que solo le permite cambiarlo hasta el 31 de diciembre de 2037.1En los dispositivosiOS7 yWindows Phoneel sistema permite cambiar la fecha hasta el 1 de enero de 2038. Concretamente, el problema afecta a los programas que usan la representacin del tiempo basada en el sistemaPOSIX, que es el explicado en el prrafo anterior. Es la representacin estndar en los sistemas tipoUnixy en todos los programas escritos en el lenguaje de programacinC. La mayora del software actual cae dentro de ese grupo y fallarn, dependiendo de como estn implementados, como si estuviesen funcionando en 1901 o 1970, en vez de en 2038. A pesar de ser un problema bien conocido (los programadores conocen esta limitacin desde la implementacin misma del lenguaje C), no existe una forma sencilla de solucionar este problema. Podra cambiarse el tipo de variable empleado por un entero de 32 bits sin signo, pero esto hara que todos los programas que hacen clculos con diferencias de tiempo fallen. Y reescribir por completo esas aplicaciones es un trabajo enorme, que a veces ni siquiera puede encararse. Tambin puede creerse (errneamente) que, utilizando una variable de 64 bits podramos salir del paso, pero al igual que con las de 32 bits sin signo, se perdera la compatibilidad binaria con el resto del software.