SAN FRANCISCO
El torneo anual de ajedrez del Pacífico comienza esta semana en el Moscone Conference Center. Es la tercera edición de este torneo, en el que toman parte humanos y ordenadores. Este año, los organizadores han anunciado la participación del vigente campeón mundial, Dragan Zivojinovic. Es la primera vez que el campeón interviene en un torneo
abierto,
que cuenta con la presencia de máquinas además de seres humanos. El gran maestro serbio, que ostenta el título desde hace dos años, no ha realizado declaraciones.
Incluso yo sabía que la última frase no era del todo cierta. Los ordenadores habían destrozado a los grandes maestros humanos en partidas rápidas desde principios de los noventa.
En cualquier caso, ya podía adivinar el motivo del pánico. El programa de George debía de estar inscrito en ese torneo y estaba infectado con un virus o un gusano informático. Apagué el ordenador y fui al teléfono para desconectar la rellamada automática. En el mismo segundo en que lo hice, empezó a sonar. Levanté el auricular.
—¿Michael? -dijo George. Su suave acento de Luisiana seguía siendo el mismo, pese a los años que llevaba viviendo en California.
—Hola, George.
—¡Mike! ¡Hace horas que intento localizarte! Estás comunicando desde hace una hora, de modo que pensé que estabas en casa. Te he estado llamando con la rellamada automática todo este tiempo.
—¡No me digas! Yo también lo he estado haciendo durante la última hora. Por eso ambos teléfonos comunicaban.
—Ah… Bueno, no me gusta nada molestarte con mis problemas, pero…
—Los problemas son mi trabajo -repliqué.
George se rió entre dientes.
—Es de Raymond Chandler, ¿verdad? Me gusta. Es sentimental, pero así eres tú.
—¡Sabelotodo!
—Sea como sea, ahora que te he encontrado, déjame que te explique por qué te estaba llamando…
—Has inscrito un programa de ajedrez en el abierto del Pacífico y crees que tiene un parásito.
—¿Qué? ¿Cómo lo sabes?
—Una conjetura afortunada. Supongo que tu equipo está interesado en mis servicios de consultoría.
—¡Sí! ¿Puedes venir enseguida?
—¿Puedes pagarme, o lo hago como un favor personal?
—¡Demonios, claro! Tenemos el patrocinio de una empresa. Al fin y al cabo, no lo sabes todo.
—¡Vaya! ¿Te refieres aTokoyo?
—Estás tan bien informado que casi me das miedo. Escucha, te pagaremos y además lo consideraré un favor personal. ¿Cuándo llegarás?
—Déjame ver.
Volví a encender el ordenador y me conecté con un servicio de reserva de billetes de avión.
—American Airlines tiene un vuelo desde La Guardia a las tres y diez. Si me voy ahora, llegaré justo antes de que despegue.
—¡Estupendo! ¿No tienes que hacer el equipaje?
Miré de reojo las maletas que acababa de traer de Londres.
—Ya lo he hecho -respondí.
Menos de dos horas después, me encontraba en el asiento de un avión en dirección a la costa Oeste. Delante de mí había una pequeña bolsa que contenía diversos objetos que no quería que la compañía aérea pudiese extraviar. Tenía una maleta sobre las rodillas en la que llevaba mi laboratorio móvil antivirus: un ordenador portátil con CD-ROM y módem. Algunas personas me preguntan por qué sigo llevando un portátil cuando los nuevos ordenadores de tipo cuaderno y los de bolsillo son tan ligeros, compactos y potentes. En primer lugar, me gusta tener un auténtico teclado. Los chicles son fantásticos para masticar, pero horribles para teclear sobre ellos. Por otra parte, mi portátil tiene tres coprocesadores que me permiten trabajar con cualquier sistema operativo en uso; ¿quién puede hacer lo mismo con un ordenador de bolsillo?
Cuando ya estábamos en el aire, llamé de nuevo a George para que me diese más detalles.
—Goodknight es un programa de inteligencia artificial diseñado para que se enseñe a sí mismo a jugar al ajedrez – me explicó.
—De acuerdo, picaré: ¿cómo se supone que lo hace?
—Del mismo modo que los grandes maestros humanos: estudiando las partidas de los mejores jugadores. Tiene unas rutinas de lógica difusa para evaluar los movimientos y las posiciones, y revisa las rutinas basadas en lo que ha aprendido. Goodknight puede analizar una partida en unos quince minutos, y ha estado analizándolas continuamente durante casi un año.
—¿Hay muchos libros que pueda estudiar?
—Desde luego, todos los que quiera. Además, disponemos de los números atrasados de
Chess Life and Review.
Puedes mirarlo de esta forma: Goodknight es un organismo que devora partidas de ajedrez. Asimila los movimientos buenos y excreta los malos.
—¿Excreta?
—Es una manera de hablar.
—¿Cómo se está portando en el torneo?
—Ganamos las dos primeras rondas, pero contra adversarios bastante flojos: un programa antiguo y un humano de renombre internacional.
—Entonces, ¿cuál es el problema?
—Por alguna razón, la velocidad de Goodknight se ha ralentizado; no lo bastante como para tener problemas de tiempo en las dos vueltas iniciales, pero no funciona como antes.
—¿Estás seguro de que no es un problema de hardware? -pregunté.
—Eso fue lo que yo dije, pero nuestros técnicos nos aseguraron que todos los componentes físicos funcionan a la perfección. La única manera de saberlo con certeza sería purgar todo el programa, probar el hardware y rearrancar, pero no disponemos de tanto tiempo.
—¿De cuánto disponéis?
—La tercera tanda comienza mañana a las diez de la mañana.
Medité sobre lo que George me había explicado de Goodknight. Era la primera vez que me encontraba en una situación así; habitualmente asesoro a empresas que tienen problemas con el software comercial a causa de gusanos o virus, o sea, pequeños programas o fragmentos de programa que pueden infectar un programa mayor. No existe un único término genérico que abarque todas las clases de programas parasitarios y autorepetitivos.
Bugs
[1]
habría sido un buen vocablo, pero ya estaba reservado (un
buges
un error de programación). Yo los llamo
animalejos.
Pueden ocasionar todo tipo de desgracias en los programas que los hospedan, desde efectos prácticamente inocuos, como la aparición de mensajes groseros en la pantalla, hasta enormes pérdidas de datos.
¿Cuál es la diferencia entre un virus y un gusano? Depende de quién esté hablando. Según unos, un virus es un programa que debe infectar a otro para que sea posible la reproducción; en cambio, un gusano puede sobrevivir y reproducirse de manera independiente. Otros definen el virus como un programa que infecta a otros sistemas, mientras que un gusano puede permanecer en el mismo sistema pero causa un patrón característico de pérdida de datos
(rastro del gusano).
Según el primer par de definiciones, los gusanos y los virus son categorías mutuamente excluyentes; de acuerdo con el segundo, sin embargo, un único programa puede ser virus y gusano al mismo tiempo. Para rematar la confusión (suponiendo que el lector todavía esté siguiendo esta explicación), ambos términos suelen utilizarse de forma indiscriminada.
Lo expondré de manera más sencilla: en primer lugar, empecemos por hacer caso omiso del párrafo anterior. Éstas son mis definiciones: un virus es un programa parásito que se propaga a través de los soportes magnéticos, y, en consecuencia, siempre que se traslada un disquete de un sistema a otro se puede estar transmitiendo un virus; un gusano también es un programa parásito, pero se propaga a través de las conexiones de una red.
Desde hace ya varios años, todos los nuevos paquetes de software de gran tamaño tienen rutinas antivirus integradas; son, por así decir, sistemas de información inmunizados. Quien crea que esta iniciativa ha limitado mi campo de trabajo debe pensarlo dos veces: todavía circula mucho software viejo, e incluso los nuevos sistemas se infectan de vez en cuando. Además, en un software reciente, una infección suele ser un asunto especialmente delicado, mucho más de lo que los programadores de la compañía pueden afrontar. Y aquí entra en escena su seguro servidor, el intrépido cazador de virus.
Una pega de tener rutinas antivirus y antigusanos incorporadas en el programa o en el sistema operativo es que reducen un poco la velocidad; el microprocesador debe pasar cierto tiempo ejecutando la rutina antivirus (por lo general, examinando mandatos sospechosos, como, por ejemplo, instrucciones de formateo de bajo nivel, o comprobando los códigos de autoidentificación del programa). En la mayoría de los casos, es un precio aceptable, que hay que pagar por gozar del nivel de protección que se ofrece a cambio. Sin embargo, en determinadas aplicaciones, como los programas de ajedrez de nivel de competición, la velocidad es demasiado importante para sacrificarla. Los programadores procuran no exponer el programa a ninguna fuente potencial de contaminación, como disquetes o cualesquiera tipos de soporte de datos que se hayan utilizado en otros sistemas operativos, y hacen que el sistema sea accesible sólo a través de unos pocos terminales dedicados. Por lo general, con esto basta; sin embargo, como denota el caso actual, a veces no.
George aceptó venir a buscarme al aeropuerto y llevarme a Palo Alto. Nos despedimos y colgué. Quería dormir un poco en el avión. Estaba despierto desde las siete de la mañana, hora de Londres, que equivalía a la una de la madrugada en la zona horaria de la costa atlántica y a las diez de la noche en la costa del Pacífico. Esto quería decir que ya llevaba veintisiete horas despierto. Intenté ponerme cómodo en los estrechos confines de mi asiento de clase turista, un lecho digno de Procusto
[2]
, pero me fue imposible. Además, la mujer del asiento de al lado no dejaba de roncar.
Aterrizamos en San Francisco a las cinco y veinticinco de la mañana, hora local. Tenía la desesperada necesidad de ducharme y comer algo, pero habría canjeado ambas cosas por una noche de sueño apacible en una cama mínimamente cómoda. George me esperaba a la salida. Tenía más o menos el mismo aspecto que la última vez que lo vi: lo bastante alto para descollar en la atestada terminal, ojos azules, quijadas angulosas y parecía que necesitaba dormir tanto como yo. En la universidad, su altura y su incipiente calvicie habían originado chistes acerca de que estaba creciendo a través de su cabellera. Una de las diferencias entre el aspecto que presentaba entonces y el de ahora era que ya no tenía un principio de calvicie, sino que era un calvo prematuro.
George me estrechó la mano con un vigor que desmentía su apariencia cansina. Añadió unas innecesarias palmadas en mi espalda tras las que, aún no sé cómo, conseguí mantenerme en pie.
—Me alegro de verte, Mike -dijo-, aunque tienes un aspecto deplorable. ¿Hiciste la promesa en cuaresma de no volver a dormir?
—Como si la hubiera hecho. Tú tampoco tienes muy buen aspecto.
—He pasado toda la noche en vela. No dejes que me duerma al volante en el camino de regreso a Palo Alto.
—Recuerdo tu forma de conducir. Tal vez mejoraría si lo hicieras durmiendo.
Ambos nos reímos, lo que indicaba lo agotados que estábamos. A continuación, nos dirigimos al área de recogida de equipajes. Veinte minutos después se me habían pasado las ganas de reír mientras contemplaba cómo desfilaban las últimas maletas por la cinta transportadora. La mía no estaba entre ellas.
Informé a los empleados de la compañía aérea de que me faltaba una maleta y les di la dirección y el número de teléfono de George en Palo Alto. Luego fuimos al aparcamiento a buscar el decrépito Dodge Charger; a la salida, George se puso una gorra con el emblema de los Saints de Nueva Orleans con la que pretendía proteger su calva del sol de California.
—¿Todavía esperas que ese equipo gane alguna vez? -le pregunté.
—No sin contar con una intervención divina -contestó sonriendo-, pero éste podría ser el año en que se produjera.
—Todo es posible.
Antes de tomar la autopista 101 hacia Palo Alto, nos detuvimos a desayunar en un restaurante próximo al aeropuerto. Era la primera vez que tomaba algo distinto de la comida de avión -perdón por la contradicción de términos- desde el día anterior por la mañana. Después de desayunar un zumo de naranja,
waffles,
bacon y tres tazas de café, volví a sentirme casi como un ser humano. Las tres tazas me obligaron a ir a los servicios antes de reanudar el viaje. Alguien había puesto un adhesivo en la pared del lavabo que decía: «Jesús vuelve». Debajo, otro había escrito: «¡Disimula!».
Cuando volví a la mesa para reunirme con George, observé que no era el único calvo del restaurante; en la barra había tres tipos vestidos con chaquetas de cuero y adornados con tatua|es y
piercing.
La gama de sus peinados iba desde el estilo de indio
mohawks a skinhead,
mientras que entre los tatuajes podían distinguirse serpientes, calaveras y esvásticas. Aquello, por desgracia, resultaba cada vez más habitual, pero no fue lo que me llamó primeramente la atención. Lo más llamativo era que el del peinado al estilo
mohawk
se había tatuado la cifra 666 en el cráneo. Bestial
[3]
.
Cuando George y yo volvimos al coche, le dije:
—Ahora que ya me funcionan algunas sinapsis, quiero hacerte algunas preguntas.
—No estoy seguro de que pueda decir lo mismo -respondió, encogiéndose de hombros-, pero hazlas
—¿Qué clase de hardware utilizáis?
—Ninguna cosa rara, porque nuestro patrocinador no fue tan generoso. En este torneo hay algunas máquinas realmente espectaculares, como dispositivos paralelos en masa, y cosas así. Y eso en cuanto al hardware más reciente, porque los programas más antiguos funcionan en máquinas dedicadas superrápidas. Nuestro patrocinador sólo nos dio un Tokoyo IV de segunda mano. Probablemente, tenemos la única máquina del torneo que funciona con MABUS/2K y software comercial.
—Parece una locura -comenté, sorprendido.
MABUS/2K (acrónimo de Macrobyte Utilization System/2000) era posiblemente el sistema operativo estándar en el sector industrial, pero de ninguna manera cabía verlo funcionar en algo tan exótico como un ordenador que juega al ajedrez de competición.
—No, sí piensas desarrollar un programa comercial de ajedrez; esperamos inscribir nuestra criatura en la Harvard Cup este otoño.