
El bug del 2000
Desde las centrales atómicas hasta la planilla de cálculo en su PC, toda la informática está potencialmente expuesta a un error en el manejo de las fechas a partir del 1º de enero del 2000.
1 minuto de lectura'

El bug del año 2000 o Y2K ( Year 2000 ) es un vasto fenómeno que involucra tanto los sistemas informáticos como toda la tecnología digital. Sin embargo, a poco menos de 200 días para el 1º de enero del 2000, los mitos, leyendas y certezas se confunden entre las voces apocalípticas y las que niegan la cuestión, diciendo que es un invento para hacer dinero.
Como en cualquier orden de la vida, todos los excesos son malos. Por lo tanto, conviene ubicar el problema en su justo lugar.
Desde el punto de vista de los programas (conjunto de instrucciones que ejecutan las computadoras para realizar un trabajo o función), las dificultades son tres: el almacenamiento de fechas utilizando sólo los últimos dos dígitos del año, el cálculo de los bisiestos y campos de fecha con claves o significados especiales.
No sólo el software acarrea inconvenientes, también puede hacerlo el hardware. Específicamente, mediante el reloj interno que poseen las computadoras personales y, mucho más vasto aún, por el conjunto de chips que se conocen como sistemas embebidos, presentes en numerosas máquinas, herramientas y dispositivos de toda índole.
El formato de las fechas
El punto quizá más conocido de esta problemática es el del almacenamiento de las fechas con dos dígitos para el año. Este recurso no fue caprichoso: en los albores de la informática, el costo de la memoria y de los medios de almacenamiento (cintas, discos, tarjetas) era muy alto; por lo tanto, se eliminaron los dos primeros dígitos del año, que se asumían automáticamente como 19 .
La cuestión surge este fin de siglo. Para algunas computadoras, 00 es 1900 y no 2000, por lo que entregarán valores absurdos al utilizar fechas. En el mismo sentido, al realizar cálculos como 2000-1997, en realidad hace 00-97, lo que entrega un resultado de -97, totalmente inconsistente para todo tipo de operaciones que involucren diferencias entre fechas (bancarias en primer lugar).
El tema del año bisiesto tampoco es menor en el caso del 2000, al que muchos sistemas no reconocerían como tal, añadiendo una dificultad más a la problemática general. ¿Cuál? Obviarán el 29 de febrero del 2000.
Para que una computadora procese correctamente las fechas es necesario que tenga en cuenta esta cuestión. Las reglas son: un año es bisiesto si es divisible por 4, pero no lo es si se lo puede dividir por 100, aunque sí lo es si es divisible por 400. Precisamente, en esta última salvedad (poco observada al programar) es la que encuadra el 2000. Por lo tanto, es bisiesto.
Los significados especiales en algunos campos de fecha (por ejemplo, 9/9/99) constituían un recurso muy utilizado para ejecutar alguna tarea específica: una derivación lógica en un programa, un dato susceptible de ser eliminado, etcétera.
Ahora bien, si el problema es éste, ¿por qué resulta tan difícil solucionarlo? Porque los dos dígitos pueden estar en líneas de código de una aplicación, en sistemas operativos, compiladores, consultas, procedimientos, pantallas, tablas, bases de datos, planillas de cálculo y datos almacenados. En otras palabras: miles de millones de líneas de código por revisar. Y, por supuesto, esto se traduce en un enorme esfuerzo de horas/hombre trabajadas y en el correspondiente costo.
Según un estudio de la Information Technology Association of América (ITAA), una institución que reúne a numerosas empresas y especialistas en informática, el Gartner Group, una de las mayores consultoras mundiales en materia de computación, estimó un costo por línea entre 1 y 1,5 dólar, lo que arroja un promedio de 450 a 600 dólares por programa. En síntesis, una empresa de tamaño mediano, en los Estados Unidos, gastó entre 3,6 y 4,2 millones de dólares para encontrar las instrucciones con fechas de dos dígitos. Un caso concreto es el del Chase Manhattan Bank, que calculó en 500 millones de dólares la reconversión de sus sistemas.
La ITAA estima que el costo para solucionar el problema en su país de origen, tanto en el sector privado como en el público, es de 100.000 a 200.000 millones de dólares. En el nivel mundial, la cifra trepa al rango entre 300.000 y 600.000 millones.
Todos bajo sospecha
Otra cuestión que suele simplificarse es respecto de cuáles computadoras y sistemas operativos son afectados y cuáles no.
Por lo general, se da por sentado que no afecta a las PC, a los sistemas basados en UNIX y Apple Macintosh, y que el problema se reduce a los mainframes y computadoras departamentales de las grandes corporaciones y organismos estatales.
Estos grandes equipos instalados desde la década del 50 en muchos países proveen una alta capacidad de procesamiento de grandes volúmenes de datos: jubilaciones, impuestos, facturación masiva, etcétera. Sin embargo, los medios de almacenamiento (temporales o no: memoria, cintas, discos, etcétera) eran limitados y costosos. Por lo tanto, como se dijo, se ahorraba utilizando dos dígitos para el año.
Los sistemas y subsistemas operativos de estos mainframes (MVS, VS, Cics, entre otros) manejan esta convención que se extiende a las aplicaciones y programas escritos, por lo general, en lenguajes como Cobol, Fortran, RPG, etcétera. Por su sintaxis, éstos producen códigos con una gran cantidad de instrucciones, generando miles de millones de líneas por revisar.
Otra cuestión involucrada en la programación para mainframes es la utilización de los dígitos del año como clave de indexación para ordenar los datos en forma cronológica. Si la fecha es errónea, el orden de las bases de datos y la información obtenida en las pantallas o en las impresiones carece de sentido.
Si bien estos últimos dispositivos quizá son los más afectados por el problema, también conviene puntualizar qué sucede con equipos más modernos. En el caso de las PC antes de analizar los programas de base que operan en ellas, es necesario hacer algunas consideraciones respecto de cómo miden el tiempo.
En una PC funcionan dos relojes: uno interno, físico (el real-time clock), que está en el hardware, y otro externo, que gestiona el sistema operativo (software de base). El interno está activo siempre, aunque la máquina esté apagada, sostenido por una batería. Cuando encendemos la PC, el reloj del sistema operativo (externo) se inicializa en función de la fecha y hora del interno, mediante instrucciones contenidas en el BIOS ( Basic Input Output System ) de la plaqueta madre (motherboard), el sistema de órdenes que permite poner en marcha la PC, establecer conexiones con el sistema operativo y con otros dispositivos de hardware.
¿Y cuál es el problema? El reloj interno mantiene la fecha (formato dd-mm-aa ) en la memoria CMOS RAM de la plaqueta madre; sin embargo, el siglo es almacenado en otro contador, que debe ser incrementado automáticamente por el BIOS al pasar de 99 a 00. Si éste no cumple esta función, como ocurre en algunos equipos, el 1º de enero del 2000 será interpretado como el 1º de enero del 1900. De inmediato el error es arrastrado por el reloj externo del sistema operativo, las aplicaciones, etcétera.
Antes de entrar en pánico, los equipos de última generación están preparados para afrontar la cuestión y, si tiene duda sobre su máquina, puede bajar alguna utilidad de prueba (ver cuadro en esta página).
Si la PC resulta no ser compatible, puede instalar un parche de BIOS
compatible para que reconozca el cambio de fecha, o una plaqueta ISA que complemente las funciones del BIOS y ejecute el cambio de siglo. Por ejemplo, la Centurion, de Micro2000 ( http://www.micro2000/centurion.htm ), la Millenium Pro comercializada por Nueva Propuesta ( http://www.nueva-propuesta.com ) o la TimeFix RTC ( http://www.timefixplus.com ), importada por Minx SA.
Entre los sistemas operativos de PC, DOS, Windows 3.X y Windows 95 no son capaces de detectar que el BIOS no modifica los dígitos de la centuria, por lo que las aplicaciones recibirán fechas incorrectas. Si se diera el error de BIOS descripto, DOS asumiría al 1/1/2000 como 4/1/80, año en el que comienza su conteo. Esto se solucionó en Windows 98 y Windows NT 5, que reconoce y soluciona el problema de la inicialización del siglo en su reloj.
Los sistemas basados en Unix, incluido Linux, controlan la fecha y la hora con un contador de segundos que arranca el 1º de enero de 1970. Este contador es de 32 bits, por lo tanto el overflow será la cifra 2.147.483.647, correspondiente al 19 de enero del 2038; a la vista de la crisis actual, mejor será no creer que 38 años es mucho tiempo.
Las Apple utilizan un sistema similar ya desde el modelo Macintosh 128K de 1984. El conteo de los segundos (en octal), en su caso, comienza el 1º de enero de 1904 a las 12 y finaliza el 6 de febrero del 2040 a las 6.28.15. Sin embargo, el panel de control Date & Time del sistema operativo Mac OS sólo permite ingresar fechas hasta el 31 de diciembre del 2019, por un problema de compatibilidad entre las versiones de este software. Los modelos anteriores a los Macintosh, como el Apple II, difieren en su capacidad para soportar la problemática, según el modelo que se trate.
Los chips embebidos
Tanto o más peligroso que la situación de los sistemas informáticos es el de los chips embebidos.
Numerosos procesos industriales y dispositivos (desde una torre de extracción de petróleo en alta mar hasta una videograbadora) cuentan con este tipo de sistemas internos. Esto es, microprocesadores que automatizan alguna tarea, muchas de las cuales son críticas (por ejemplo, el control de la utilización de uranio enriquecido en una central nuclear).
El problema radica en que estos chips también tienen código interno que maneja fechas. Muchos de estos microprocesadores han sido diseñados, fabricados y aplicados hace 20 años o más (careciendo de la documentación adecuada en no pocos casos), y una gran parte se encuentra en lugares prácticamente inaccesibles. Conclusión: no existe certeza respecto de qué pasará con ellos el 1º de enero del 2000. Y su cantidad estimada trepa a los 50.000 millones.
La previsión de las consultoras calcula que entre un 2 y un 7% de estos chips fallarán al cambiar el milenio. Sin embargo, nadie ha sido capaz de cuantificar la cuestión o anticipar qué sucederá. Esto no quiere decir que el mundo se transforme en un caos, aunque, sin duda, existirán problemas.
Como dice Manuel Rodríguez Giavarini, cofundador del Centro de Estudios de Soluciones Informáticas para el Año 2000 (CESIP2000): "Podemos tener controladas las centrales atómicas, pero resulta que una PC 286 olvidada, que funciona como distribuidora en un punto, es la que falla e interrumpe el circuito. Esto se denomina impredecibilidad del error".
¿Cómo afecta esto al ciudadano corriente? Al margen de los servicios esenciales (agua, energía eléctrica, comunicaciones, etcétera) que, de fallar, crearían enormes dificultades para toda la población, es bueno dar un vistazo a los objetos más cercanos.
Uno de los mitos más difundidos sobre el bug del 2000 es que los dispositivos electrodomésticos dejarán de funcionar. Esto no es así: ni su horno de microondas, reloj digital, lavarropas, heladera o televisor quedarán fuera de acción por el cambio de fecha. Sólo tendrán dificultades, probablemente, videograbadoras, relojes y cámaras fotográficas manufacturadas antes de 1988. También entra dentro de la leyenda que muchos automóviles no arrancarán el 1º de enero del 2000. Si bien la actual tecnología de autos y camiones utiliza numerosos chips, éstos no dependen de la fecha para las operaciones esenciales del vehículo (motor, frenos, transmisión, etcétera).
En síntesis, el problema existe aunque muchos lo subestimen, sin duda habrá incidentes e inconvenientes, pero el mundo no detendrá su marcha.






