GNU Linux Canaima
GNU Linux Canaima
GNU fue lanzado por Richard Stallman (rms) en 1983, como un sistema operativo que sería
organizado por personas que trabajan juntas por la libertad de todos los usuarios de
software para controlar su computación. rms sigue siendo el Jefe de la GNU hoy.
El objetivo principal y continuo de GNU es ofrecer un sistema compatible con Unix que
sea 100% software libre . No 95% gratis, no 99.5%, sino 100%. El nombre del sistema,
GNU, es un acrónimo recursivo que significa No Unix de GNU, una forma de rendir tributo
a las ideas técnicas de Unix, mientras que al mismo tiempo dice que GNU es algo
diferente. Técnicamente, GNU es como Unix. Pero a diferencia de Unix, GNU da libertad a
sus usuarios.
Miles de personas se han unido para hacer de GNU el éxito que es hoy, y hay muchas
maneras de contribuir , tanto técnicas como no técnicas. Los desarrolladores de GNU se
reúnen de vez en cuando en reuniones de hackers de GNU , a veces como parte de
las conferencias de LibrePlanet de lacomunidad de software libre .
GNU ha sido apoyado de varias maneras por la Free Software Foundation , la organización
sin fines de lucro también fundada por rms para defender los ideales de software
libre. Entre otras cosas, la FSF acepta asignaciones de derechos de autor y exenciones de
responsabilidad, por lo que puede actuar en los tribunales en nombre de los programas
GNU. (Para ser claro, contribuir con un programa a GNU no requiere transferir los
derechos de autor a la FSF. Si asigna los derechos de autor, la FSF aplicará la GPL para el
programa si alguien lo viola; si mantiene los derechos de autor, la aplicación estará a la
altura de tú.)
El objetivo final es proporcionar software gratuito para hacer todos los trabajos que los
usuarios de computadoras desean hacer, y así hacer que el software propietario sea cosa del
pasado.
El nombre «GNU» se eligió porque satisfacía unos cuantos requisitos. En primer lugar, era
un acrónimo recursivo para «GNU No es Unix». En segundo lugar, era una palabra real.
Por último, era divertido de decir (o cantar).
Al inicio de los años ochenta casi todo el software era privativo, lo que significa que tenía
dueños que prohibían e impedían la cooperación entre usuarios. De ahí que fuera necesario
el Proyecto GNU.
Decidimos hacer el sistema operativo compatible con Unix porque el diseño en general ya
estaba probado y era portable, y porque la compatibilidad facilitaba a los usuarios de Unix
el cambio de Unix a GNU.
¿Hasta dónde puede llegar el software libre? No hay límites, excepto cuando leyes como el
sistema de patentes prohíben el software libre. El objetivo final es el de proporcionar
software libre para realizar todas las tareas que los usuarios de ordenadores quieran llevar a
cabo, y lograr así que el software privativo sea cosa del pasado.
El Proyecto GNU
por Richard Stallman
Publicado por primera vez en el libro Open Sources. Richard Stallman nunca ha apoyado el
«código abierto» («open source»), pero contribuyó con este artículo para que en el libro no
estuvieran totalmente ausentes las ideas del movimiento del software libre.
Por qué ahora es más importante que nunca insistir en que el software que usamos debe ser
libre.
El colapso de la comunidad
La situación cambió drásticamente a comienzos de los años ochenta cuando la
empresa Digital interrumpió la fabricación de la serie PDP-10. Su arquitectura, elegante y
poderosa en la década de los sesenta, no podía adaptarse de forma natural a los amplios
espacios de direccionamiento ya factibles en los años ochenta. Por consiguiente, casi todos
los programas que integraban el sistema ITS resultaban obsoletos.
Los modernos ordenadores de aquella época, como el VAX o el 68020, tenían sus propios
sistemas operativos, aunque ninguno de ellos era software libre: había que firmar un
acuerdo de no divulgación incluso para obtener una copia ejecutable.
En otras palabras, el primer paso para poder utilizar un ordenador era prometer que no se
ayudaría al prójimo. Se prohibía la existencia de una comunidad cooperativa, y los dueños
del software privativo establecieron la siguiente norma: «si compartes con tu prójimo, eres
un pirata. Si quieres algún cambio, tendrás que rogarnos que lo hagamos».
La idea de que el sistema social del software privativo —un sistema que impide la práctica
de compartir o modificar el software— es antisocial, contrario a la ética, sencillamente
incorrecto, puede sorprender a algunos lectores. Pero ¿qué otra cosa podríamos decir de un
sistema cuyo fundamento es la disgregación y la indefensión de las personas? Es probable
que estos lectores den por supuesto el sistema social del software privativo, o que lo
juzguen en función de los términos planteados por las empresas que desarrollan software
privativo. Los distribuidores de software se han esforzado mucho y durante mucho tiempo
para convencernos de que no existe otra manera de abordar el tema.
Cuando los distribuidores de software hablan de «ejercer» sus «derechos» o de «acabar con
la “piratería”», lo que dicen es en realidad secundario. El verdadero mensaje se esconde en
suposiciones tácitas que ellos dan por sentadas, y pretenden que el público las acepte sin
cuestionamientos. Vamos a examinarlas.
Una de las suposiciones es que las empresas de software tienen el derecho natural e
incuestionable a poseer el software, y por lo tanto a detentar el poder sobre todos los
usuarios (si se tratara de un derecho natural, no podríamos objetar nada,
independientemente del perjuicio que esto causara al público). Lo interesante es que la
Constitución de los Estados Unidos de América y el derecho tradicional rechazan este
punto de vista. Elcopyright no es un derecho natural sino un monopolio artificial impuesto
por el Estado que limita el derecho natural de los usuarios a copiar.
Una tercera suposición es que no dispondríamos de software útil (o que nunca tendríamos
un programa para realizar tal o cual tarea en particular) si no le otorgáramos a una empresa
la facultad de ejercer poder sobre los usuarios del programa. Esto puede haber sonado
plausible antes de que el movimiento del software libre demostrara que se puede desarrollar
muchísimo software útil sin necesidad de ponerle cadenas.
La opción más fácil era unirme al mundo del software privativo firmando acuerdos de no
divulgación y prometiendo no ayudar de mis compañeroshackers. Es muy probable que
también hubiera tenido que programar software que se entregaría bajo acuerdos de no
divulgación, incrementando así la presión para que otras personas también traicionaran a
sus compañeros.
Podría haber ganado dinero de esa manera, y tal vez me hubiese entretenido escribiendo
código, pero sabía que al final de mi carrera echaría la vista atrás y vería los muros que
habría construido para dividir a las personas, sentiría que había usado mi vida para hacer
del mundo un lugar mucho peor.
Ya había estado del lado de los que padecen los efectos de los acuerdos de no divulgación.
Fue cuando alguien se negó a entregarnos, a mí y al laboratorio de inteligencia artificial del
MIT, el código fuente del programa de control de nuestra impresora (la ausencia de ciertas
funcionalidades en ese programa convertía el uso de la impresora en una experiencia
sumamente frustrante). De modo que no podía engañarme a mí mismo pensando que los
acuerdos de no divulgación fuesen inofensivos. Monté en cólera cuando aquel individuo se
negó a compartir con nosotros; no podía cambiar mi posición y hacerle lo mismo a todos
los demás.
Así que comencé a meditar sobre la manera en que un programador podría hacer algo para
bien. Me pregunté: «¿Existe algún programa o programas que yo pueda escribir para
resucitar a nuestra comunidad?».
La respuesta fue clara: lo primero que se necesitaba era un sistema operativo. Ese es el
software crucial para comenzar a usar un ordenador. Con un sistema operativo se pueden
hacer muchas cosas; sin él, el ordenador ni siquiera funciona. Con un sistema operativo
libre, podríamos armar una nueva comunidad de hackers e invitar a todos a unirse. Y
cualquiera podría utilizar un ordenador sin tener que conspirar desde el principio para
privar de esta posibilidad a sus amigos.
Como programador de sistemas operativos tenía las aptitudes necesarias para esa labor, y
aunque no podía estar seguro de lo que lograría, me di cuenta de que había sido elegido
para realizarla. Opté por hacer el sistema compatible con Unix para que fuera portable, y
para facilitar el cambio a los usuarios de Unix. Siguiendo una tradición de los hackers, se
eligió el nombre «GNU» como acrónimo recursivo de «GNU No es Unix» (GNU's Not
Unix). Se pronuncia en una sola sílaba: ñu.
Un sistema operativo no implica solo un núcleo, apenas suficiente para ejecutar otros
programas. En los años setenta, todo sistema operativo digno de llamarse así incluía
programas tales como procesadores de comandos, ensambladores, compiladores,
intérpretes, depuradores, editores de texto, gestores de correo y muchos otros. ITS los tenía,
Multics los tenía, VMS los tenía, y Unix los tenía. El sistema operativo GNU también los
incluiría.
(1) Como ateo, no sigo a ningún líder religioso, pero a veces admiro algo que ha dicho uno
de ellos.
La libertad para ejecutar el programa como usted desee y para cualquier propósito.
La libertad para modificar el programa con el fin de adaptarlo a sus propias necesidades
(para poder ejercer esta libertad en la práctica, usted debe tener acceso al código fuente; si
no se dispone del código fuente, la tarea de incorporar cambios en un programa resulta
extremadamente difícil).
La libertad para redistribuir copias, ya sea gratuitamente, ya sea a cambio de una suma de
dinero.
La libertad para distribuir versiones modificadas del programa, de modo que la comunidad
pueda beneficiarse de las mejoras introducidas.
Dado que nos referimos a la libertad y no al precio, no existe contradicción alguna entre la
venta de copias y el software libre. De hecho, la libertad para vender copias es crucial: las
colecciones de software libre que se venden en CD-ROM son importantes para la
comunidad, y es una buena manera de recaudar fondos para el desarrollo de software libre.
Por lo tanto, si no se tiene la libertad para incluir un programa en dichas colecciones, ese
programa no es software libre.
Me respondió burlonamente, diciendo que la universidad era free, pero no el compilador [2].
Por lo tanto, decidí que mi primer programa para el proyecto GNU sería un compilador
multilenguaje y multiplataforma.
Para evitar tener que escribir todo el compilador desde cero, obtuve el código fuente del
compilador Pastel, que era multiplataforma y había sido desarrollado en el Lawrence
Livermore Lab. El compilador soportaba y estaba escrito en una versión ampliada de
Pascal, diseñada para usarse como lenguaje de programación de sistemas. Le agregué una
interfaz para C y comencé a adaptarlo al ordenador Motorola 68000, pero tuve que
abandonar la idea al descubrir que el compilador necesitaba demasiados megabytes de
espacio, mientras el sistema Unix 68000 admitía solo 64k.
Emacs de GNU
Comencé a trabajar en Emacs de GNU en septiembre de 1984, y a principios de 1985 ya
comenzaba a ser utilizable. Esto me permitió empezar a utilizar sistemas Unix para las
tareas de edición. Como nunca me interesó aprender a usar vi ni ed, hasta entonces había
editado en otro tipo de máquinas.
Podría haberles dicho: «Busca un amigo que esté en la red y que te haga una copia». O
podría haber hecho lo mismo que hiciera con el Emacs original para PDP-10, decirles:
«Envíame una cinta y un sobre prefranqueado y con tu dirección, te lo devolveré por correo
con una copia de Emacs». Pero como no tenía trabajo y estaba buscando la manera de
ganarme la vida con el software libre, anuncié que enviaría la cinta a quien me la pidiera a
cambio de ciento cincuenta dólares. Fue así que inicié una empresa de distribución de
software libre, precursora de las que hoy en día distribuyen enteros sistemas GNU/Linux.
¿Un programa es libre para cualquier usuario?
Si un programa es software libre cuando sale de las manos del autor, esto no significa
necesariamente que seguirá siendo software libre para todos los que posean una copia del
mismo. Por ejemplo, el software de dominio público (software que no está sujeto a
copyright) es software libre, pero cualquiera puede tomarlo y hacer a partir de él una
versión modificada privativa. Lo mismo ocurre con muchos programas libres que están
sujetos a copyright pero se distribuyen bajo simples licencias permisivas que autorizan el
desarrollo de versiones modificadas privativas.
Los desarrolladores del sistema de ventanas X no consideraban que esto fuese un problema,
esperaban y buscaban que sucediese. Su meta no era la libertad sino solo el «éxito», medido
en función del número de usuarios. No les preocupaba si esos usuarios tenían libertad o no,
solo que fueran numerosos.
Esto condujo a una situación paradójica: dos maneras distintas de medir el grado de libertad
daban por resultado dos respuestas distintas a la pregunta «¿Es libre este programa?». Si se
juzgaba en base a la libertad que otorgaban las cláusulas de distribución de la versión
publicada por el MIT, se podía decir que X era software libre. Pero si se medía la libertad
del usuario medio de X, se podía concluir que X era software privativo. La mayoría de los
usuarios de X utilizaba las versiones privativas que venían con los sistemas Unix, no la
versión libre.
La idea central del copyleft es que le otorgamos a todo el mundo el permiso para ejecutar el
programa, copiarlo, modificarlo y redistribuir versiones modificadas; pero no le damos
permiso para añadirle restricciones por su cuenta. De esta manera, las libertades cruciales
que definen el «software libre» quedan garantizadas para todo aquel que posea una copia;
estas libertades se transforman en derechos inalienables.
Para que el copyleft sea efectivo, las versiones modificadas también deben ser libres. Esto
garantiza que toda obra basada en la nuestra quedará disponible para la comunidad si
llegara a publicarse. Cuando los programadores que trabajan como empleados en el campo
de la programación se ofrecen como voluntarios para mejorar software de GNU, es el
copyleft lo que impide que sus empleadores les digan: «No puedes compartir esos cambios
porque los queremos usar para crear nuestra versión privativa del programa».
La exigencia de que los cambios deben ser libres es esencial para preservar la libertad de
todos los usuarios del programa. Las empresas que privatizaron el sistema de ventanas X,
generalmente realizaron algunos cambios para adaptarlo a sus sistemas y a su hardware.
Estos cambios fueron pequeños comparados con la envergadura de X, pero no triviales. Si
hacer cambios fuera una excusa para denegar libertad a los usuarios, cualquiera podría
fácilmente aprovecharse de esa excusa.
La mayor parte de los ingresos de la FSF provenía de la venta de copias de software libre y
otros servicios relacionados: CD-ROM con código fuente, CD-ROM con los binarios,
elegantes manuales impresos (todos con la libertad para redistribuirlos y modificarlos) y
distribuciones de lujo con toda la colección de software lista para usar en la plataforma
preferida del cliente). Hoy en día la FSF continúa con la venta de manuales y otros
artículos, pero obtiene la mayor parte de su financiación de las cuotas de los socios. Puede
unirse a la FSF en fsf.org.
Los empleados de la Free Software Foundation han escrito y se han encargado del
mantenimiento de una serie de paquetes de GNU. Dos ejemplos significativos son la
biblioteca C y la consola. Todo programa que se ejecuta en un sistema GNU/Linux utiliza
la biblioteca C de GNU para comunicarse con Linux, el núcleo; fue programada por Roland
McGrath, un miembro del personal de la Free Software Foundation. La consola que se usa
en la mayoría de los sistemas GNU/Linux se denomina «BASH», acrónimo de Bourne
Again SHell (1), y fue desarrollada por Brian Fox, también empleado de la FSF.
Hoy en día existen corporaciones que ponen en práctica cada uno de esos tipos de actividad
comercial con software libre. Algunas distribuyen colecciones de software libre en CD-
ROM; otras ofrecen asistencia técnica a varios niveles, desde responder a las preguntas de
los usuarios y corregir errores en los programas, hasta añadir nuevas funcionalidades de
cierta relevancia. Incluso vemos que están empezando a surgir empresas cuya actividad
consiste en el lanzamiento de nuevos productos de software libre.
Pero tenga cuidado: hay empresas que se asocian con el término «código abierto» («open
source») cuyo negocio se basa en realidad en software que no es libre que funciona con
software libre. No son empresas de software libre sino compañías de software privativo
cuyos productos inducen a los usuarios a abandonar su libertad. Etiquetan esos productos
como «paquetes con valor añadido», lo que demuestra cuáles son los valores que tales
empresas desearían que adoptáramos: conveniencia antes que libertad. Si valoramos más la
libertad, deberíamos denominarlos «paquetes con libertad sustraída».
Objetivos técnicos
El principal objetivo de GNU es ser software libre. Aun en el caso de que GNU no tuviese
ventajas técnicas sobre Unix, tendría una ventaja social, permitir la colaboración entre los
usuarios, y otra ventaja ética, respetar la libertad de los usuarios.
Pero resultaba natural aplicar a nuestro trabajo los estándares conocidos de buenas
prácticas; por ejemplo, la asignación dinámica de las estructuras de datos para evitar los
límites de tamaño fijo arbitrarios y el empleo de todos los códigos de ocho bits posibles,
cuando fuera apropiado.
Además, rechazamos el enfoque de Unix sobre el uso de una memoria reducida, y así
decidimos no dar soporte para máquinas de 16 bits (estaba claro que las máquinas de 32
bits serían la norma para cuando el sistema GNU estuviese terminado) y no hacer ningún
esfuerzo para reducir el uso de memoria a menos que excediera un megabyte. En los
programas en los que no fuera fundamental manejar ficheros muy grandes, animamos a los
programadores a leer el fichero de entrada completo en el core y luego explorar su
contenido sin tener que preocuparse del I/O.
Estas decisiones hicieron posible que muchos programas de GNU superaran a los análogos
de Unix en confiabilidad y velocidad.
Donación de ordenadores
A medida que crecía la reputación del Proyecto GNU, la gente comenzó a ofrecer al
proyecto la donación de máquinas con Unix instalado. Fueron muy útiles, porque la manera
más fácil de desarrollar componentes de GNU era hacerlo en un sistema Unix,
reemplazando los componentes del sistema uno a uno. Pero esto trajo aparejado el dilema
ético de si era correcto para nosotros poseer aunque fuera tan solo una copia de Unix.
Unix era —y es— software privativo, y según la filosofía del Proyecto GNU no debíamos
usarlo. Pero aplicando el mismo razonamiento que lleva a justificar la violencia en defensa
propia, concluí que era igualmente legítimo usar un paquete privativo cuando ello resultara
crucial para poder desarrollar un reemplazo libre que ayudara a los demás a dejar de usar el
paquete privativo.
En la actualidad (1) ya no queda casi ningún componente Unix en la lista de tareas GNU; se
concluyeron todas, excepto unas pocas que no son esenciales. Pero la lista contiene muchos
proyectos que podrían considerarse «aplicaciones». Cualquier programa que despierte el
interés de las personas —más allá del reducido grupo de usuarios de un cierto tipo— será
algo útil para añadir a un sistema operativo.
Incluso hay juegos en la lista de tareas y han estado allí desde el principio. Unix incluía
juegos, así que naturalmente también tenían que estar en GNU. Los juegos no presentaban
ningún problema de compatibilidad, así que no seguimos el modelo de juegos que tenía
Unix. Decidimos en cambio incluir en la lista una gama de diferentes tipos de juegos que
pueden resultar agradables para los usuarios.
(1) El texto se escribió en 1998. En 2009 ya no tenemos una larga lista de tareas. La
comunidad programa software libre con tanta rapidez que incluso no podemos seguir la
pista de todos. En cambio tenemos una lista bastante más corta de proyectos altamente
prioritarios y queremos animar a la gente a trabajar en ellos.
La biblioteca C tiene una función genérica; todo sistema o compilador privativo incluye
una biblioteca C. Por lo tanto, poner nuestra biblioteca a disposición únicamente para el
software libre, no habría significado ninguna ventaja para este, pero sí hubiera desalentado
el uso de nuestra biblioteca.
Existe un sistema que es una excepción a lo anterior: en un sistema GNU (incluidos los
sistemas GNU/Linux), la biblioteca C de GNU es la única biblioteca C. Por lo que los
términos de distribución de la biblioteca C de GNU determinan si es posible o no compilar
un programa privativo para el sistema GNU. No hay ninguna razón ética para autorizar la
incorporación de aplicaciones privativas en el sistema GNU, pero estratégicamente
pareciera que denegar dicha autorización desalentaría el uso del sistema GNU en lugar de
incentivar el desarrollo de aplicaciones libres. Por esta razón, usar la GPL para bibliotecas
(Library GPL) es una buena estrategia para la biblioteca C.
Para otras bibliotecas, es necesario evaluar caso por caso la estrategia a adoptar. Cuando
una biblioteca desempeña una función especial que puede facilitar el desarrollo de cierto
tipo de programas, publicarla bajo la GPL —limitándola únicamente a programas libres—
es una manera de ayudar a otros programadores de software libre, ya que se les otorga una
ventaja con respecto al software privativo.
Consideremos por ejemplo la biblioteca Readline de GNU, desarrollada para editar los
comandos para BASH. Readline se publica bajo la GPL de GNU ordinaria, no bajo la GPL
para bibliotecas. Es probable que de esta manera se reduzca el uso de Readline, pero ello no
supone una pérdida para nosotros. Por otro lado, al menos una aplicación útil ha sido
transformada en software libre específicamente para poder usar Readline, y esta es una
conquista importante para la comunidad.
Los desarrolladores de software privativo tienen las ventajas que proporciona el dinero;
quienes desarrollan software libre tienen que generar ventajas entre sí. Tengo la esperanza
de que algún día podremos contar con una amplia colección de bibliotecas cubiertas por la
GPL que no tengan equivalentes como software privativo, bibliotecas que provean módulos
útiles para constructir nuevos programas libres y que faciliten el desarrollo de software
libre en el futuro.
(1) Esta licencia ahora se llama GNU Lesser General Public License (Licencia Pública
General Reducida de GNU), para evitar transmitir la idea de que se debe usar para todas las
bibliotecas. Para más información, véase Por qué en su próxima biblioteca no debería
utilizar la GPL Reducida.
Por supuesto, la gente que escribía estos programas se interesó en el trabajo, y varias
personas añadieron muchas funcionalidades para satisfacer sus propias necesidades e
intereses. Pero ese no es el motivo por el cual existe el programa.
Situaciones inesperadas
Al comienzo del Proyecto GNU, mi idea era que desarrollaríamos el sistema GNU
completo y luego lo publicaríamos como un todo. Pero no fue así.
Debido a que cada uno de los componentes del sistema GNU se implementó en un sistema
Unix, todos podían ejecutarse en sistemas Unix mucho antes de que el sistema GNU
hubiera sido completado. Algunos de esos programas adquirieron popularidad, y los
usuarios comenzaron a extenderlos y portarlos a las distintas versiones incompatibles de
Unix y en ciertos casos también a otros sistemas.
Como resultado de ese proceso, los programas adquirieron mayor potencia y atrajeron más
fondos y colaboradores al Proyecto GNU. Pero probablemente eso también demoró por
varios años la conclusión de un sistema mínimo funcional, dado que el tiempo de los
desarrolladores de GNU se asignaba al mantenimiento de esas migraciones y a añadir
funcionalidades a los componentes ya existentes en lugar de continuar, uno tras otro, con el
desarrollo de los componentes que faltaban.
El Hurd de GNU
En 1990 el sistema GNU estaba casi terminado, el único componente importante que
faltaba era el núcleo. Habíamos decidido implementar nuestro núcleo como una colección
de procesos de servidor que se ejecutarían sobre Mach. Mach es un micronúcleo
desarrollado en la Carnegie Mellon University y luego en la Universidad de Utah. El Hurd
de GNU es una colección de servidores (por ejemplo, una «manada de ñus») que se
ejecutan sobre Mach y se ocupan de las diversas tareas como en el núcleo Unix. El inicio
del desarrollo se retrasó a la espera de que Mach se publicara como software libre, tal como
se había prometido.
Una de las razones por la que optamos por este diseño fue para evitar lo que parecía ser la
parte más dura del trabajo: depurar un núcleo sin contar con un depurador de código fuente
para hacerlo. Esta parte del trabajo ya había sido realizada en Mach, y esperábamos depurar
los servidores de Hurd como programas de usuario, con GDB. Pero llevó mucho tiempo
lograrlo, y los servidores multihilo que se intercambian mensajes resultaron ser muy
difíciles de depurar. Conseguir que Hurd funcione sólidamente se ha demorado muchos
años.
Alix
El núcleo de GNU originalmente no iba a llamarse Hurd. Su nombre original era Alix, por
alusión a mi novia de aquel entonces. Ella era administradora de sistemas Unix y había
hecho notar que su nombre seguía el esquema de nomenclatura que era común en las
versiones de los sistemas Unix. A modo de broma, le dijo a sus amigos «alguien debería
darle mi nombre a un núcleo». Yo no dije nada, pero decidí sorprenderla con un núcleo
llamado Alix.
Pero antes de que sucediera todo esto, un amigo de ella encontró el nombre Alix en el
código fuente de Hurd, y se lo comentó. Así que al fin de cuentas Alix pudo ver su nombre
en un núcleo.
Linux y GNU/Linux
El Hurd de GNU no está listo para el uso en producción, y no sabemos si alguna vez lo
estará. El diseño basado en la capacidad [capability-based design] presenta dificultadades
como consecuencia directa de la flexibilidad del diseño, y no está claro que existan
soluciones.
A esta versión del sistema la llamamos GNU/Linux para manifestar el hecho de que el
sistema está compuesto por una combinación del sistema GNU con el kernel Linux.
Recomendamos no adoptar la costumbre de llamar «Linux» al sistema completo, ya que eso
implica atribuir nuestro trabajo a otra persona. Tenga a bien mencionarnos equitativamente.
Desafíos en el futuro
Hemos demostrado nuestra capacidad para desarrollar un amplio espectro de software libre.
Esto no significa que somos invencibles o que nada nos puede detener. Varios desafíos
hacen que el futuro del software libre sea incierto. Afrontarlos requerirá esfuerzos firmes y
mucha resistencia, a veces durante años. Se necesita mucha determinación, como la que
demuestran quienes valoran su libertad y no dejan que nadie se las quite.
Hardware secreto
Los fabricantes de hardware tienden cada vez más a mantener secretas las especificaciones
de sus productos. Esto dificulta el desarrollo de controladores libres para que Linux y
XFree86 puedan reconocer el hardware nuevo. Hoy disponemos de sistemas libres
completos, pero mañana no los tendremos si no son compatibles con los ordenadores del
futuro.
Existen dos maneras de abordar este problema. Los programadores pueden recurrir a la
ingeniería inversa para analizar de qué manera se puede soportar el hardware. El resto de
nosotros podemos optar por usar hardware que sea compatible con el software libre. A
medida que aumente el número de usuarios de software libre, mantener las especificaciones
en secreto se transformará en una política contraproducente.
(Aclaración de 2008: esta cuestión también se aplica al BIOS. Existe un BIOS libre
llamado LibreBoot, una distribución de coreboot; el problema es conseguir las
especificaciones de las máquinas para que LibreBoot pueda reconocerlas sin tener que
recurrir a paquetes binarios que no son libres).
Bibliotecas que no son libres
Una biblioteca que no es libre y que funciona sobre sistemas operativos libres actúa como
una trampa para los programadores de software libre. Las características atractivas de la
biblioteca son el cebo: si usted usa la biblioteca, cae en la trampa, porque su programa no
puede integrarse de manera útil a un sistema operativo libre (estrictamente hablando,
podríamos incluir su programa, pero no funcionará sin esa biblioteca). Peor aún, si se
populariza un programa que utiliza una biblioteca privativa, puede hacer caer en la trampa a
otros programadores incautos.
La primera vez que se presentó este problema fue con el kit de herramientas Motif, allá en
los años ochenta. Aunque en aquel entonces no había todavía sistemas operativos libres, el
problema que Motif iba a causarles más adelante estaba claro. El Proyecto GNU respondió
de dos maneras: solicitando a los proyectos individuales de software libre que admitiesen
tanto los widgets del kit libre de herramientas de X como Motif, y solicitando el desarrollo
de un reemplazo libre para Motif. La tarea tomó muchos años. Solo en 1997 LessTif,
desarrollado por los Hungry Programmers, adquirió la potencia necesaria como para
admitir la mayoría de las aplicaciones Motif.
Entre 1996 y 1998, otra biblioteca del kit de herramientas GUI que no era libre,
denominada Qt, se usó en una amplia colección de software libre: el escritorio KDE.
Los sistemas libres GNU/Linux no podían usar KDE porque no podíamos incorporar la
biblioteca. No obstante, algunos distribuidores comerciales de sistemas GNU/Linux que no
eran tan estrictos con respecto a la inclusión de software libre, añadieron KDE a sus
sistemas, obteniendo así un sistema con más funcionalidades pero con menos libertad. El
grupo de KDE instaba activamente a los programadores a usar Qt, mientras millones de
nuevos «usuarios de Linux» ni siquiera habían oído hablar del problema. La situación era
desalentadora.
La comunidad del software libre abordó este problema de dos maneras: GNOME y
Harmony.
Harmony es una biblioteca sustitutiva compatible, diseñada para poder ejecutar el software
KDE sin usar Qt.
(Nota posterior: en Septiembre de 2000 Qt se publicó bajo la licencia GPL de GNU, lo que
esencialmente solucionó este problema).
¿Cómo responderemos a la próxima tentación que nos presente una biblioteca que no sea
libre? ¿Comprenderá la comunidad entera la necesidad de mantenerse alejados de la
trampa? ¿O alguno de nosotros entregará su libertad a cambio de la conveniencia,
generando así un problema fundamental? Nuestro futuro depende de nuestra filosofía.
Patentes de software
La peor amenaza a la que nos enfrentamos proviene de las patentes de software, que pueden
impedir el uso de algoritmos y funcionalidades en el desarrollo de software libre hasta por
veinte años. Las patentes del algoritmo de compresión LZW se introdujeron en 1983, y
todavía no podemos publicar software libre que produzca archivos en
formato GIF adecuadamente comprimidos. [Esas patentes expiraron en 2009.] En 1998
hubo que suspender la distribución de un programa libre para producir archivos de audio
comprimidos en el formato MP3 a causa de una amenaza de demanda judicial por patentes.
[Esas patentes expiraron en 2017. Vea cuánto ha habido que esperar.]
Existen algunos métodos para afrontar el problema de las patentes: podemos buscar pruebas
para demostrar la invalidez de la patente, y podemos buscar maneras alternativas de realizar
una tarea. Pero cada uno de estos métodos funciona solo en algunos casos; cuando ambos
fallan, una patente puede impedir la implementación en todo el software libre de alguna
funcionalidad que los usuarios desean. Tras una larga espera, las patentes expiran (las
patentes de MP3 se espera·que expiren 2018), pero ¿qué haremos mientras tanto?
Quienes valoramos el software libre por la libertad que nos otorga, seguiremos usándolo de
todos modos. Buscaremos el modo de realizar nuestro trabajo sin las funcionalidades
patentadas. Pero quienes valoran el software libre porque esperan que sea técnicamente
superior, tenderán a calificar de «fracaso» el software que no se puede desarrollar a causa
de las patentes. Por ende, si bien es útil hablar acerca de la efectividad práctica del modelo
de desarrollo llamado «bazar», y de la confiabilidad y la potencia de cierto software libre,
no debemos quedarnos solo con eso. Debemos hablar de libertad y de principios.
Documentación libre
La mayor carencia de nuestros sistemas operativos libres no está en el software sino en la
falta de buenos manuales libres que podamos incluir en nuestros sistemas. La
documentación es una parte esencial de cualquier paquete de software; cuando un paquete
importante de software libre no cuenta con un buen manual libre, nos encontramos con una
laguna fundamental. En la actualidad existen muchas de estas lagunas.
La autorización para modificarlo también es crucial. Como regla general, no creo que sea
esencial que las personas tengan permiso para modificar todo tipo de artículos y libros. Por
ejemplo, no creo que usted ni yo estemos obligados a autorizar la modificación de artículos
como este, en el que se describen nuestros actos y nuestros puntos de vista.
Pero existe una razón específica debido a la cual la libertad para modificar la
documentación es crucial para el software libre. Cuando las personas ejercen su derecho a
modificar el software y añaden o cambian sus funcionalidades, si son concienzudas
modificarán también el manual para que la documentación sea precisa y se pueda utilizar
con el programa modificado. Un manual que no es libre, que no permite a los
programadores ejercer su sentido de la responsabilidad y terminar el trabajo, no satisface
las necesidades de nuestra comunidad.
No hay inconveniente alguno en establecer ciertos tipos de límites a las modificaciones que
se pueden realizar, como por ejemplo el requisito de preservar el aviso de copyright del
autor original, los términos de distribución o la lista de autores. Tampoco ocasiona ningún
problema el requisito que exige incluir una nota advirtiendo que se trata de una versión
modificada, ni prohibir la alteración o la cancelación de enteras secciones, siempre y
cuando dichas secciones traten temas que no sean de índole técnica. Restricciones de este
tipo no ocasionan ningún problema porque no impiden al programador concienzudo
cambiar el manual para adaptarlo al programa modificado. En otras palabras, son
restricciones que no le impiden a la comunidad del software libre la plena utilización del
manual.
Sin embargo, se debe autorizar la modificación de todo el contenido técnico del manual,
como así también la distribución del resultado a través de todos los medios y canales
habituales; de no ser así, las restricciones estarían obstruyendo la comunidad. En ese caso el
manual no será libre, y será necesario escribir otro.
Los resultados positivos de esto son evidentes: mayor interés en el desarrollo de software
libre, más clientes para las empresas de software libre, y mayor capacidad para animar a las
compañías a desarrollar software libre comercial en lugar de productos de software
privativo.
Pero el interés por el software crece más rápidamente que la conciencia de la filosofía sobre
la cual se funda, y esto crea problemas. Nuestra capacidad de enfrentar los desafíos y
amenazas que se describieron anteriormente depende de la voluntad de mantenernos firmes
a favor de la libertad. Para asegurarnos de que nuestra comunidad tenga esta voluntad, es
necesario difundir la idea entre los nuevos usuarios a medida que llegan a nuestra
comunidad.
Pero estamos fracasando en eso: los esfuerzos para atraer nuevos usuarios a nuestra
comunidad superan con creces los esfuerzos dedicados a enseñarles nuestros principios.
Tenemos que hacer ambas cosas, y es necesario mantener un equilibrio entre ambos
esfuerzos.
La intención de algunos de los que adoptaron la nueva expresión era evitar la confusión
entre «free» y «gratis», un objetivo razonable. Otros, sin embargo, apuntaban a dejar de
lado los principios que habían dado vida al movimiento del software libre y al Proyecto
GNU, con el propósito de atraer a los ejecutivos y usuarios empresariales, quienes en su
gran mayoría sostienen una ideología que antepone los beneficios económicos a la libertad,
a la comunidad, a los principios. Por lo tanto, la retórica del «código abierto» se centra en la
posibilidad de desarrollar software potente y de alta calidad, pero elude las ideas de
libertad, comunidad y principios.
Las revistas sobre «Linux» son un claro ejemplo de esto. Están inundadas de publicidad
sobre software privativo que funciona en GNU/Linux. La próxima vez que nos
encontremos con productos como Motif o Qt, ¿advertirán estas revistas a los
programadores aconsejándoles que los eviten, o publicarán anuncios para promoverlos?
Dejando aparte todos los demás factores, el apoyo empresarial es útil y puede contribuir a
la comunidad de varias maneras. Pero si para obtenerlo optamos por mencionar aún menos
el tema de la libertad y los principios, el resultado puede ser desastroso; se agudizaría el
desequilibrio entre la difusión del software libre y la enseñanza de sus principios.
Otras veces fracasé. Algunas de mis ciudades han caído. Más tarde descubrí otra ciudad
amenazada y me preparé para otra batalla. Con el tiempo, he aprendido a detectar las
amenazas y a interponerme entre ellas y mi ciudad, haciendo un llamamiento a otros
hackers para que se unan a mí.
Anuncio inicial
Este es el anuncio original del proyecto GNU, enviado por Richard Stallman el 27 de
septiembre de 1983.
La historia del proyecto GNU, tal como se desarrolló, difiere de este plan inicial en muchos
aspectos. Por ejemplo, el inicio del proyecto se retrasó hasta enero de 1984. Varios de los
conceptos filosóficos del software libre se aclararon unos años más tarde.
¡Unix Libre!
A partir del próximo Día de Acción de Gracias[1] comenzaré a escribir un sistema de
software completo compatible con Unix llamado GNU (que significa «Gnu No es Unix»), y
lo distribuiré libremente (1) para que todos puedan usarlo. Son muy necesarias las
contribuciones de dinero, programas y equipos.
Inicialmente GNU constará de un núcleo de sistema [«kernel»], más todas las utilidades
necesarias para escribir y ejecutar programas en lenguaje C: editor, interfaz de comandos
[«shell»], compilador C, enlazador, ensamblador, y algunos otros instrumentos. Después
agregaremos un formateador de texto, una versión de YACC, un juego Empire, una hoja de
cálculo, y cientos de otras cosas. En el futuro esperamos proporcionar todo lo que es útil y
que normalmente viene con un sistema Unix, como así también cualquier otro elemento de
utilidad, incluyendo documentación online e impresa.
GNU podrá ejecutar programas Unix, pero no será idéntico a Unix. Haremos todas las
mejoras que son convenientes, en base a nuestra experiencia con otros sistemas operativos.
En particular, planeamos tener nombres de archivos más largos, números de versión para
los archivos, un sistema de archivos a prueba de caídas, quizás conclusión automática de
los nombres de los archivos, soporte para despliegue independiente del terminal y,
posteriormente, un sistema de ventanas basado en Lisp a través del cual varios programas
Lisp y programas Unix comunes podrán compartir una pantalla. Tanto C como Lisp estarán
disponibles como lenguajes de programación del sistema. Tendremos software de red
basado en el protocolo chaosnet desarrollado en el MIT, muy superior a UUCP. Quizás
también hagamos algo compatible con UUCP.
¿Quién soy?
Soy Richard Stallman, inventor del original y muchas veces imitado editor EMACS;
actualmente me encuentro en el Laboratorio de Inteligencia Artificial del MIT. He
trabajado mucho en compiladores, editores, depuradores, intérpretes de comandos, el
Sistema Incompatible de Tiempo Compartido y el sistema operativo de la máquina Lisp.
Introduje el soporte de visualización independiente del treminal en el ITS. Además he
implementado un sistema de archivos a prueba de caídas y dos sistemas de ventanas para
las máquinas Lisp.
Para poder seguir utilizando computadoras sin violar mis principios, he decidido reunir
suficiente software libre para no tener que usar ningún programa que no sea llibre.
Cómo contribuir
A los fabricantes de computadoras les pido donaciones de máquinas y de dinero. A las
demás personas les pido la donación de programas y de trabajo.
Los programadores pueden contribuir escribiendo una copia compatible de alguna utilidad
Unix y entregándomela a mí. Para la mayoría de los proyectos, tal distribución del trabajo
de tiempo parcial sería muy difícil de coordinar; las partes escritas de forma independiente
no funcionarían juntas. Pero este problema no existe para la tarea particular de reemplazar
Unix. Casi todas las especificaciones de la interfaz son determinadas por la compatibilidad
con Unix. Si cada contribución funciona con el resto de Unix, probablemente funcionará
con el resto de GNU.
El manifiesto de GNU
El manifiesto de GNU, que aparece a continuación, lo escribió Richard Stallman en 1985
para solicitar apoyo en el desarrollo del sistema operativo GNU. Parte del texto está tomado
del anuncio original de 1983. A lo largo de 1987 se hicieron actualizaciones menores para
dar cuenta de la evolución del proyecto; a partir de entonces, parece mejor dejarlo tal cual.
Con el transcurso del tiempo hemos aprendido que ciertos malentendidos comunes podían
evitarse con una redacción diferente. Las aclaraciones al pie de página que hemos añadido a
partir de 1993 ayudan a clarificar estos puntos.
Si desea instalar el sistema GNU/Linux, le recomendamos utilizar una de las distribuciones
GNU/Linux que son 100% software libre. Para colaborar,
consulte http://www.gnu.org/help.
El proyecto GNU forma parte del Movimiento del Software Libre, una campaña en favor
de la libertad de los usuarios de software. Es un error asociar GNU con el «código abierto».
Esta expresión fue acuñada en 1998 por gente que discrepaba de los valores éticos del
Movimiento del Software Libre. Lo emplean para promover un punto de vista amoral de
abordar el mismo asunto.
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 parser compatible con yacc, un
enlazador y alrededor de treinta y cinco utilidades. Una shell (intérprete de comandos) que
está casi terminada. Un nuevo compilador portable y optimizador de C se autocompiló y
posiblemente lo publicaremos este año. Existe un núcleo inicial, pero se necesitan 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 formateador de documentos TeX, pero también estamos trabajando en una
versión de nroff. Usaremos también el sistema libre y portable de ventanas X. Después de
esto agregaremos un Common Lisp portable, un juego Imperio, una hoja de cálculo y
cientos de otras cosas, además de la documentación en línea. Esperamos proporcionar, con
el tiempo, todas las utilidades que vienen normalmente con un sistema Unix y más.
GNU podrá ejecutar programas de Unix, pero no será idéntico a Unix. Haremos todas las
mejoras que sean convenientes, en base a nuestra experiencia con otros sistemas operativos.
Concretamente, planeamos tener nombres de archivos más largos, números para las
versiones de los archivos, un sistema de archivo a prueba de caídas y tal vez incorporemos
un sistema para completar los nombres de archivos, un soporte de visualización
independiente del terminal y, quizá en el futuro, un sistema de ventanas basado en Lisp a
través del cual varios programas Lisp y programas comunes de Unix puedan compartir una
pantalla. Tanto C como Lisp estarán disponibles como lenguajes de programación del
sistema. Intentaremos también dar soporte a UUCP, MIT Chaosnet y protocolos de Internet
para las comunicaciones.
GNU está orientado inicialmente a las máquinas de la clase 68000/16000 con memoria
virtual, porque son las máquinas donde es más sencilla su ejecución. El esfuerzo adicional
para hacerlo funcionar en máquinas más pequeñas se lo dejaremos a quienes quieran
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 [1].
Para poder continuar a utilizar las computadoras sin deshonra, he decidido agrupar un
conjunto suficiente de software libre para poder vivir sin usar ningún software que no sea
libre. He renunciado al Laboratorio de Inteligencia Artificial para evitar que el MIT pueda
usar alguna excusa legal que me impida distribuir software de GNU (2).
Cómo colaborar
Hoy en día, para conocer las tareas en las que puede colaborar en el ámbito del software,
consulte la lista de proyectos prioritarios y la lista se busca ayuda, la lista general de tareas
para paquetes software de GNU. Para colaborar de otras formas, consulte la guía para
colaborar con el Proyecto GNU.
Pido a los fabricantes de ordenadores que donen máquinas y dinero. A los individuos les
pido donaciones en forma de programas y trabajo.
Una de las consecuencias que puede esperar si dona máquinas es que GNU se ejecutará en
ellas con anticipación. Las máquinas deben estar completas, listas para utilizar sistemas,
aprobadas para su uso en una zona residencial y no requerir ventilación o fuentes de energía
sofisticadas.
Esto significa mucho más que ahorrarse el dinero para pagar una licencia Unix. Significa
evitar el derroche inútil de la duplicación de esfuerzos en la programación de sistemas. Este
esfuerzo se puede inventir en cambio en el avance de la tecnología.
El código fuente del sistema completo estará disponible para todos. Como resultado, un
usuario que necesite cambios en el sistema siempre será libre de hacerlo él mismo, o
contratar a cualquier programador o empresa disponible para que los haga. Los usuarios ya
no estarán a merced de un programador o empresa propietaria de las fuentes y que sea la
única que puede realizar modificaciones.
Las escuelas podrán ofrecer un entorno mucho más educativo, y alentar a todos los alumnos
a estudiar y mejorar el código. El laboratorio de computación de Harvard solía tener la
política de que ningún programa podía ser instalado en el sistema si no se publicaba
previamente su código fuente, llegando al punto de negarse a instalar ciertos programas. Yo
me inspiré mucho en esa política.
Por último, 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 que obligan a la gente a pagar por usar un programa, incluyendo el
licenciamiento de las copias, siempre incurren en un costo enorme para la sociedad a través
de los mecanismos engorrosos necesarios para calcular la cantidad (es decir, qué
programas) una persona debe pagar. Y sólo un estado policial puede forzar a todos a
obedecer. Considere la posibilidad de una estación espacial en donde el aire debe fabricarse
con un gran costo: cobrar a cada persona por litro de aire puede ser justo, pero usar una
máscara para medir el aire durante todo el día y toda la noche es insoportable, incluso si
todo el mundo puede permitirse el lujo de pagar la factura del aire. Y las cámaras de video
en todas partes para ver si alguna vez alguien se quita la máscara son indignantes. Es mejor
apoyar a la planta de aire con un impuesto y desechar las máscaras.
Copiar todo o parte de un programa es tan natural para un programador como respirar,
además es productivo. Debería ser libre.
«Hay que cobrar por el programa para pagar por el servicio de asistencia».
Si la gente prefiere pagar por GNU más el servicio en lugar de recibir GNU sin servicio,
una empresa que preste solamente el servicio a las personas que hayan obtenido GNU debe
ser rentable. (4)
Si su empresa necesita poder contar con soporte, la única manera es tener todo el código
fuente y las herramientas necesarias. Entonces puede contratar a cualquier persona
disponible para corregir el problema, y no estará a merced de ningún individuo. Con Unix,
el precio del código fuente deja fuera de consideración a la mayoría de las empresas. Con
GNU esto será sencillo. Puede ser que no haya ninguna persona competente disponible,
pero por este problema no se puede culpar a los acuerdos de distribución. GNU no elimina
todos los problemas del mundo, sólo algunos de ellos.
Mientras tanto, los usuarios que no saben nada acerca de las computadoras necesitan que
los guíen: hacer cosas que podrían hacer por sí mismos fácilmente, pero no saben cómo.
Estos servicios podrán ser prestados por empresas que vendan solamente el servicio de
asesoría y reparación. Si bien es cierto que los usuarios prefieren gastar dinero y obtener un
producto con el servicio, también estarán dispuestos a adquirir el servicio habiendo
obtenido el producto en forma gratuita. Las empresas de servicios competirán en calidad y
precio, los usuarios no estarán atados a ninguna en particular. Mientras tanto, aquellos de
nosotros que no necesitamos el servicio deberíamos tener la posibilidad de utilizar el
programa sin tener que pagar por el servicio.
«No se puede llegar a muchas personas sin publicidad, y para financiarla es necesario
cobrar por el programa».
«No tiene sentido publicitar un programa que la gente puede obtener gratuitamente».
Hay diversas formas de publicidad gratuita o muy barata que se puede utilizar para
informar a los usuarios de computadoras acerca de algo como GNU. Pero quizás sea cierto
que uno puede llegar a más usuarios de microcomputadoras con publicidad. Si esto es
realmente así, un negocio que publicite el servicio pago de copiado y envío por correo del
software de GNU debería ser lo suficientemente exitoso como para pagar por su publicidad
y mucho más. De esta manera, solo los usuarios que se benefician de esta publicidad la
pagarán.
Por otro lado, si mucha gente consigue GNU de sus amigos, y esas empresas no tienen
éxito, esto demostrará que la publicidad no era realmente necesaria para difundir GNU.
¿Por qué es que los defensores del libre mercado no quieren dejar que el libre mercado lo
decida? (5)
«Mi compañía necesita un sistema operativo privativo para tener una ventaja
competitiva».
Si hay algo que merece una recompensa, es la contribución social. La creatividad puede ser
una contribución social, pero solo en la medida en que la sociedad sea libre de aprovechar
los resultados. Si los programadores merecen ser recompensados por la creación de
programas innovadores, entonces, por la misma razón merecen ser castigados si restringen
el uso de estos programas.
No hay nada malo en querer un pago por el trabajo o en buscar maximizar los ingresos
personales, siempre y cuando no se utilicen medios que sean destructivos. Pero los medios
habituales en el campo del software hoy en día se basan en la destrucción.
Extraer dinero de los usuarios de un programa limitando su uso es destructivo porque las
restricciones reducen la cantidad y las formas en que el programa puede ser utilizado. Esto
reduce la cantidad de beneficios que la humanidad obtiene del programa. Cuando hay una
elección deliberada de restringir, las consecuencias dañinas son una destrucción deliberada.
La razón por la que un buen ciudadano no utiliza estos medios destructivos para volverse
más rico es que si todos lo hicieran, podríamos empobrecernos todos por una mutua
destrucción. Esto es ética kantiana, o la Regla de Oro. Como no me gustan las
consecuencias que resultarían si todos acapararan información, debo considerar como
erróneo que alguien lo haga. Específicamente, el deseo de ser recompensado por la
creatividad de uno no justifica privar al mundo en general de toda o parte de esa
creatividad.
Podría responder que nadie está obligado a ser programador. La mayoría de nosotros no
puede conseguir dinero parándose en la calle y haciendo muecas. No estamos, por
consiguiente, condenados a pasar nuestras vidas de pie en la calle haciendo muecas, y
muriéndonos de hambre. Podemos dedicarnos a otra cosa.
Sin embargo, esta es una respuesta errónea porque acepta la suposición implícita del
interrogador: que sin la propiedad del software a los programadores no se les puede pagar
un centavo. En este supuesto es todo o nada.
La verdadera razón por la que los programadores no se morirán de hambre es porque aún es
posible que se les pague por programar, solo que no se les pagará tanto como en la
actualidad.
Restringir la copia no es la única forma para hacer negocios con el software. Es la forma
más común (7) porque es con la que se obtiene más dinero. Si se prohibiera o fuese
rechazada por el comprador, el negocio del software se desplazaría hacia otras formas de
organización que actualmente no se usan tan a menudo. Siempre existen muchos modos
para organizar cualquier tipo de negocio.
Probablemente la programación no será tan lucrativa bajo esta nueva forma como lo es
actualmente. Pero esto no es un argumento en contra del cambio. No se considera una
injusticia que los empleados en los comercios obtengan los salarios que ganan actualmente.
Si los programadores ganaran lo mismo, no será tampoco una injusticia (en la práctica
ganarán considerablemente más).
Las personas que han estudiado cuidadosamente el tema de los derechos de propiedad
intelectual(8) (por ejemplo los abogados) dicen que no existe un derecho intrínseco a la
propiedad intelectual. Los tipos de los supuestos derechos de propiedad intelectual que
reconoce el gobierno fueron creados mediante actos legislativos específicos con fines
específicos.
Por ejemplo, el sistema de patentes se estableció para animar a los inventores a revelar los
detalles de sus inventos. El objetivo era ayudar a la sociedad más que a los inventores. El
periodo de validez de diecisiete años para una patente era corto comparado con el ritmo de
desarrollo de la técnica. Dado que las patentes solo son relevantes para los fabricantes, para
quienes el costo y el esfuerzo de un acuerdo de licencia son pequeños comparados con la
puesta en marcha de la producción, las patentes a menudo no hacen mucho daño. No
representan un obstáculo para la mayoría de los individuos que usan productos patentados.
La idea del copyright no existía en tiempos antiguos, cuando los autores frecuentemente
copiaban extensivamente a otros autores en obras de no ficción. Esta práctica era útil, y ha
sido la única forma de que las obras de muchos autores, aunque solo sea en parte, hayan
sobrevivido. El sistema de copyright se creó expresamente con el propósito de promover la
autoría. En el ámbito para el que se inventó —libros, que sólo podían copiarse de forma
económica en una imprenta— hacía muy poco daño y no obstruía a la mayor parte de los
individuos que leían los libros.
Todos los derechos de propiedad intelectual son solamente licencias otorgadas por la
sociedad porque se pensaba, con razón o sin ella, que la sociedad en su conjunto se
beneficiaría de su concesión. Pero, en cada situación particular, tenemos que preguntarnos:
¿nos beneficia realmente otorgar esta licencia? ¿qué tipo de acto le estamos permitiendo
hacer a una persona?
El caso de los actuales programas es muy diferente al de los libros de hace cien años. El
hecho de que la forma más sencilla de copiar un programa sea de un vecino a otro, el hecho
de que un programa esté formado tanto por el código fuente como el código objeto, siempre
distintos, y el hecho de que el programa se use en lugar de leerlo y disfrutarlo, se combinan
para crear una situación en la que una persona que hace valer un copyright está dañando a
la sociedad en su conjunto tanto materialmente como espiritualmente; nadie debería hacerlo
a pesar de que la ley se lo permita.
Por más de diez años, muchos de los mejores programadores del mundo trabajaron en el
Laboratorio de Inteligencia Artificial por mucho menos dinero de lo que podrían haber
obtenido en otro sitio. Tenían muchos tipos de recompensas que no eran económicas: fama
y aprecio, por ejemplo. Y la creatividad también es divertida, es una recompensa en sí
misma.
Luego la mayoría se fue cuando se les ofreció la oportunidad de hacer ese mismo trabajo
interesante por mucho dinero.
Lo que muestran los hechos es que la gente programa por razones distintas a la de la
riqueza; pero si se les da la oportunidad de ganar también mucho dinero, eso los llenará de
expectativas y lo van a exigir. Las organizaciones que pagan poco no podrán competir con
las que pagan mucho, pero no tendría que irles tan mal si las que pagan mucho fueran
prohibidas.
Uno nunca está tan desesperado como para tener que obedecer este tipo de exigencia.
Recuerde: millones para nuestra defensa, ¡pero ni un centavo para tributos! [2].
A corto plazo, esto es verdad. Sin embargo, hay bastantes maneras de que los
programadores puedan ganarse la vida sin vender el derecho a usar un programa. Esta
manera es frecuente ahora porque es la que les da a los programadores y hombres de
negocios más dinero, no porque sea la única forma de ganarse la vida. Es fácil encontrar
otras formas, si quieres encontrarlas. He aquí unos cuantos ejemplos:
Un fabricante que introduce una nueva computadora pagará por adecuar los sistemas
operativos al nuevo hardware.
La gente con ideas nuevas podría distribuir programas como freeware (9), pidiendo
donaciones a los usuarios satisfechos, o vendiendo servicios de asistencia. Yo he conocido
a personas que ya trabajan así y con mucho éxito.
Los usuarios con que tengan las mismas necesidades pueden formar un grupo de usuarios y
pagar sumas de dinero. Un grupo contratará a empresas de programación para escribir
programas que a los miembros del grupo les gustaría utilizar.
Supongamos que todos los que compren una computadora tengan que pagar un tanto por
ciento de su precio como impuesto de software. El Gobierno entrega este dinero a una
agencia como la la Fundación Nacional de las Ciencias (NSF) para que lo emplee en el
desarrollo de software.
La tasa total de impuesto podría decidirse mediante el voto de los contribuyentes, sopesada
de acuerdo con la cantidad sobre la que se aplicará el impuesto.
Las consecuencias:
Los usuarios a quienes les importa a qué proyectos se destine su parte pueden escogerlos
por sí mismos.
A largo plazo, hacer programas libres es un paso hacia el mundo post-escasez, donde nadie
tendrá que trabajar duro para ganarse la vida. La gente será libre para dedicarse a
actividades entretenidas, como la programación, después de haber dedicado diez horas
obligatorias a la semana a las tareas requeridas, como legislar, el asesoramiento familiar, la
reparación de robots y la exploración de asteroides. No habrá necesidad de ganarse la vida
mediante la programación.
Canaima GNU/Linux
Canaima es un proyecto socio-tecnológico-productivo
abierto, construido de forma colaborativa por un conjunto de actores de la vida nacional que
incorporan elementos de orden tecnológico, comunitario y estratégico, desarrollando
herramientas y modelos productivos basados en Tecnologías de Información (TI) Libres,
sustentado en la Comunidad Canaima, la cual está constituida por grupos de participantes
provenientes de diferentes instituciones públicas y privadas, activistas de la comunidad de
Software Libre, estudiantes y ciudadanía en general.
Objetivo
Generar capacidades nacionales por medio de la apropiación y promoción del conocimiento
libre para promover el desarrollo endógeno y alcanzar la independencia tecnológica.
Alcance
Su principal producto es el sistema de operación Canaima GNU/Linux, construido bajo
estándares abiertos para apoyar el cumplimiento del Decreto N° 3.390 que dispone la migración
a Software Libre en los sistemas, proyectos y servicios de la Administración Pública Nacional
(APN).
Instituciones involucradas
- Entes y órganos de la Administración Pública Nacional (Ministerios y organismos adscritos).
- Comunidades Organizadas (Universidades, Institutos Tecnológicos, Consejos Comunales,
entre otros).
- Comunidad de Software Libre (activistas, usuarios, desarrolladores).
- Industria Nacional de Software Libre.
- Fidetel, ente financiador de Canaima, cuyo recursos se ejecutan a través del Proyecto
"Fortalecimiento de la Distribución Canaima GNU/Linux para el Estado venezolano y las
comunidades organizadas", el cual desarrolla acciones en cuatro componentes: Plataforma
Tecnológica, Desarrollo Tecnológico, Soporte Técnico y Difusión.
- Centro Nacional de Tecnologías de Información (CNTI).
Presupuesto Asignado:
Doce millones setecientos ochenta y seis mil quinientos cincuenta y nueve Bolívares con 00/100
céntimos (Bs. 12.786.559,00).
Fuente de Financiamiento
Fondo de Investigación y Desarrollo de las Telecomunicaciones (Fidetel).
Sitio Web
Con el objetivo de promover el trabajo productivo de las comunidades afines, se dispone de una
plataforma de trabajo colaborativa, medio a través del cual se interconectan proyectos,
iniciativas, comunidades y colaboradores, todos estos habilitados en el uso de herramientas
informáticas para la comunicación, información, desarrollo, documentación, registro,
planificación, seguimiento y control de sus actividades. Los recursos más relevantes de la
plataforma de trabajo colaborativo son:
Chat IRC:
¿Qué es Canaima?
CANAIMA, es una
tecnología diseñada pensando en las necesidades y realidades del servidor público
venezolano, orientado a los procesos de la Administración Pública, en apoyo a su
automatización con Software Libre, siendo éste una alternativa al modelo dependiente
tradicional y haciendo frente a un mercado cercado por las grandes corporaciones en su
mayoría trasnacionales.
Desde sus inicios el 18 de octubre de 2007, mucha ha sido la evolución del Proyecto CANAIMA
y con él, el desarrollo de diversos sabores y versiones del sistema de operación, enfocándose
hoy en día en servir como herramienta desarrollada para la Administración Publica.
Canaima es una distribución GNU/Linux venezolana basada en Debian, surgida como
consecuencia del Decreto presidencial N° 3.390 sobre el uso de Tecnologías de Información
Libres en la Administración Pública Nacional (APN) venezolana, promulgado por el Presidente
Hugo Chávez Frías.
El 14 de marzo de 2011 en la Gaceta Oficial N° 39.632 se establece como sistema operativo
para las estaciones de trabajo de la APN.
Fidetel, ente financiador de Canaima, cuyo recursos se ejecutan a través del Proyecto
"Fortalecimiento de la Distribución Canaima GNU/Linux para el Estado venezolano y las
comunidades organizadas", el cual desarrolla acciones en cuatro componentes: Plataforma
Tecnológica, Desarrollo Tecnológico, Soporte Técnico y Difusión.
Centro Nacional de Tecnologías de Información (CNTI).
Ofimática:
Suite de oficina LibreOffice
Internet:
Navegador web: Firefox ESR
Cliente de correo: Thunderbird
Mensajería Instantánea: Pidgin
Gráficos:
LibreOffice Draw.
GNU Paint.
Software de billetera electrónica (criptomonedas)
Electrum 3.010
Como otras distribuciones, Canaima GNU/Linux posee aplicaciones diversas para llevar a
cabo tareas de ofimática, entretenimiento, desarrollo y configuración de todo el sistema. Su
interfaz predeterminada en Canaima 4.X es GNOMEy en Canaima 5.X es Mate y/o Cinnamon.
Existen otras versiones extraoficiales mantenidas por la comunidad, con diferentes escritorios,
como XFCE.
Ofimática:
suite de oficina LibreOffice, con los siguiente módulos:
Procesador de textos
Hoja de cálculo
Generador de Presentaciones
Generador de fórmulas matemáticas y software de dibujo
Gestión de proyectos: Planner
Editor de HTML.
Siguiendo la tendencia impuesta por otras organizaciones que realizan distribuciones
GNU/Linux, desde la versión 3, LibreOffice sustituyó a OpenOffice.org y a partir de la versión
3.1 deja de ser incorporado el gestor de base de datos de esta suite de oficina.
Escritorio de Canaima personalizado GNU/Linux 3.0
Internet:
Navegador web: Cunaguaro,11 basado en Iceweasel, presente desde la versión 3.0 de
Canaima y que sustituye al navegador Curiara.
Cliente de correo electrónico: Guácharo.12
Cliente de mensajería instantánea: Pidgin.13
Cliente Twitter: Turpial.14
Gráficos:
Libreoffice Draw.
GNU Paint.
Editor de diagramas Dia.
Gimp
Inkscape
Visor de cámara Web Cheese.
Shotwell Photo Manager.
Software de escaneo de imágenes Xsane.
Programación:
Quanta Plus.
Eclipse.
Anjuta: Entorno de desarrollo integrado para programar en los lenguajes de
programaciónC, C++, Java, Python y Vala, en sistemas GNU/Linux y BSD.
Lanzamientos[editar]
Canaima GNU/Linux es una distribución de la cual se han generado versiones periódicamente
en los últimos años.15 La tabla siguiente detalla los lanzamientos de cada versión.
Color Significado
Ciclo de desarrollo[editar]
Canaima GNU/Linux posee un modelo de desarrollo basado en Debian pero con algunas
modificaciones para adaptarla a las necesidades propias de Venezuela; en este sentido, se ha
definido un ciclo de desarrollo compuesto por:
Herramientas para apoyo de comunidades las cuales están compuesta por las
siguientes:
Forja basada en FusionForge ubicada en http://forja.softwarelibre.gob.ve
Herramienta para la gestión de proyectos y el seguimiento de errores, basa
en Tracubicada
en https://web.archive.org/web/20121126005534/http://proyectos.canaima.softwarelibr
e.gob.ve/
Cayapa Canaima[editar]
Una de las actividades comunitarias que ha sido generada alrededor de Canaima es
la Cayapa32 en las cuales desarrolladores de software libre se reúnen para proponer mejoras,
corregir errores y otras; esta actividad en otros proyectos son llamadas Bugs Squash Party. La
última Cayapa que se realizó fue, la 8.ª Cayapa Canaima, que se realizó del 12 al 14 de
noviembre de 2014 en la ciudad de Mérida, Venezuela. 33
Es un proyecto iniciado en el año 2009 por el Ministerio del Poder Popular para la
Educación del gobierno de la República Bolivariana de Venezuela que consiste en proveer
gratuitamente a los estudiantes de educación básica de un computador, conocido
popularmente como Canaimita, que tiene como sistema operativo a Canaima GNU/Linux y
una serie de contenidos educativos creados por el Ministerio del Poder Popular para
Educación.39
En el año 2011 se entregaron 1.314.091 computadoras.40 En septiembre de 2012 se entregó
la Canaimita número 2 millones. 41 Hasta el 21 de marzo del año 2013 se han entregado
2.452.337 Canaimitas a los niños que cursan Educación Primaria.42 Más recientemente, el
Gobierno de Venezuela inició la entrega 2,5 millones de computadoras a estudiantes de las
instituciones públicas de bachillerato.43 En abril de 2014 ya se han entregado 3.300.000
computadoras Canaima a niños y jóvenes de educación básica y media.44
CANTV[editar]
La empresa CANTV, vende computadoras dentro del Plan Internet Equipado45 que incorporan
a Canaima GNU/LInux como sistema operativo preinstalado.
Ediciones
Existen diversas ediciones de Canaima mantenidas y reconocidas por activistas de la
comunidad, siendo las más significativas las que se detallan a continuación: