Volver al WEB de Duiops
Servicios

Drivers

Guías

Reportajes fotográficos

Artículos

Montar un PC

Mejorar un PC

PC de los sueños

Componentes

Microprocesadores

Chipsets

Placas base

BIOS

Discos duros

Tarjetas gráficas

Tarjetas de sonido

Altavoces

CD/DVD-ROM

Grabadoras CD/DVD

Monitores

Discos removibles

Impresoras

Módems

Escáneres

Teclados

Ratones

Joysticks


Volver arriba

 

© 1997-2009 Duiops (http://www.duiops.net)
Prohibida la reproducción parcial o total de los textos o las imágenes

Para comentarios, usa las direcciones e-mail de contacto

El bug del milenio
 Volver arriba Portada - Artículos - El bug del milenio

EL BUG DEL MILENIO

Publicado el 18 de abril de 1999

Por Franklin Cataño Castro

¿Cuál es el problema?

El problema surgió como resultado de una decisión de generaciones anteriores de programadores que, con el fin de acelerar el procesamiento de datos, dispusieron que las cifras correspondientes a los años fuesen presentadas con dos dígitos en lugar de cuatro; por ejemplo, 98 en lugar de 1998. Con ello, muchos programas de informática carecen de las dos primeras cifras para representar los años, y que son indispensables para distinguir entre el año 1900 y el año 2000. Así, los programas que realizan cálculos con base en proyecciones de tiempo podrían dejar de funcionar o presentar resultados incorrectos al iniciarse el año 2000. Ello ocurriría debido a que las máquinas no compatibles "supondrán" que, a fin de siglo, el calendario habrá cambiado del 31-12-99 al 01-01-00 (año 1900). Según algunos pronósticos, más de 50 millones de sistemas informáticos integrados operarán con fecha incorrecta el año 2000, a nivel mundial. El problema afectará principalmente a sistemas dependientes de programas con función horaria y calendario, que van desde los semáforos hasta los reactores atómicos, pasando por los ascensores, cajeros automáticos, equipos quirúrgicos, etc. La dificultad central radica en que resulta muy difícil, incluso para los expertos, prever qué sistemas informáticos funcionarán después del 31.12.1999 y cuales dejarán de hacerlo. Según diversas estimaciones, el costo de solucionar el problema asciende a increíbles 600 mil millones de dólares a nivel mundial. Netscape, líder mundial en el desarrollo de navegadores de Internet, nos muestra un ejemplo de como los sistemas de información realizan cálculos con las fechas:

Cálculo de la edad de una persona nacida en 1970:

  • Hoy: 99-70=29

Normal: 2000-1970=30

Ordenador: 00-70=-70 o 70 (algunos programas solo toman la diferencia)

  • Número de años entre 1998 y 2000:

Hoy: 2000-1998=2 años

Ordenador: 00-98=-98 o 98 años

  • Comparación de fechas:

Normal: 2000 > 1998

Ordenador: 00 < 98

Peter de Jager, considerado por los expertos como la primera persona que se percató de la problemática del Efecto 2000, nos ilustra otro ejemplo en su web: "Nací el 23 de Enero de 1955. Si le pregunto a mi ordenador que edad tengo, restará mi fecha de nacimiento con la fecha actual. Por lo tanto realizará un cálculo similar a 96-55 (recordemos que solo se utilizan dos dígitos para realizar dichos cálculos) y nos devolverá como respuesta, 41 años. La cual desafortunadamente será cierta. El día 1 de Enero del año 2000, el cálculo será exactamente el mismo. Restar la fecha de mi nacimiento con la fecha actual, 00 - 55 y el ordenador proclamará que tengo -55 años. Además, como resultado de este cambio de año pueden producirse desfases en los días de la semana. Hay que tener en cuenta que el 1 de enero de 1900 fue lunes mientras que en el 2000 será sábado, afectando a todo tipo de aplicaciones que utilicen de alguna forma los días de la semana. Por si esto no fuera suficiente el año 2000 es bisiesto mientras que el 1900 no lo fue. Este conjunto de errores, que en principio pueden parecer muy simples, pueden causar el problema socioeconómico más importante de la historia de la humanidad."

Fechas Críticas a comprobar - Técnicas de conversión de fechas

Podríamos decir que hay dos técnicas básicas: la reescritura a cuatro dígitos y la utilización de ventanas. La forma ideal sería sustituir las fechas de dos dígitos (ej: "98") que se encuentran en las aplicaciones y modificarlas cambiando las fechas a cuatro dígitos (ej: "1998"). Está técnica aunque más costosa en tiempo, evitará problemas futuros. Otra técnica consistiría en no modificar las fechas de dos dígitos almacenadas, pero las aplicaciones o el sistema son capaces de relacionar las fechas de dos dígitos con el siglo correspondiente. Por ejemplo identificar el año entre 00 y 29 como siglo 21 y cualquier otro entre 30 y 99 como siglo 20 (ej: "05 -> 2005" "49 -> 1949"). Este método aunque más rápido no garantiza la desaparición de futuros problemas.

Fechas críticas a comprobar

  • 31 diciembre 1998 al 1 enero 1999 Se mantiene la transición correcta de fechas.
  • 27 febrero 1999 al 28 febrero 1999 Se mantiene la transición correcta de fechas.
  • 28 febrero 1999 al 1 marzo 1999 Se mantiene la transición correcta de fechas.
  • 31 agosto 1999 al 1 setiembre 1999 Aparece por primera vez la combinación xx/09/99.
  • 8 setiembre 1999 al 9 setiembre 1999 No existen problemas con la combinación 09/09/99.
  • 9 setiembre 1999 al 10 setiembre 1999 No existen problemas con la combinación 09/09/99.
  • 31 diciembre 1999 al 1 enero 2000 Aparece por primera vez el año 00.
  • 27 febrero 2000 al 28 febrero 2000 El año 2000 se reconoce como bisiesto.
  • 29 febrero 2000 al 1 marzo 2000 El año 2000 se reconoce como bisiesto.
  • 31 diciembre 2000 al 1 enero 2001 Cambio del año 00 al 01.
  • 28 febrero 2001al 1 marzo 2001 El reconocimiento de años bisiestos funciona más allá del 2000.
  • 28 febrero 2004 al 29 febrero 2004 El reconocimiento de años bisiestos funciona más allá del 2000.
  • 29 febrero 2004 al 1 marzo 2004 El reconocimiento de años bisiestos funciona más allá del 2000.

El calendario oficial

El propósito de un calendario es contar el tiempo por adelantado, de demostrar cuántos días tienen que transcurrir para cierto acontecimiento en el futuro. Los calendarios anteriores al nuestro, eran naturalmente basados sobre las estaciones o el ciclo lunar. El calendario de los asirios, por ejemplo, fue basado sobre las fases de la luna. Sabían que una lunación (el tiempo a partir de una luna llena a la siguiente) era 29 días y 1/2 de largo, así que su año lunar tenía una duración de 364 días. Esto se diferenció del año solar por cerca de 11 días. (La época exacta para el año solar es de aproximadamente 365 días, 5 horas, 48 minutos, y 46 segundos) Después de 3 años, un calendario lunar habría fallado por un mes entero, así que los asirios agregaron un mes adicional a partir de ese tiempo y hora para mantener su calendario en sincronización con las estaciones. La mejor aproximación posible en la antigüedad era un período de 19 años, con 7 de estos 19 años que tienen 13 meses. Este esquema fue adoptado como la base para el calendario religioso usado por los judíos. (Los árabes también utilizaron este calendario hasta que Mahoma prohibió cambiarlo de 12 meses a 13 meses.) Cuando Roma emergió como potencia del mundo, las dificultades de hacer un calendario era bien sabido, pero los Romanos complicaron sus vidas debido a su superstición que los números pares eran desafortunados. Por lo tanto sus meses eran de 29 o 31 días de largo, a excepción de febrero, que tenía 28 días. Cada segundo año, el calendario romano incluyó un mes adicional llamado Mercedonius de 22o 23 días para continuar con el año solar. Incluso este algoritmo era muy pobre, de modo que en 45 a.C., Cesar, aconsejado por el astrónomo Sosígenes, pidió una reforma . Por decreto imperial, un año fue hecho de 445 días de largo para coincidirlo con las estaciones. El calendario nuevo, similar al que ahora utilizamos fue llamado el calendario juliano (nombrado después de Julio Cesar) era de 30 o 31 días de largo y cada cuarto año fue hecho un año bisiesto (teniendo 366 días). Cesar también decretó que el año comenzaría con primero de enero, no en el equinoccio de verano el último de marzo. El año de Cesar era 11 minutos y 1/2 menos de los cálculos recomendados por Sosígenes y la fecha del equinoccio de verano comenzó a predominar. Los astrónomos se alarmaron y se envió una nota al papa Clement IV, que no fue impresionado al parecer. El Papa Sixtus IV más adelante se convenció que otra reforma era necesaria y llamó al astrónomo alemán, Regiomontanus, a Roma para aconsejarlo. Desafortunadamente, Regiomontanus murió a consecuencia de la plaga y los planes murieron también. En 1545, el consejo de Trento autorizó al papa Gregory XIII a reformar el calendario una vez más. La mayoría del trabajo matemático fue hecho por Father Christopher Clavius, S.J. La corrección inmediata que fue adoptada fue un jueves, en octubre 4,de 1582. Era el día siguiente viernes, con la fecha de octubre 15. Para mayor exactitud , una fórmula sugerida por el bibliotecario Aloysius Giglio del Vaticano fue adoptada: Dijo que el cuarto año de cada año es un año bisiesto a excepción de los años del siglo que no son divisibles por 400. Así 1700, 1800 y 1900 no serían años bisiestos, pero 2000 sería un año bisiesto puesto que 2000 es divisible por 400. Esta regla elimina 3 años bisiestos cada 4 siglos, haciendo el calendario suficientemente correcto para la mayoría de los propósitos ordinarios. Este calendario se conoce como el calendario gregoriano y es el que ahora utilizamos . (Es interesante observar que en 1582, todos los príncipes protestantes no hicieron caso del decreto papal y así muchos países continuaron utilizando el calendario juliano hasta 1698 o 1752. En Rusia, se necesitó la revolución para introducir el calendario gregoriano en 1918.)

 

EL TIEMPO EN LOS SISTEMAS INFORMÁTICOS:

Existen tres relojes en un sistema informático:

  • El BIOS (hardware)
  • EL RTC BIOS (virtual, se genera en el momento del arranque de un sistema)
  • EL RELOJ DEL SISTEMA (básicamente es un software de sistema operativo)

En el pasado, ha sido una práctica común representar fechas en sistemas informáticos con solamente dos dígitos para el año (por ejemplo, 96 en vez de 1996). Esta práctica era extensa a partir de los años 60 a los años 80 para ahorrar el espacio cuando el coste de discos y de la memoria era relativamente alto. Fue animada por muchos guías de programación y algunas especificaciones comunes tales como ANSI y DoD. Estas clases de programas pueden causar problemas cuando las fechas se proyectan más allá de diciembre del 31 de 1999, y cuando la fecha actual alcanza el año 2000 y más allá. Por ejemplo, la adición de cuatro años a 1997, en tal caso el programa rendiría una fecha errónea de 1901 en vez de 2001. Los problemas del año 2000 pueden también incurrir en pérdida de información del siglo por el uso incorrecto de la fecha del sistema durante conversiones del formato tales como convertir de binario al ASCII. El hardware es el 1% del problema. El 40% del problema son los sistemas operativos. El restante 59% es de los programas o aplicaciones (sean estas comerciales o del usuario) El hardware incluyendo a Pentium III NO es 100% certificable para año 2000. Ningún hardware soporta TRANSICION DE SIGLO. Es decir, puede tener un BIOS que soporte 4 dígitos, pero no existe un sistema operativo que lo soporte. Ningún hardware actual trabaja sin sistema operativo. Por lo tanto la transición de siglo no es posible en esos hardware's "certificados".

El sistema operativo:

Desde DOS, incluyendo UNIX, NT y de mainframes como el OPEN VMS, no están certificados para operar con fechas de 4 dígitos. Algunos sistemas operativos, como UNIX han sido readaptados o parchados, en su versión 4.0D por ejemplo para permitir al usuario simplificar su transición a año 2000 pero nunca solución total al problema de la transición. NT es "un sistema operativo" que permite un 70% de compatibilidad con transición de siglo. DOS es totalmente incompatible con transiciones de siglo o reconocimiento de fechas de 4 dígitos. OPEN VMS , especialmente en su versión para ALPHA cuenta con paks o parches para facilitar las transición de siglo. Estos sistemas operativos se citan a manera de ejemplo, no significa que los que no se mencionan estén certificados o compatibles para transición de milenio, al contrario, digamos que los aquí mencionados son los más ideales para migrar porque permiten mayor compatibilidad y menos esfuerzos para solucionar el problema del año 2000 en nuestros sistemas.

 

LAS APLICACIONES:

Comerciales:

Seguramente todos los proveedores de aplicaciones comerciales tendrán sus respectivas actualizaciones que las compatibilicen con año 2000. Hasta el momento podemos mencionar dos, bastante populares. Clipper (Base de Datos) es actualizable a año 2000 por medio del comando CENTURY a partir de la version5 O mejor. Para quienes tienen aplicaciones basadas en clipper es recomendable migren a la versión 5.0 o mejor. ASPEL, los creadores, del NOI, COI, SAE, etc. están ya casi listos con sus actualizaciones a las que ya están muy acostumbrados sus usuarios.

Nota: No significa que si las aplicaciones comerciales son compatibles con año 2000 ya resolvimos el problema, recordemos que las actualizaciones de aplicaciones no involucran a los sistemas operativos, sino se limitan a simples parches dentro de su propia estructura de programación. Por ello es necesario documentarse al respecto o buscar asesoría profesional e imparcial.

Personales:

Las aplicaciones personales o propias de una empresa, son las de más difícil solución. Aquí involucra en un 100% a todo el personal de sistemas, los cuales deben ser debidamente capacitados para el tratamiento de sus propias aplicaciones con relación al hardware o plataforma, sistema operativo y software de desarrollo o compilación conque cuenten. Es importante señalar que los únicos que pueden certificar sus propios procesos o aplicaciones personales, son los mismos administradores y usuarios de ese sistema. A ellos debe capacitárseles para hacerlo y proveerles herramientas adecuadas y una asesoría totalmente imparcial. (Lo peor para el usuario de determinado sistema es dejarse asesorar por quien le vendió ese producto, porque su asesoría se limitaría al ámbito especulativo de lo comercial ).

 

LA TECNICA:

Un producto para solución año 2000 deberá implementar cuando menos 5 técnicas ya estandarizadas, como:

La expansión

(Modificación de líneas de código) Pero a través de herramientas que permitan seguridad y agilidad al proceso y sólo debe tomarse como medida de contingencia.

La Migración:

El producto debe proveer suficiente información sobre plataformas o sistemas operativos incluyendo aplicaciones migrables que permitan al usuario gastar lo menos posible en soluciones año 2000.Esto es también aplicable solo como proceso emergente.

El ventaneo:

Basada en pivotes de fechas preseleccionadas; es ideal solo para pequeñas empresas.

La codificación: Técnica hexadecimal que consiste en colocar 4 dígitos en solo 2 bytes.

El corrimiento:

Algoritmos para el manejo de los años bisiestos. Además de la implementación de éstas técnicas el producto debe contar con herramientas de validación confiables que le permitan al usuario verificar sus procesos en plena producción no en simuladores, especialmente que sea capas de identificar problemas en procesos ya compatibilizados con año 2000 en la fecha actual. Esto es así porque un sistema que haya sido compatibilizado para fechas de cuatro dígitos debe funcionar como tal en cual fecha del calendario gregoriano (que es nuestro actual calendario oficial) Los productos para soluciones de año 2000 proliferan por doquier. Esto ha generado confusiones en el usuario. Cada producto se presenta como la panacea para solucionar el problema del año 2000. Lo más lamentable es que cuando el cliente se entera que no le cumple como una solución integral Por ejemplo, un buen producto debe corregir los tres relojes, incompatibilidades del hardware y de nuestras aplicaciones comerciales. Debe complementarse con herramientas que nos permitan corregir satisfactoriamente las aplicaciones personales de nuestra empresa.

 

EJEMPLOS DE CASOS REALES

Deficiencias en el Pentágono frente al año 2000

Varios organismos estadounidenses de importancia vital –entre ellos el Pentágono–presentan serias deficiencias de compatibilidad con la transición informática al año 2000. Según un análisis elaborado por MSNBC con base en diversos estudios sobre el tema de la seguridad informática en entidades estatales, el propio Pentágono adolece de serias deficiencias con respecto al cambio de milenio. Al respecto, MSNBC da cuenta de una serie de inspecciones realizadas en los últimos meses en organismos vinculados a la seguridad, cuyas conclusiones serían que existen varias situaciones de riesgo que no han sido totalmente esclarecidas por las autoridades. A modo de ejemplo se señala que la Agencia de Armas Especiales de Defensa, entidad adscrita al Pentágono, y que tiene la responsabilidad de supervisar los aspectos técnicos de una respuesta militar estadounidense frente a una conflagración nuclear, presenta graves deficiencias en su estrategia de contención de "la bomba del milenio".

Fuerzas Armadas rusas no podrán contener la transición al 2000

Prime Media Press (08.06.98): La defensa estadounidense prepara un plan de acción tendiente a evitar una posible catástrofe, que pudiera surgir como resultado de errores de código en sistemas informáticos militares rusos durante la transición al año 2000. Según la información disponible, Rusia aún no ha adoptado medidas efectivas para prevenir tales errores. Al respecto, Reuters escribe que el subsecretario de Defensa de Estados Unidos, John Hamre, declaró al Comité de Defensa del Senado que, en el peor de los casos, tal situación podría resultar en que el poderío atómico ruso fuese puesto en estado de alerta avanzada cuando sus sistemas informáticos queden "colgados" como resultado del cambio de milenio. Por ello, indicó, sería importante elaborar medidas que pudieran convencer a Rusia de que no se tratará de un ataque estadounidense cuando los sistemas informáticos militares colapsen o informen sobre alertas. El plan de acción estadounidense contempla un ofrecimiento directo a Rusia y otros países no especificados, en el sentido de compartir información sobre la materia. Según se indica, tal ofrecimiento probablemente se concretice durante el verano. A pesar del desarme y la distensión de los últimos años, Estados Unidos y Rusia aún tienen, cada uno, alrededor de 2.500 ojivas nucleares en condiciones operativas.

El año 2000 podría dejar en tierra aviones de KLM

Oslo (PM-Press) 13.11.97: La aerolínea holandesa KLM difundió un comunicado de prensa según el cual la compañía considera la posibilidad de cancelar algunos vuelos el día 1 de enero del año 2000 por razones de seguridad atribuibles al "bug" del milenio. Según hemos informado anteriormente, el problema podría resultar en el procesamiento inadecuado de datos en algunos sistemas no compatibles con el año 2000 o, lisa y llanamente, en que estos queden "colgados". Según KLM, su preocupación no se orienta a los aviones propiamente tales, sino a los sistemas informáticos ubicados en los aeropuertos. En su nota, la compañía indica que a pesar de lo anterior es improbable que toda su flota permanezca en tierra el 01.01.2000.

Año 2000: No hay que olvidar los microprocesadores

Prime Media Press (23.04.98): Hasta ahora, quienes se han referido al problema de la transición digital al año 2000 han puesto el acento en la necesidad de actualizar y "parchar" el software cargado en sistemas informáticos críticos. Sin embargo, igual de importante es considerar si los microprocesadores codificados incorporados a tales sistemas son compatibles con el año 2000. Actualmente, a nivel mundial hay aproximadamente 3 mil millones de microprocesadores codificados, y se encuentran, por ejemplo, en tarjetas de crédito, automóviles, todo tipo de artículos electrónicos, etc. Por poner un ejemplo, podemos señalar que una plataforma petrolera moderna tiene alrededor de 10.000 microprocesadores, muchos de los cuales se encuentran a nivel submarino. El problema de la transición digital al año 2000 adquiere cada vez mayor relevancia, en la medida que el calendario se acerca inexorablemente al 31.12.2000 (¿o debemos decir 31.12.00?). Según diversos análisis, a nivel mundial hay gran incertidumbre sobre los problemas que tal transición representa. Al revisar los sistemas propios con miras a actualizarlos y hacerlos compatibles con el año 2000, conviene contactar también a los proveedores de servicios informáticos. En efecto, de poco sirve hacer la parte propia del trabajo si los proveedores colapsan el año 2000. Lamentablemente, muchos creen que el problema del año 2000 no les atañe o que sin duda surgirá una cura milagrosa junto antes del inicio del nuevo milenio. Lo cierto es que, con la información disponible hasta ahora, puede asegurarse categóricamente que tal milagro no ocurrirá.

Internet "cojeará" para el año 2000

Prime Media Press (30.07.98): Internet no escapará a los efectos del "bug" (error de código) del milenio. Sin embargo, un grupo de trabajo al interior de la IETF (Internet Engineering Task Force) considera que los efectos serán mínimos y que no hay mayores razones para preocuparse. El grupo de trabajo estudió las consecuencias que la transición informática al año 2000 tendría para los protocolos con que funciona Internet. Las conclusiones son presentadas en un informe de la empresa Nesser & Nesser Consulting. En el documento se señala que no hay mayores razones para suponer que tales protocolos dejarán de funcionar para el año 2000. Al respecto, Phillip Nasser escribe en una reseña del informe que "se descubrieron algunos casos menores de error en algunas aplicaciones antiguas que continúan representando la fecha con dos cifras. En verdad, para Internet el mayor problema no está representado por el año 2000, sino por el 2038. Ello se debe a que varios protocolos usan enteros de 32 bits para representar el tiempo que va pasando desde el punto cero, que fue el 1ro. de enero de 1970. Tal cifra pasará a ser negativa el martes 19 de enero del año 2038; para ser más exactos, a las 03:14:07. El protocolo HTTP (Hyper Text Transfer Protocol), que regula la transferencia de archivos en la World Wide Web, tiene un formato compatible con el año 2000. El problema, sin embargo, es que el protocolo HTTP 1.1 también acepta formatos más antiguos que no sean compatibles. El anterior estándar para HTML (Hypertext Markup Language), en su versión 2.0, tampoco escapa a los efectos del año 2000. En el informe se indica además que los protocolos para la transferencia de correo electrónico son totalmente compatibles. Lo mismo no ocurre con los protocolos usados en los grupos de discusión, NNTP, TFC 977), que tendrán problemas para manejar el cambio de milenio. IETF es una gran asociación internacional integrada por los diseñadores de Internet, operadores e investigadores. Su objetivo es desarrollar y mejorar los servicios que ofrece la red. El trabajo técnico es realizado por grupos de trabajo creados según temática (transmisión, seguridad, etc.).

     
 

Volver arriba Volver arriba