Historia del error de 2000

A finales de los noventa, el mundo estaba preocupado por los sistemas informáticos que estaban a punto de fallar. Los expertos intimidaron que a principios del año 2000 el software no podría procesar correctamente la fecha y el mundo se hundiría en el caos: los sistemas de pago se cerrarían, los intercambios se detendrían, cualquier electrónica fallaría. En realidad, el nuevo siglo llegó sin problemas, las experiencias fueron en vano.



Así percibió la conciencia pública el error del 2000. Por ejemplo, un político británico del Brexit dijo que los temores sobre el impacto económico del papel del Brexit eran similares al pánico del virus del 2000.



El Error del Milenio fue olvidado casi inmediatamente después de 2000. Incluso en publicaciones secundarias, discutieron el error Y2K durante meses, pero ya en los primeros días del nuevo año, la atención al tema se desvaneció. El fascinante cambio en el número de 1999 a 2000 no creó los desastres que tanto atemorizaron. Los escépticos anunciaron que el dinero se desperdició en corregir el error.



Lo que sucede detrás de escena es más importante que las opiniones de los no especialistas. El grado de pánico público realmente superó el nivel que merecía la situación. El peligro real de fallas informáticas en todo el mundo el 1 de enero de 2000 existía y requería la intervención de los desarrolladores de software. Departamentos enteros de programadores han estado solucionando el problema del año 2000 durante años.



Fuente de problemas



En la vida cotidiana, no escribimos los dos primeros caracteres del año; casi siempre son los mismos. Una lógica similar dictaba la regla de ahorrar espacio en las unidades de disco de las primeras computadoras: si el siglo no es importante, se puede descartar. En lugar de ocho dígitos, la fecha se escribe en seis. Los ahorros parecen escasos, pero si hay millones de fechas, entonces la factura va a los megabytes de memoria, que las primeras computadoras tenían pocas.







El libro de 1958 "Tarjetas perforadas sus aplicaciones a la ciencia y la industria" trata principalmente de lectores de tarjetas perforadas electromecánicos. Hacer una bibliografía en una tarjeta perforada estándar de IBM. Las columnas 15 y 16 muestran los dos últimos dígitos del año de publicación. En otro pasaje, el libro motivaselección de un formato de año corto para que la mayoría de las entradas estén destinadas al siglo XX.



La persona nació el 1 de enero de XX20 y murió el 2 de enero de XX20. ¿Vivió una vida plena o murió repentinamente después de dar a luz? Es imposible establecer esto sin contexto, por lo que preguntaremos nuevamente si ha fallecido un hígado largo inusual o un bebé. De manera similar, sin especificar el siglo, la computadora no puede distinguir 2000 de 1900. Esta es la esencia del error Y2K.



Una ilustración simple: la fecha de vencimiento en una tarjeta bancaria se indica como MM / YY, y algunos de los algoritmos más simples de los sistemas de pago verificaron el vencimiento mediante una comparación aritmética de números YYMM. Un contraejemplo de tal algoritmo es cualquier tarjeta válida después de 2000. En 1999, un algoritmo ingenuo invalidará una tarjeta con una fecha de vencimiento del 01/12 hasta diciembre de 2001.



Parece extraño que el mal hábito de acortar el siglo sobreviviera hasta finales de los noventa. A menudo se dice que la fuente de los problemas es el legado de Terry de las primeras computadoras y lenguajes de programación, que por alguna estúpida razón funcionó sin cambios durante casi 40 años. Esto es solo parcialmente cierto: los albores de la era de las computadoras establecieron por primera vez las tradiciones de desarrollo que aún viven hoy. Por ejemplo, el entorno de desarrollo moderno es más ancho que 80 columnas de tarjetas perforadas, pero el límite de 80 caracteres por línea de código se eliminó de Linux hace solo tres meses.



Incluso a finales de los setenta, las características de las computadoras en los negocios seguían siendo modestas. Al mismo tiempo, ya estaban obligados a realizar aplicaciones reales en automatización. Un mainframe con un procesador de 0,9 millones de operaciones por segundo, 1,5 MiB de RAM y 2 GiB de almacenamiento en disco tenía que exprimir de alguna manera 20.000 transacciones por hora de 300 a 500 usuarios simultáneos. Y estas débiles máquinas informáticas cuestan cientos de miles, millones de dólares. Solo en 1990, un gigabyte de datos en un disco duro cayó por debajo de los $ 10 mil.



Y, sin embargo, no todas las empresas pueden permitirse las familias emblemáticas S / 360 , S / 370 o S / 390 . Para clientes más pequeños, IBM ha desarrollado computadoras S / 3 , S / 32 ,S / 34 , S / 36 , S / 38 , AS / 400 con características mucho más modestas. La capacidad máxima de un disco duro de una computadora empresarial IBM System / 32  es de 13 megabytes, en los que debe colocar no solo el código, sino también los datos.







Computadora monousuario IBM System / 32, 1975. La máquina con una pantalla de 6 líneas está diseñada para tareas de nivel contable. Foto: Museo de Historia de la Computación .



En tales circunstancias, la escandalosa hinchazón del nivel XML o JSON simplemente no puede aparecer. ¿Qué tipo de formatos de texto hay? La factura fue a cada byte.



Del mismo modo, la fecha se escribió en Cobol, uno de los lenguajes de programación de aplicaciones empresariales más antiguos. Aquí YY son dos dígitos del año, MM es el número del mes, DD es el día.



01 EMP-HIRE-DATE.
     03 EMP-HIRE-DATE-YY    PIC 99.
     03 EMP-HIRE-DATE-MM  PIC 99.
     03 EMP-HIRE-DATE-DD   PIC 99.


Aquí la fecha se representa como 3 bytes, 4 bits por cada dígito. Cobol es tan antiguo que los números pares que contiene son decimales (a menos que se indique lo contrario, EL USO ES COMPUTACIONAL ).



No hay un campo de fecha estandarizado en Cobol, pero las implementaciones autoescritas todavía estaban guiadas por algo. El código ACCEPT todays-date FROM DATEdevuelve la fecha actual del sistema como un número AAMMDD de 6 dígitos. Si lo comparas con el número de la presentación anterior, es fácil entender si este día ha llegado o no. La función CENTURY-DATE, que devolvió la fecha como un YYYYMMDD de 8 dígitos con el siglo, aparecerá en estándares de idiomas posteriores .



Es conveniente ordenar por la fecha del formato AAMMDD: la comparación de lo que sucedió antes se reduce a una operación aritmética.



Con la llegada del nuevo siglo, la clasificación se romperá: el año 00 debe ser posterior al 99 y no al revés. El número 000101 será menor que 991231, es decir, el 1 de enero de 2000, el programa dirá que aún no ha llegado el 31 de diciembre de 1999. Un intento de calcular el período entre estas fechas devolverá casi 100 años, no 1 día.



Incluso al actualizar sistemas más antiguos, el formato de fecha no se cambió para mantener la compatibilidad con las bases de datos existentes y otros componentes. El programador no pensó que su software se usaría en 20-30 años. Para él, el "error del año 2000" suena incluso más lejano que para nosotros "desbordamiento de tiempo Unix de 32 bits". Esto último sucederá ya en 2038 y se ha corregido en Linux para sistemas de 32 bits solo desde el kernel 5.6. Pero por alguna razón no tenemos prisa por actualizar los enrutadores antiguos.



Parte de la "culpa" reside en la proliferación del código binario-decimal ( BCD ), en el que cada dígito del número decimal se escribirá en 4 bits. El código binario-decimal se debe a la popularidad de la industria bancaria debido a la velocidad y la predictibilidad al redondear números; es imposible en una situación en la que la 0.1 + 0.2respuesta es 0.30000000000000004 . Los contables y financieros se ponen un poco nerviosos cuando aparecen los artefactos de redondeo de números de coma flotante binarios. Por lo tanto, los procesadores para aplicaciones comerciales admitían el procesamiento BCD nativo y había menos necesidad de traducir números entre formas de notación.



Una fecha de 6 dígitos cabrá en 3 bytes. Por supuesto, es más seguro convertir la fecha en un único entero binario. Pero la conversión requerirá operaciones matemáticas complejas: se trata de tablas o ciclos largos. Esto es más difícil que convertir BCD a código decimal en tiempo lineal, a veces incluso con una sola instrucción de máquina proporcionada por el fabricante del chip. BCD agrega solo 1-2 bytes adicionales al registro de fecha, pero elimina 5-10 instrucciones de ensamblaje, que son difíciles de entender y fáciles de confundir.



En los años ochenta, los programadores del mundo de las aplicaciones empresariales del tamaño de un armario estaban cambiando a computadoras personales de escritorio, pero mantuvieron la mentalidad. En las primeras computadoras personales de 8 y 16 bits, fueron recibidos por el conocido soporte de hardware BCD.



Finalmente, algunos de los problemas relacionados con el calendario. Si 2000 es un año bisiesto (es divisible por 400), 1900 no lo es. En el 2000 real, es el 29 de febrero. Si la computadora calcula que son 1900 en el patio, después del 28 de febrero, el 1 de marzo llegará inmediatamente.



Alertas tempranas



La atención pública sobre el error del cambio de siglo fue atraída por el programador canadiense Peter de Jager. En 1978, él, entonces empleado de IBM, notó que una computadora puede tomar dos ceros para 1900. La dirección desestimó la denuncia de Peter: ¿por qué pensar en un problema que no es relevante en los próximos 22 años? Para el año 2000, el error definitivamente se corregirá, le dijeron.



En 1989, la situación no había cambiado. En ese momento, de Jager trabajaba para una empresa que implementaba Professional Office Systems. El 1 de enero de 1990, el sistema "cayó enfermo": en el apéndice se asignó un dígito para el año. Por el bien del experimento, Peter recordó que el año 2000 volvió a cambiar la hora en su computadora personal unos minutos hasta la medianoche del 31 de diciembre de 1999. Diez minutos después, la fecha cambió a 1984.



En 1993, de Jaeger escribió un artículo de tres páginas para Computerworld que lo inició todo. El titular "Doomsday 2000" llevó al año 2000 al centro de atención. Al principio, las coloridas descripciones del desastre inminente no se tomaron en serio, pero a medida que se acercaba el año 2000, de Jager se ganó la reputación de experto en armagedón digital. Desde entonces, Peter se ha ocupado exclusivamente del problema de las fechas.







Portada de la revista Time, 18 de enero de 1999



Sin embargo, las rarezas del procesamiento de fechas en la industria se han notado sin ningún artículo. Martin Thomas, quien dirigió el equipo de corrección de errores Y2K en Deloitte Consulting, describió cómo una cadena de supermercados británica recibió un envío de productos enlatados a fines de la década de 1980. El sistema de contabilidad adoptó una fecha de vencimiento del 01/00 para enero de 1900 y exigió que se eliminara el ilíquido de 80 años.



A mediados de 1997, Chrysler cambió todas las horas de la planta de ensamblaje de Sterling Heights al 31 de diciembre de 1999 para realizar una prueba, lo que trajo muchas sorpresas. Era imposible pagar el salario. El sistema de seguridad simplemente se apagó: nadie podía entrar ni salir.



Al final de la década, las empresas tienen equipos de ingenieros que solo analizan y corrigen el error del año 2000. El problema llegó incluso al nivel interestatal: en 1998, en la cumbre del G8, todos los participantes coincidieron en el peligro de un error. El 19 de octubre de 1998, el presidente de los Estados Unidos adopta la Ley de divulgación de información y preparación del año 2000 . En Rusia, la cuestión de la compatibilidad con el año 2000 estuvo a cargo del Comité Estatal de Comunicaciones e Informatización y una comisión gubernamental especial.



No sin pánico. La popularidad de los escenarios apocalípticos estuvo presente en la mente estadounidense a lo largo de los noventa. Los periodistas y escritores comenzaron con entusiasmo a pintar una imagen del Doomsday digital. Incluso medios de comunicación grandes y de buena reputaciónrecomendado para abastecerse de agua y comida .







Carpetas de correos del año 2000 con elementos de consejos para un ama de casa La



literatura sobre el error del año 2000 abarcaba desde guías de supervivencia detalladas hasta novelas de ficción sobre el mundo después de un colapso informático global. Las obras de ficción pintaban un futuro monstruoso. El 1 de enero, la precipitación cae del cielo en forma de aviones de pasajeros, y en cada planta de energía nuclear hay un Chernobyl local. Los electrodomésticos explotan, el sistema financiero global colapsa, las redes eléctricas y los teléfonos se cortan. Luego, a partir de estos ingredientes, se construye un escenario para la descomposición depresiva de la civilización en una sociedad semifeudal hambrienta con un crimen organizado brutal y desenfrenado.





El corto



protagonizado por Leonard Nimoy explota el popular tema del miedo al error del año 2000. Los manuales del superviviente detallan cómo escapar del declive de la civilización. No dijeron casi nada sobre tratar de arreglar el error y poca discusión sobre la teoría detrás del error 2000. En cambio, los libros fueron directamente a historias de terror y consejos para el mundo después del cierre de bancos y el desempleo desenfrenado. Alguien simplemente recomendó comprar oro. Otros gastaron páginas enumerando artículos y recursos que necesitaban almacenarse con urgencia.



Sin embargo, como recuerdan los trabajadores de las librerías, esta literatura no fue popular y desapareció de los estantes después del inicio de 2000.



Los kits de supervivencia Y2K, probados por empresarios emprendedores, tenían al menos algún valor práctico. Las raciones secas conservarán su valor nutricional independientemente del formato de los datos informáticos, incluso si se venden a un precio inflado, tratando de montar la ola de la histeria.







2000 familia preparada para el apocalipsis de Colorado



Tipos de arreglos



Sumar dos dígitos resuelve el problema durante 8000 años.



01 EMP-HIRE-DATE.
     03 EMP-HIRE-DATE-YR.
          05 EMP-HIRE-DATE-CC    PIC 99.
          05 EMP-HIRE-DATE-YY    PIC 99.
     03 EMP-HIRE-DATE-MM  PIC 99.
     03 EMP-HIRE-DATE-DD   PIC 99.


Pero la duración del récord en Cobol es limitada. Si necesita insertar dos bytes en el centro, tendrá que volver a escribir todo el archivo desde cero en uno nuevo y reemplazar el original con la copia corregida. También será necesario ajustar el código de la aplicación que procesa este archivo. El proceso promete largas pruebas y paradas. No siempre es posible ralentizar la base de datos de esta manera.



Una actualización relativamente pequeña del código del programa no es tan elegante y solo agrega unas pocas décadas de vida, pero consume menos tiempo. Incluso si el año es menos de 50, este es un nuevo siglo XXI.



IF EMP-HIRE-DATE-YY > 50
   MOVE 19 TO PRINT-HIRE-DATE-CC
ELSE
   MOVE 20 TO PRINT-HIRE-DATE-CC.


No todos los datos asumen que las fechas anteriores a 1950 o posteriores a 2050 no sean posibles. En algunos casos, estas "muletas" prolongan la vida útil sólo 20 años. Se volvió a cabo este mes de enero: alguien recibió las facturas a partir de 1920, algunos programas no funcionó.







Un recibo erróneo llegó a principios de enero de 2020. En



algunos casos, Y2K no se corrigió hasta el 10,000, sino durante 9 siglos. Si se almacenaron 3 bytes de la fecha en un número firmado de 4 bits, entonces un dígito encajará en los medios bytes no utilizados para firmar el siglo. Los programas con este parche se ven afectados por el año 2100 o el año 2900.



Una fecha se puede representar como el número de días que han pasado desde un punto en el pasado. El número de días se registra en un número binario de 14 bits. Así que puedes imaginar 16 384 años diferentes. Las restricciones específicas se establecen según la elección de la época.



A veces, el año no se corrigió en absoluto. El formato TLE del Comando de Defensa Aeroespacial de América del Norte describe objetos en órbita terrestre. Hasta ahora, solo se indican en él los 2 últimos caracteres del año. Es curioso que la situación pueda verse influenciada indirectamente por las empresas de Internet por satélite, que planean poner en órbita decenas de miles de naves espaciales. TLE está diseñado para un número de objetos de cinco dígitos, por lo tanto, agotar el conjunto de números requerirá una revisión de todo el formato de datos.



Es comprensible que los detalles de los parches de hardware militar se mantengan en secreto. La mayoría de las veces, los medios de comunicación publicaron informes de una prueba de preparación exitosa para el año 2000 utilizando simuladores y un entorno de prueba especial. A veces se llevaron a cabo pruebas de combate en toda regla. El 1 de mayo de 1999, la Marina de los Estados Unidos lanzó el misil de crucero Tomahawk. El día antes del lanzamiento, la hora del cohete se fijó en el 29 de febrero de 2000, con el fin de comprobar el manejo del año bisiesto al mismo tiempo.







Etiqueta concisa de disponibilidad del equipo para 2000



Pero el regreso a gran escala de programadores veteranos de la jubilación no se produjo. En lugar de la esperada convocatoria de legiones de kobolistas, las empresas a menudo se limitaban a trabajadores a tiempo completo o arreglos subcontratados. En preparación para 2000, las empresas estadounidenses invirtieron miles de millones en la mano de obra de bajo costo de Infosys, Wipro y TCS. Una consecuencia inesperada del año 2000 fue la popularización de empresas de la India. En los próximos años, la subcontratación india se convertirá en la norma.



Vida después de las 23:59:59 del 31 de diciembre de 1999



Solo el 7% de los estadounidenses estaba muy preocupado por el error Y2K. Una encuesta en diciembre de 1999 mostró que sólo uno de cada cinco planeaba abastecerse de efectivo. Alguien tenía miedo de volar el último día del año. Peter de Jager dice que voló el 31 de diciembre para mostrar la seguridad de los parches.



La mañana del 1 de enero fue una sorpresa "desagradable". No hubo cortes de energía, las transacciones financieras aún se realizaban con regularidad, un error informático no inició los misiles balísticos intercontinentales. El conteo de residuos comenzó de inmediato. Es difícil nombrar la cantidad exacta, aunque el propio de Jager estima que el costo mundial es de 300 a 400 mil millones de dólares. Algunos bancos, dijo, gastaron hasta $ 100 millones.



La crítica todavía tenía una base. Las comisiones y los expertos se exageraron y prometieron lo irrealizable.



El mundo no ha caído por culpa de microcircuitos incorregibles en los que el año está representado por dos caracteres. Entre ellos se encuentran los chips BIOS de algunas computadoras y muchos microcontroladores. Hay demasiados, todo no se puede reemplazar, afirmó la historia de terror. De hecho, los expertos del Y2K generalmente no tenían experiencia en desarrollo de hardware; en el mejor de los casos, entendían el software. No pensaron que la traducción y comparación de fechas simplemente no ocurre en estos microcircuitos.







Se planeó que los carteles del año 2000 de Geek Squad al estilo de las películas de los años cincuenta B se colgaran en las paradas de autobús, pero simplemente no se requería marketing adicional. Foto: Best Buy .



Otro escenario aterrador involucró el desarrollo de una cascada de fallas, que se extendió de un programa a otro y se extendió a componentes listos para el año 2000. En realidad, si un subsistema devuelve erróneamente el año 1900, entonces el otro, interactuando con él, pasará el año 1900 más allá, dará un error o marcará el año incorrecto.



Es fácil imaginar que los aviones, preparados para el año 2000 y vulnerables al error de 2000, debido a un día bisiesto no registrado el 29 de febrero de 2000, reciben permiso de una computadora para aterrizar en el mismo carril. Pero en una aplicación web, una entrada incorrecta en la base de datos no comenzará a recorrer todo el sistema como un virus.



El profano no se sintió preparado para un error, ni una noche de insomnio en el cambio de siglo para los equipos de soporte técnico, ni las consecuencias de los sistemas sin parches. Los testigos presenciales y los líderes de los equipos de eliminación del Y2K recuerdan fallas menores, pero nada catastrófico o incluso particularmente interesante. Algunos de los involucrados en corregir el error atribuyen el bajo número de informes de fallas a empresas que simplemente no quieren pregonar sus propias fallas.



Algunos de los problemas aún se filtraron a los medios. Aquí hay algunos fallos informáticos. Ninguno de ellos amenazaba vidas humanas.



  • . , . . . .
  • - . Y2K, .
  • . CyberCash.  — . Apple. 700 .
  • . , . Golden 1 Credit Union 31 1999 .
  • Los proveedores de software de escritorio a menudo solo parchean las versiones más recientes. Por ejemplo, Access versión 2.0 (1994) y anteriores no maneja correctamente fechas posteriores a 2000. Esto último fue desagradable para los usuarios de Windows 3.0, en los que las versiones más nuevas de Access tuvieron un peor desempeño. Por otro lado, este sistema operativo ya estaba fuera de uso en ese momento.


Además de problemas menores, los medios informaron casos curiosos.



  • El primer recién nacido en 2000 en Dinamarca se registró como de 100 años.
  • Un cliente de alquiler de videos de la ciudad de Nueva York devolvió la cinta de The General's Daughter a tiempo, pero recibió una multa de $ 91,250 por un retraso de un siglo. El error se solucionó de inmediato.
  • La transferencia de 6 millones de dólares con fecha 30 de diciembre de 1899 llegó a la cuenta bancaria de un residente de Alemania. La historia guarda silencio sobre cuánto tiempo resistió como millonario.
  • El sistema policial, afectado por un error de 2000, convirtió a los adolescentes en ancianos. Los informes del crimen informaron sobre acoso sexual de una mujer de 83 años por parte de un hombre de 80 años y dos adolescentes desaparecidos de 83 y 84 años.


Hay al menos un error médico grave debido a un error del año 2000. En una de las regiones de Inglaterra, unos meses después del año 2000 , se observó un número inusualmente alto de niños nacidos con síndrome de Down. El programa de evaluación estimó incorrectamente la edad de 154 mujeres embarazadas e identificó incorrectamente el grupo de riesgo para estudios de anmiocentesis posteriores. En total, las madres con un grupo de bajo riesgo definido incorrectamente tuvieron 4 hijos con síndrome de Down. Debido a una evaluación inexacta del alto riesgo, se realizaron 2 abortos por error.






En el nuevo milenio, el mundo se olvidó de inmediato del error informático de manejar las fechas. Solo las pegatinas de "Cumple con el año 2000" le recordaban, que estaban pegadas al equipo listo para el nuevo siglo.



Exteriormente, el error del 2000 difiere poco de cambiar la visualización de las oficinas de cambio de cuatro a cinco caracteres cuando cae el rublo. Ajustar la fecha a cuatro dígitos parece una solución económica pequeña, aunque costosa.



Se gastaron cientos de miles de millones de dólares para corregir el error. Sin las obvias consecuencias desastrosas, el esfuerzo del parche Y2K parecía redundante e innecesariamente caro. Los expertos se excusaron de que el problema existía y se solucionó. Algunos simplemente estaban contentos con la atención del público a la infraestructura crítica y las actualizaciones.



Los eventos en los que terminan las señales han sucedido y continuarán sucediendo en el futuro. El cambio de las redes IPv4 a IPv6 tiene como objetivo librar al mundo de la escasez de direcciones de Internet. Algún día se agregará un dígito más a los números de teléfono. El 19 de enero de 2038 para los sistemas Unix sin parche será el 1 de enero de 1970 o, debido al uso de una variable firmada, el 13 de diciembre de 1901.



Cualquier proyecto de información tiene limitaciones. Pero esto no debe ser temido Si el sistema va más allá de sus supuestos inherentes, esto solo indica su popularidad no planificada.







Basado en materiales de Stack Exchange , Stack Overflow , Archivos del Departamento de Defensa de EE. UU. ( 1 , 2 ), CelesTrak ( 1 , 2 ),Popular Mechanics , blog de Chris Weston , How-To Geek , Mental Floss , BBC , cs.swarthmore.edu , Fast Company , Inc.com , Computerworld , Cnet y Slate .



All Articles