El Manifiesto GNU fue escrito por Richard Stallman en los comienzos
del Proyecto GNU, con el fin de pedir participación y apoyo. En los primeros
años, se hicieron actualizaciones menores para tomar en cuenta nuevos
desarrollos, pero ahora parece ser mejor dejarlo como esta tal y como la
mayoría de la gente lo ha visto. Desde entonces, hemos aprendido que es
posible ayudar a evitar ciertas confusiones corrientes con un cambio en la
selección de palabras, a lo largo de estos se han añadido notas al pie de
página para aclarar estas confusiones.
GNU, que significa Gnu No es Unix, es el nombre de un sistema de software
completamente compatible con Unix que estoy escribiendo para poder
regalarlo2 libremente a
quien pueda utilizarlo. Hay varios voluntarios ayudándome. Son muy necesarias
las contribuciones en tiempo, dinero, programas y equipamiento.
Hasta el momento tenemos un editor de texto Emacs con Lisp para escribir
comandos de edición, un depurador de código fuente, un generador compatible
con yacc, un comunicador y alrededor de 35 utilidades. Un shell (intérprete de
comandos) se encuentra casi terminado. Un nuevo compilador portable de C ha
sido compilado y será lanzado este año. Existe un kernel inicial pero requiere
muchas más características para emular a Unix. Cuando el núcleo y el
compilador estén completos, será posible distribuir un sistema GNU apropiado
para el desarrollo de programas. Usaremos el procesador de documentos TeX,
pero también se está trabajando en un nroff. Usaremos también el sistema libre
de ventanas X que se puede migra. Después de esto agregaremos un Lisp
portable, un juego Empire, una hoja de cálculo y cientos de otras cosas,
además de documentación en línea. Esperamos proporcionar, con el tiempo, todas
las utilidades que vienen normalmente con un sistema Unix, y más.
GNU será capaz de ejecutar programas de Unix, pero no será idéntico a Unix.
Haremos todas las mejoras que sean convenientes y estén basadas en nuestra
experiencia con otros sistemas operativos. Concretamente, planeamos tener
nombres de archivos más largos, números de versión de archivos, un sistema de
archivos a prueba de caídas, tal vez incorporemos un sistema para completar
nombres de archivos, soporte en pantalla independiente del tipo de terminal y
quizá en un futuro un sistema de ventanas basado en Lisp a través del cual
varios programas Lisp y programas ordinarios Unix puedan compartir una sola
pantalla. Tanto C como Lisp estarán disponibles como lenguajes de
programación. Intentaremos soportar UUCP, Chaosnet del MIT y otros protocolos
para comunicación en Internet.
GNU está siendo escrito inicialmente para máquinas de la clase 68000/16000 con
memoria virtual, porque éstas son las máquinas en las que es más sencilla su
ejecución. El esfuerzo adicional para hacerlo funcionar en máquinas más
pequeñas se dejará a alguien que quiera utilizarlo en ellas.
Para evitar una horrible confusión, por favor pronuncie la «G» en la palabra
«GNU» cuando se refiera al nombre de este proyecto.3
Considero que la regla de oro requiere que si a mi me gusta un programa, lo
debo compartir con otra gente que le guste. Los vendedores de software quieren
dividir a los usuarios y seducirlos, haciendo que cada usuario acuerde no
compartir su software con otros. Yo rehúso a romper mi solidaridad con otros
usuarios de esta manera. No puedo en buena conciencia firmar un acuerdo de no
divulgación o un acuerdo de licencia de software. Durante años trabajé dentro
del Laboratorio de Inteligencia Artificial para impugnar estas tendencias y
otras descortesías, pero al final ellos fueron demasiado lejos: no podía
permanecer en una institución donde hiciera estas cosas en contra de mi
voluntad.
De manera que para poder continuar usando ordenadores sin vergüenza, he
decidido agrupar un cuerpo suficiente de software libre de tal manera que
pueda seguir andando sin ninguna clase de software que no sea libre. He dejado
el laboratorio de IA para negar al MIT cualquier excusa legal que me prohíba
distribuir software GNU.
Unix no es mi ideal de sistema, pero no es del todo malo. Las características
esenciales de Unix parecen ser buenas y pienso que puedo añadir lo que le
falta a Unix sin echarlas a perder. Un sistema compatible con Unix sería
conveniente para que otras personas puedan adoptarlo.
GNU no es de dominio público. Todos tendrán permiso para modificar y
redistribuir GNU, pero a ningún distribuidor se le permitirá restringir su
redistribución posterior. Es decir, no estarán permitidas modificaciones
propietarias. Quiero asegurarme de que todas las versiones de GNU permanezcan
libres.
Por qué quieren cooperar muchos otros programadores
He encontrado muchos otros programadores que están entusiasmados con GNU y
quieren ayudar.
Muchos programadores están descontentos con la comercialización del software
de sistema. Puede permitirles ganar más dinero, pero por lo general les hace
sentirse en conflicto con otros programadores, en lugar de sentirse como
compañeros. El acto fundamental de amistad entre programadores es el hecho de
compartir programas; los acuerdos de marketing usados de forma generalizada
esencialmente prohíben a los programadores tratar a sus semejantes como
amigos. El comprador de software debe escoger entre la amistad y la obediencia
a la ley. Naturalmente, muchos deciden que la amistad es más importante. Pero
aquellos que creen en la ley a menudo no se sienten bien con ninguna de las
dos opciones. Se vuelven cínicos y piensan que la programación es sólo otra
forma de hacer dinero.
Al desarrollar y utilizar GNU en lugar de programas propietarios, nosotros
podemos ser hospitalarios con todos y obedecer la ley. Además, GNU sirve como
ejemplo de inspiración y como bandera para conminar a otros a unirse a
nosotros en el acto de compartir. Esto puede darnos una sensación de armonía
que es imposible cuando utilizamos software que no es libre. Porque para cerca
de la mitad de los programadores con quienes he hablado, este es un motivo de
felicidad importante, que el dinero no puede reemplazar.
Estoy pidiendo a los fabricantes de ordenadores que donen equipos y dinero.
Estoy pidiendo donativos en forma de programas y trabajo.
Una consecuencia que esperable si donas equipos es que GNU se ejecutará en
ellos desde una etapa temprana. Las máquinas deberán estar completas, con los
sistemas listos para su uso, probadas para uso en áreas residenciales y no
requerir ventilación o fuentes de energía sofisticadas.
He encontrado que muchos programadores están ansiosos de contribuir trabajando
a tiempo parcial para GNU. Para la mayoría de los proyectos esta distribución
de trabajos a tiempo parcial sería muy difícil de coordinar. Pero para la
tarea particular de reemplazar Unix no existe este problema. Un sistema
completo en Unix contiene cientos de utilidades, cada una de las cuales se
documenta por separado. Casi todas las especificaciones de la interfaz han
sido fijadas para ser compatibles con Unix. Si cada colaborador puede escribir
un sustituto compatible para una sola utilidad Unix, y hacer que funciones
apropiadamente en lugar del programa original en un sistema Unix, entonces
estas utilidades funcionarán correctamente cuando sean reunidas. Incluso
permitiendo que Murphy5 origine algunos problemas inesperados, el ensamblaje de estos
componentes será una tarea factible. (El kernel va a requerir una comunicación
más estrecha y un grupo más pequeño y unido trabajará en él).
Si obtengo donativos de dinero, estaré en condiciones de contratar unas
cuantas personas a tiempo completo o a tiempo parcial. El sueldo no será alto
en relación al estándar de los programadores, pero estoy buscando a gente
para quien la construcción de espíritu comunitario tenga tanta importancia
como hacer dinero. Considero esto como una manera de dar oportunidad a gente
interesada para que dediquen todas sus energías a trabajar en GNU, evitando la
necesidad de ganarse la vida de otra manera.
Por qué se beneficiarán todos los usuarios de ordenadores
Una vez que se haya escrito GNU, todos podremos obtener un buen sistema de
software libre, al igual que obtenemos aire.6
Esto significa mucho más que el simple ahorro del precio de una licencia Unix.
Significa que se evitará mucho del derroche de esfuerzos en la duplicación de
la programación de sistemas. Este esfuerzo puede enfocarse mejor para hacer
avanzar el estado de la técnica.
Los códigos completos del sistema estarán disponibles para todo el mundo. Como
resultado, un usuario que necesite modificar el sistema será siempre libre de
hacerlo por sí mismo, o de contratar a cualquier programador o empresa
disponible para hacerlo por él. Los usuarios no estarán ya a merced de un
programador o una empresa que sea dueña del código fuente y que sea la única
en posición de realizar modificaciones.
Las escuelas podrán proporcionar un ambiente bastante más educativo, animando
todos los estudiantes a estudiar y mejorar el código del sistema. En el
laboratorio de programación de Harvard solían tener la política de que ningún
programa podía ser instalado en el sistema si su código fuente no estaba a
disposición del público; la ejercitaban a base de negarse a instalar ciertos
programas. En buena medida, yo me inspiré en esto.
Finalmente, el lastre de considerar quién es dueño de qué sistema de software
y de lo que está o no está permitido hacer con él, habrá desaparecido.
Los acuerdos para obligar a la gente a pagar por utilizar un programa,
incluyendo la licencia de copias, siempre incurren en un tremendo coste para
la sociedad por los aparatosos mecanismos necesarios para determinar cuánto
—esto es, qué programas— debe pagar una persona. Sólo un estado policial
puede forzar a obedecer a todo el mundo. Considérese una estación espacial en
donde el aire debe fabricarse con un gran coste: cobrar a cada respirador por
litro de aire quizá sea justo, pero el uso continuo de una máscara de aire con
medidor todo el día y toda la noche sería intolerable, aunque todos pudieran
permitirse pagar su consumo de aire. Tener cámaras de televisión por todos
lados para ver si se quita uno la máscara sería el colmo. Es mejor costear la
planta de aire con un impuesto por persona y desechar las máscaras.
Copiar por completo o una parte de un programa es tan natural para un
programador como respirar y le es igual de productivo. Debiera ser igualmente
libre.
Algunas objeciones fácilmente rebatibles a los objetivos de GNU: