Capítulo 6. Universidad 6.1 Hablar en jeringoso Fui parte del movimiento del software libre durante muchos años, pero no lo sabía. Cuando era estudiante de posgrado, publiqué el código fuente de un proyecto; eso era lo que se hacía en las universidades en 1991. La publicación del código fuente de un proyecto formaba parte de la publicación de un artículo sobre el mismo. Y la academia había puesto la publicación del código bastante alto en su lista de requerimientos. Mi primer gran publicación se produjo en mayo de 1991 cuando hice circular un programa que permitía a la gente ocultar mensajes secretos como texto inocuo. Mi programa convertía cualquier mensaje en una simpática jugada por jugada de un partido de béisbol, como "¡No existe contacto en Mudsville! Es una bola rápida con alas. No hay golpe en esa. Está descorchando lo que parece una bola de saliva. ¡Woooosh! ¡Strike! Es un Out!." El mensaje secreto estaba codificado en la elección de frases. "Es un out!" significaba algo diferente de "Él se lo abre a Orville Baskethands". El programa permitía que la información mutara a otras formas, al igual que los monstruos que cambian de forma de The X-Files. Remití un anuncio al influyente grupo de noticias comp.risks y pronto cientos de personas pidieron copias gratuitas del software. Creé este programa porque el Senador Joe Biden presentó un proyecto de ley en el Senado que requeriría que los fabricantes de todas las redes informáticas proporcionaran una manera para que la policía obtuviese copias de cualquier mensaje. La Oficina Federal de Investigaciones, entre otros, temía tener problemas para obtener pruebas si las personas podían codificar los datos. Mi software ilustró lo difícil que sería detener el flujo de información. La mejor parte - y quizás la más sorprendente - de todo el florecimiento del correo electrónico se produjo cuando un tipo que nunca había conocido, D. Jason Penney, convirtió el programa de ofuscamiento de Pascal en el más popular C. Lo hizo por su cuenta y me remitió el nuevo software convertido de vuelta. Cuando le pregunté si podía distribuir su versión, dijo que era mi programa. Solo estaba ayudando. Nunca pensé mucho más en ese proyecto hasta que comencé a escribir este libro. Si bien dos o tres personas al mes escribían pidiendo copias del software, nunca se convirtió en más que un foco de investigación sobre los fundamentos de los códigos secretos y una pizca de truco matemático. Se trató más un ejercicio académico que un prototipo de algo que pudiera rivalizar con Microsoft y hacerme rico. En el pasado, había pensado que el proyecto nunca se convirtió en más que un lindo juguete porque no existía mercado para él. Como producto no era útil a las empresas, y nadie inicia una empresa sin la esperanza de que millones de personas necesiten desesperadamente un producto. Los proyectos necesitaban programadores y los programadores cuestan dinero. Simplemente supuse que otros proyectos de software libre caerían en el mismo abismo de la falta de financiación. Hoy, tras investigar el mundo del software libre, estoy convencido de que mi proyecto fue un pequeño éxito. La contribución de Penney no fue solo una extraña aberración, sino un evento relativamente común en Internet. Las personas están bastante dispuestas a tomar una pieza de software que les interese, modificarla para adaptarla a sus necesidades y luego devolverla al mundo. Claro, la mayoría de las personas solo disponen de unas pocas horas a la semana para trabajar en tales proyectos, pero se suman. El trabajo de Penney hizo que mi software fuera más fácil de usar para muchos programadores de C, por lo que se difundió aún más. De hecho, es posible que subconscientemente haya estado menospreciando el proyecto. Tomó solo tres o cuatro días de mi tiempo y un poco más del de Penney, pero consistía en una versión completa de un poderoso sistema de encriptación funcional. Claro, no fluía dinero, pero eso puede haberlo hecho más exitoso. Penney probablemente no me habría dado su versión C si hubiera sabido que la iba a vender. Probablemente habría exigido una tajada. Se habrían involucrado abogados. Todo el proyecto se habría enredado con contratos, fechas de lanzamiento, licencias de distribución y otras molestias que simplemente no valían la pena por una manera improvisada de ocultar mensajes. Claro, el dinero es bueno, pero el dinero también trae problemas. 6.2 Efectivo versus compartir En las décadas de 1980 y 1990, los programadores de las universidades aún compartían mucho con el mundo. La noción de compartir el código fuente con el mundo debe mucho a la tradición académica de publicar los resultados para que otros puedan leerlos, pensar en ellos, criticarlos y, en última instancia, ampliarlos. Muchas de las agencias gubernamentales que otorgan subvenciones, como la Fundación Nacional de Ciencias y la Agencia de Proyectos de Investigación Avanzada de Defensa, fomentaron este intercambio al exigir explícitamente que las personas con subvenciones liberasen el código fuente al mundo sin restricciones. Gran parte de Internet fue creada por personas que se sometían a este tipo de contratos e insistían en estándares compartidos que no fuesen propietarios. Esta tradición ha caído en tiempos más difíciles a medida que las universidades se obsesionaron más con las ganancias asociadas con las patentes y la investigación por contrato, pero la idea es tan poderosa que es difícil de desplazar. El Movimiento del Software Libre en particular le debe mucho al Instituto Tecnológico de Massachusetts. Richard Stallman - el hombre al que se atribuye el inicio del Movimiento - comenzó a trabajar en los laboratorios informáticos del MIT en la década de 1970. Se le atribuye el mérito de desencadenar la revolución porque escribió el Manifiesto GNU en 1984. Este documento explicaba en detalle por qué es esencial compartir el código fuente de un programa con otros. Stallman se tomó el asunto en serio porque también practicó lo que escribió y contribuyó con varios programas excelentes, incluido un editor de texto con miles de funciones. Por supuesto, Stallman no se atribuye el mérito de haber tenido la idea de compartir el código fuente. Añora con mucho cariño sus primeros años en el MIT y habla de cómo todos compartían su código fuente y software sin restricciones. Las computadoras eran nuevas, complicadas y temperamentales. La cooperación era la única forma en que se podía lograr algo con ellas. Es por eso que IBM compartía el código fuente con los sistemas operativos en sus mainframes a principios de la década de 1960. Esta tradición comenzó a desvanecerse a principios de la década de 1980 cuando comenzó la revolución de las microcomputadoras. Las empresas se dieron cuenta de que la mayoría de la gente solo quería un software que funcionara. No necesitaban el código fuente y todas las instrucciones que solo los programadores podían leer. Por lo tanto, las empresas aprendieron rápidamente que podían quedarse con el código fuente y mantener a sus clientes relativamente contentos mientras dejaban fuera a la competencia. Eran reyes que construyeron un muro para mantener alejados a los intrusos. El Manifiesto GNU surgió como la reacción más radical a la tendencia de bloquear el código fuente. Mientras que mucha gente observó el Manifiesto GNU con confusión, otros se convirtieron parcialmente. Comenzaron a donar el código que habían escrito. Algunos arrojaron programas de utilidad genéricos al puchero, algunos ofrecieron juegos y algunos enviaron paquetes sofisticados que hacían funcionar impresoras, redes o incluso redes de impresoras. Algunos incluso se convirtieron en discípulos completos y comenzaron a escribir código a tiempo completo para el proyecto GNU. Este crecimiento fue ignorado en gran medida por el mundo, fascinado con el crecimiento de Microsoft. Sin embargo, cada vez más programadores pasaban más tiempo mezclándose con el proyecto GNU, y se estaba afianzando. A principios de la década de 1980, un sistema operativo conocido como UNIX se había vuelto muy popular en universidades y laboratorios. AT&T lo había diseñado y compilado en los Laboratorios Bell durante la década de 1970. Al principio, la empresa compartió el código fuente con investigadores e informáticos de universidades, en parte porque la empresa era un monopolio al que solo se le permitía vender servicios telefónicos. UNIX fue solo un experimento que la compañía emprendió para ayudar a ejecutar la próxima generación de conmutadores telefónicos, que ya se estaban convirtiendo en computadoras especializadas. Al principio, dicho proyecto había solo sido un ejercicio académico, pero toda la investigación y el intercambio ayudaron a crear un buen sistema operativo con una amplia audiencia. UNIX resultó ser bastante bueno. Cuando la compañía telefónica comenzó a dividirse en 1984, la gente de AT&T se preguntó cómo podrían obtener ganancias de lo que había sido una inversión sustancial en tiempo y dinero. Comenzaron pidiendo a las personas que usaban UNIX en las universidades que firmaran acuerdos de confidencialidad. Stallman consideró esto como control mental y la muerte de una gran tradición. Muchos otros en las universidades fueron más pragmáticos. AT&T había dado mucho dinero y recursos a la universidad. ¿No era justo que la universidad devolviera algo? Stallman consideró el punto de forma diferente. Sí, AT&T había sido amable al otorgaba becas a la universidad, pero ¿no eran siempre amables los amos cuando daban monedas de madera a sus esclavos? Para Stallman, la versión binaria que AT&T comenzó a distribuir al mundo carecía de valor real. Sólo los sumos sacerdotes y unos pocos afortunados podía acceder a leer su código fuente. Disfrutaban del caviar y la champaña. Stallman vio a esta fuerza corporativa central y controladora como el enemigo, y comenzó a nombrar su obra con el acrónimo recursivo GNU, que significaba "GNU's Not UNIX". El proyecto GNU tenía como objetivo producir un sistema operativo completo que hiciera todo lo que UNIX hizo sin el costo moral, emocional o ético. Los usuarios podrían leer el código fuente del sistema operativo de Stallman y modificarlo sin firmar un duro acuerdo de confidencialidad redactado por equipos de abogados. Serían capaces de jugar con su software en total libertad. Stallman señala que nunca tuvo como objetivo producir un sistema operativo que no tuviese costo alguno. El mundo puede estar fascinado con la noción de una etiqueta de precio de cero, pero para Stallman, eso fue solo un efecto secundario de compartir sin restricciones. Su sueño era crear un sistema independiente que pudiera hacer todo con software libre, pero aún faltaba mucho para que fructificara, y Stallman fue lo suficientemente inteligente como para comenzar con un proyecto manejable. Comenzó produciendo un editor de texto conocido como GNU Emacs. El programa fue un gran éxito porque era altamente personalizable. Algunas personas solo usaron el programa para editar documentos, pero otras lo programaron para realizar tareas más sofisticadas, como leer su correo electrónico y generar respuestas automáticas. La gerencia le dijo a un programador que tenía que incluir muchos comentarios en su código fuente, por lo que programó GNU Emacs para insertarlos automáticamente. Un profesor creó una versión de GNU Emacs que insertaría automáticamente elogios aleatorios en las solicitudes a su secretaria.[^2] Prácticamente todo en Emacs se podía cambiar o personalizar. Si no le gusta presionar la tecla Suprimir para corregir un carácter mal escrito, puede hacer que la tecla 6 haga lo mismo. Esto podría dificultar la escritura de números, pero el usuario era libre de arruinar su vida tanto como quisiera. [2]: "¿Dónde están esos informes que te pedí que copiaras? Estás haciendo un gran trabajo. Gracias por toda la ayuda", en un día. "¿Alguna vez vas a copiar esos informes? Estás haciendo un gran trabajo. Gracias por toda la ayuda", en el siguiente. Microsoft tardó años en ponerse al día con la solución de Stallman, e incluso entonces la implementaron de una manera peligrosa. Permitieron que las personas crearan pequeños programas personalizados para modificar documentos, pero se olvidaron de evitar los ataques maliciosos. código para hacer estragos. Hoy en día, Microsoft Word permite que pequeños programas llamados virus de macro deambulen por todo el planeta. Abra un documento de Word y un virus podría estar al acecho. En la década de 1980, el mundo del software libre se dedicó a proyectos como este. GNU Emacs se convirtió en un gran éxito en el mundo académico donde los administradores de sistemas podían instalarlo gratis y no preocuparse por contar estudiantes o negociar licencias. Además, las mentes inteligentes pudieron apreciar mejor la genial flexibilidad que Stallman había diseñado en el sistema. La gente inteligente perdía el tiempo agregando filtros al editor de texto que escaneaban su texto y lo traducían a, como, Valley Girl talk o más jive urbano. El proyecto GNU creció al aceptar contribuciones de muchas personas de todo el país. Algunos eran programas bastante sofisticados y llamativos como GNU Chess, un programa ajedrecístico que era bastante competitivo y tan bueno como todos los paquetes excepto los mejores. La mayoría eran herramientas simples para manejar muchas de las tareas diarias para correr un sistema informático. Los administradores de sistemas, estudiantes y programadores de todo el país a menudo aceptaban trabajos pequeños porque se sentían obligados a arreglar algo. Cuando terminaban, algunos enviaban el código fuente al proyecto GNU. El mayor proyecto de programación de Stallman para GNU durante la década de 1980 fue escribir el compilador GNU C (GCC). Este programa fue una herramienta importante pues convierte el código fuente C escrito por humanos en el código máquina comprendido por las computadoras. El paquete GCC fue una piedra angular importante para el proyecto GNU de varias maneras. Primero, es uno de los mejores compiladores que existen. En segundo lugar, podría portarse fácilmente de una máquina a otra. Stallman lo portó personalmente a varias plataformas grandes distintas, tales como la línea de procesadores x86 de Intel. Tercero, el paquete era gratuito, lo que en el caso del software GNU significaba que cualquiera podía usar y modificar el software libremente. El GCC proporcionó un importante efecto armonizador al proyecto GNU. Alguien podría escribir su programa en una máquina construida por Digital, compilarlo con GCC y estar bastante seguro de que se ejecutaría en todas las demás máquinas que tuviesen GCC. Eso permitió que el software GNU migrara libremente por todo el mundo, de máquina en máquina, de Sun a Apollo, de DEC a Intel. La licencia de GCC también atrajo a muchos desarrolladores e ingenieros curiosos. Cualquiera podía usar el código fuente para sus proyectos, y muchos lo hicieron. Con el tiempo, el compilador pasó de una máquina a otra a medida que los usuarios lo convertían. A veces, un ingeniero de la compañía de chips recompilaba el compilador para que funcionara en un nuevo chip. A veces, un usuario haría lo propio como proyecto. En ocasiones, un estudiante lo hacía cuando le atacaba el insomnio. De alguna manera, se movió de una máquina a otra y llevó consigo todo el resto del software GNU. El siguiente gran salto se produjo a principios de la década de 1990 cuando la gente empezó a darse cuenta de que un sistema operativo completamente gratuito era una posibilidad seria. Stallman siempre había soñado con reemplazar UNIX con algo que fuera igual de bueno y acompañado del código fuente, pero era una tarea grande. Fue la razón por la que inició el proyecto GNU. Lento pero seguro, el proyecto GNU fue ensamblando las piezas para que funcionara. Había cientos de pequeñas utilidades y herramientas más grandes donadas al proyecto GNU, y esas pequeñas partes comenzaban a acumularse. El movimiento del software libre también le debe mucho a Berkeley, o más precisamente a un pequeño grupo en el Departamento de Ciencias de la Computación de la Universidad de California en Berkeley. El grupo de hackers incondicionales - que incluía profesores, investigadores asociados, estudiantes graduados y algunos estudiantes universitarios - había desarrollado una versión de UNIX conocida como BSD (Berkeley Software Distribution). AT&T compartió su versión de UNIX con Berkeley, y los programadores de Berkeley arreglaron, ampliaron y mejoraron el software. Estas extensiones formaron el núcleo de BSD. Su trabajo fue en parte experimental y en parte práctico, pero los resultados fueron ampliamente aceptados. Sun Microsystems, una de las empresas de estaciones de trabajo UNIX de Silicon Valley, usó una versión en sus máquinas a principios de la década de 1990 cuando crearon una nueva versión conocida como Solaris incorporando parte del System V de AT&T. Muchos sienten que BSD y su enfoque siguen siendo la base de el sistema operativo. El gran problema fue que el equipo construyó su versión sobre el código fuente de AT&T. La gente de Berkeley y sus cientos - si no miles - de amigos, colegas y estudiantes que contribuyeron al proyecto regalaron su código fuente, pero AT&T no lo hizo. Esto le dio a AT&T control sobre cualquiera que quisiera usar BSD, y la compañía estaba lejos de estar lista para unirse al Movimiento del Software Libre. Se gastaron millones de dólares en la investigación para desarrollar UNIX; la empresa quería recuperar algo de dinero. El equipo de Berkeley se defendió y Keith Bostic - uno de los miembros del equipo central - comenzó a organizar a las personas para escribir el código fuente que podría reemplazar dichos componentes. A principios de la década de 1990, había engatusado a suficientes amigos para lograrlo. En junio de 1991, el grupo produjo "Networking Release 2", una versión que incluía casi toda una versión funcional completa de UNIX. Todo lo que necesitaba hacer era agregar seis archivos para tener un sistema operativo completo. AT&T no estaba contenta. Había creado una división separada conocida como UNIX Systems Laboratory y quería obtener ganancias. El código fuente gratuito de Berkeley representaba una dura competencia. Así que el Laboratorio de Sistemas UNIX la demandó. Esta demanda marcó el final del papel prominente de las universidades en el desarrollo de software libre. Repentinamente, la demanda atrajo la atención de todos y les hizo darse cuenta de que tomar dinero de las corporaciones entraba en conflicto con compartir el código fuente del software. Richard Stallman abandonó el MIT en 1984 cuando entendió que la necesidad de dinero de una universidad finalmente superaría su creencia en el intercambio total del código fuente. Stallman era solo un miembro del personal que mantenía las computadoras en funcionamiento. No era un profesor titular que oficialmente podía hacer lo que se le ocurriera. Entonces comenzó la Free Software Foundation y nunca miró hacia atrás. El MIT lo ayudó al principio cediéndole espacio, pero estaba claro que la relación estaba llegando a su fin. Las universidades necesitaban dinero para funcionar. Los profesores de muchas instituciones tenían cuotas que especificaban cuánto dinero de la subvención necesitaban recaudar. Stallman no estaba ganando dinero regalando su software. Mientras tanto, en la otra costa, la demanda ató a Berkeley y al proyecto BSD durante varios años, y el proyecto perdió energía y tiempo valiosos al dedicarlos a la lucha legal. Mientras tanto, otros proyectos de software completamente libres comenzaron a surgir en todo el mundo. Estos comenzaron en estudios, y dependían de las máquinas que tuviese el programador. Uno de estos proyectos iniciado por Linus Torvalds crecería eventualmente hasta convertirse en Linux, el motor imparable de la exageración y la gloria. No tenía el dinero del departamento de ciencias de la computación de Berkeley, y no tenía las últimas máquinas que les daban las corporaciones. Pero tenía libertad y la pila de código fuente que provenía de proyectos libres y no afiliados como GNU que se negaba a comprometerse y tomar atajos intelectuales. Aunque Torvalds no se dio cuenta en ese momento, lo más valioso de todo resultó ser la libertad.