lunes, 24 de enero de 2011

Software Libre Para Una Sociedad Libre

Bueno ahora veremos un pequeño resumen para el inicio de las "III Jornadas Nacionales del Informatico 2011" UNL


Capitulo 1: El Proyecto GNU


La comunidad a la que pertenecia Richard Stallman se denominaba Software Libre puesto que cuando alguien ajeno a la comunidad necesitaba algún software se lo prestábamos de buen agrado.

La situación cambió drásticamente a principios de los años ochenta, con la desaparición de la comunidad hacker del AI Lab, seguida de la desaparición del ordenador PDP-10.

Los modernos ordenadores de la época, como el VAX o el 68020, contaban con su propio sistema operativo, pero ninguno utilizaba software libre. Había que firmar un acuerdo de confidencialidad incluso para obtener una copia ejecutable.

Como desarrollador de un sistema operativo, tenía las aptitudes necesarias para desempeñar esta labor. De manera que, aun cuando el éxito no estuviera asegurado, comprendí que había sido elegido para llevar a cabo esta misión. Opté por crear un sistema compatible con Unix para dotarle así de portabilidad y facilitar el cambio a los usuarios de Unix. El nombre de GNU fue elegido según una tradición de los hackers, como un acrónimo recursivo de «GNU’s Not Unix».

A veces se malinterpreta el término de «software libre» —para empezar, no tiene ninguna relación con el precio. Lo que nos interesa es la libertad. He aquí la definición de software libre. Un programa es software libre para el usuario siempre que, como usuario particular, tengas:

1. La libertad de ejecutar el programa sea cual sea el propósito.

2. La libertad para modificar el programa para ajustarlo a tus necesidades. (Para que se trate de una libertad efectiva en la práctica, deberás tener acceso al código fuente, dado que sin él la tarea de incorporar cambios en un programa es extremadamente difícil.)

3. La libertad de redistribuir copias, ya sea de forma gratuita, ya sea a cambio del pago de un precio.

4. La libertad de distribuir versiones modificadas del programa, de tal forma que la comunidad pueda aprovechar las mejora introducidas.

Debido a esta decisión, el sistema GNU no consiste en una colección completa de software GNU. El sistema incluye programas desarrollados por otros individuos y para proyectos con sus propios propósitos que empleamos por su condición de software libre.

En enero de 1984 abandoné mi empleo en el MIT y comencé a escribir software GNU. Abandonar el MIT era imprescindible si quería que nadie interfiriera en la distribución de GNU como software libre.

Cuando un programa de software libre deja de estar en manos de su autor, esto no significa necesariamente que siga siendo software libre para cualquiera que se haga con una copia de él. Por ejemplo, el software de dominio público —software sin copyright es software libre, pero cualquiera puede modificarlo y hacer una versión propietaria a partir de él. Lo mismo ocurre con muchos programas libres con copyright que se distribuyen con licencias simples muy permisivas que autorizan el desarrollo de versiones propietarias modificadas.

El ejemplo paradigmático de este problema es el X Window System. Desarrollado en el MIT y publicado como software libre con una licencia permisiva, pronto fue adoptado por diversas empresas informáticas. Añadieron X, sólo en forma binaria, a sus sistemas propietarios Unix, siempre acompañados del clásico acuerdo de confidencialidad.


El objetivo de GNU era proporcionar libertad a los usuarios, no simplemente ser popular. De modo que necesitábamos idear unos términos de distribución que impidieran que el software de GNU se convirtiera en software propietario. El método que empleamos se denominó copyleft. Copyleft utiliza la ley de copyright, pero dándole la vuelta para servir a un propósito opuesto al habitual: en lugar de privatizar el software, ayuda a preservarlo como software libre.

La filosofía del software libre rechaza una práctica empresarial concreta y muy generalizada, pero no rechaza el negocio en general. Cuando una empresa respeta la libertad de los usuarios, le deseamos mucho éxito.

A medida que iba aumentaba la popularidad del proyecto GNU, la gente empezó a donar ordenadores que operaban con Unix. Y fueron de gran utilidad, porque la forma más fácil de desarrollar componentes de GNU era partiendo de un sistema Unix y reemplazar sus componentes uno a uno. Pero esto nos planteó un dilema ético: ¿era correcto poseer, aunque fuera tan solo una copia, de Unix?

La librería C GNU utiliza un copyleft especial llamado GNU Library General Public License, que autoriza el enlace de software propietario con la librería. ¿Por qué permitir esta excepción?

No es una cuestión de principios. Ningún principio establece el derecho de los productos de software propietario a incluir nuestro código —¿por qué contribuir a un proyecto que niega el derecho a compartir? El uso de la LGPL para la librería C, o para cualquier otra librería, responde más bien a una estrategia.

Eric Raymond dice que «todo buen trabajo de software empieza cuando un desarrollador se plantea un reto personal». Es posible que esté en lo cierto, pero muchos componentes esenciales del software GNU se desarrollaron con el fin de crear un sistema operativo libre y completo. Su origen está en una visión y un plan, no en un impulso individual.

Por ejemplo, desarrollamos la librería C GNU, la Bourne Again Shell (BASH) y el GNU tar porque cualquier sistema similar a Unix precisaba de estos componentes. Lo mismo puede decirse de mis propios programas —el compilador C GNU, GNU Emacs, GDB y GNU Make.

Al iniciarse el proyecto GNU pensé que desarrollaríamos el sistema en su totalidad y luego lo publicaríamos entero. Pero no fue así.

Dado que cada uno de los componentes del sistema GNU se implantó en un sistema Unix, todos ellos podían ejecutarse en sistemas Unix mucho antes de que existiera el sistema GNU. Algunos de estos programas se hicieron muy populares y los usuarios empezaron a ampliarlos y a transportarlos —a las diversas versiones incompatibles de Unix, y también a otros sistemas. El proceso dotó de mayor potencia a estos programas, y atrajo tanto fondos como colaboradores al proyecto GNU. Pero es probable que también retrasara la concepción de un sistema mínimamente funcional durante varios años, dado que los desarrolladores de GNU dedicaban la mayor parte de su tiempo al mantenimiento de estos puertos y a la incorporación de funciones a los componentes existentes, en vez de escribir los que faltaban.

En 1990, el sistema GNU estaba casi terminado. Faltaba crear un solo componente central, el kernel. Decidimos crearlo como una colección de procesos de servidor que se ejecutaría sobre Mach. Mach es un microkernel desarrollado en la Carnegie Mellon University y, más tarde, en la Universidad de Utah. El GNU Hurd es una colección de servidores —o «manada de gnus»—implantados en Mach que desempeñan las diversas tareas propias del kernel de Unix. Su desarrollo se retrasó mientras esperábamos la publicación de Mach como software libre, tal y como nos habían prometido.

Por fin, Alix y yo nos separamos y ella se cambió de nombre. En cualquier caso, el diseño de Hurd se modificó para que la librería C enviase mensajes directamente a los servidores, lo que supuso la desaparición del componente Alix. Pero antes de todo esto, una amiga de Alix se encontró con el nombre en el código fuente de Hurd y se lo contó. Así que el nombre cumplió su cometido.

El GNU Hurd no está listo para producción. Afortunadamente, otro kernel estaba a nuestra disposición. En 1991, Linus Torvalds desarrolló un kernel compatible con Unix y lo llamó Linux. En el año 1992, la combinación de Linux con el incompleto sistema

GNU resultó en un sistema operativo libre. [Esta combinación fue, por supuesto, una labor extraordinaria]. Gracias a Linux podemos ejecutar hoy una versión del sistema GNU. Denominamos esta versión GNU/Linux para explicar su composición, una combinación del sistema GNU con Linux como kernel.


Hemos demostrado ser capaces de desarrollar una amplia gama de software libre. Esto no significa que seamos invencibles e imparables. Existen diversos retos que plantean un futuro incierto para el software libre. Enfrentarnos a ellos nos exigirá un esfuerzo constante y mucha resistencia, a veces por muchos años. Necesitaremos la clase de determinación que exhibe la gente cuando valora su libertad y la protege a toda costa.
En los cuatro apartados que siguen discutiremos estos retos.

Los fabricantes de hardware tienden cada vez más a mantener en secreto las especificaciones del hardware. Esto dificulta enormemente la tarea de escribir drivers libres para que Linux y Xfree866 sean compatibles con el hardware nuevo. Hoy contamos con sistemas libres y completos, pero no durarán mucho si no son compatibles con los ordenadores del mañana.

Hay dos formas de enfrentarse a este problema. Los programadores pueden hacer ingeniería inversa para descubrir cómo crear programas compatibles con el hardware.

La librería no libre que opera en un sistema operativo libre constituye una trampa para los desarrolladores de software libre. Las atractivas funciones de la librería son el cebo perfecto; al utilizar la librería, caes en la trampa, porque tu programa no puede integrarse de forma útil en un sistema operativo libre. [Estrictamente hablando, podríamos incluir tu programa, pero éste no podría ejecutarse sin la librería]. Y, lo que es peor, en caso de popularizarse un programa que utilice una librería propietaria, podría arrastrar a otros programadores desprevenidos hacia la misma trampa.

La amenaza más seria a la que nos enfrentamos procede de las patentes de software, que pueden introducir algoritmos y funciones fuera del alcance del software libre al menos durante veinte años. Las patentes del algoritmo de compresión LZW se aplicaron en 1983, y todavía no podemos publicar software libre que produzca GIFs adecuadamente comprimidos.

Quienes valoramos el software libre por la libertad que éste entraña seguiremos en la misma línea. Lograremos sacar adelante el trabajo sin funciones patentadas. Pero quienes valoran el software libre porque esperan que sea técnicamente superior se inclinarán por calificarlo de fracaso cuando este software se vea restringido por una patente.

De modo que, a pesar de que resulta muy útil discutir la efectividad práctica del modelo de desarrollo de tipo «catedral» y la fiabilidad y potencia de ciertos programas de software libre, debemos ir más allá. Debemos hablar de libertad y de principios.

La mayor deficiencia de nuestros sistemas operativos no reside en el software, sino en la ausencia de buenos manuales libres para nuestros sistemas. La documentación es una parte esencial de cualquier paquete de software; un paquete importante de software libre sin un buen manual libre que lo acompañe constituye un lastre considerable.

Actualmente, se calcula que existen diez millones de usuarios de sistemas GNU/Linux como Debian GNU/Linux y Red Hat Linux. El software libre ha desarrollado tales ventajas prácticas que está ganando adeptos por razones puramente prácticas.

Las consecuencias positivas de esto son evidentes: un mayor interés por desarrollar software libre, más clientes para las empresas de software libre y una mayor capacidad para alentar a las empresas a desarrollar software libre comercial en lugar de productos de software propietario.

Capitulo 2: El Manifiesto GNU

GNU, que significa Gnu No es Unix, es el nombre de un sistema de software comple­tamente compatible con Unix que estoy escribiendo para poder regalarlo libremente a quien pueda utilizarlo. Hay varios voluntarios ayudándome. Son muy necesarias las contribuciones en tiempo, dinero, programas y equipamiento.

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.

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.

Una vez que se haya escrito GNU, todos podremos obtener un buen sistema de software libre, al igual que obtenemos aire

Las escuelas podrán proporcionar un ambiente bastante más educativo, animando todos los estudiantes a estudiar y mejorar el código del sistema.

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.

Existen varias formas de publicidad gratuita o de bajo costo que pueden usarse para informar a numerosos usuarios de ordenadores acerca de algo como GNU. Pero quizá sea verdad que se puede llegar a más usuarios de microordenadores a través de la publicidad. Si realmente es así, un negocio que haga publicidad del servicio de copia y envío de GNU por un precio, debería ser lo suficientemente exitoso como para pagar como mínimo su publicidad. De esta forma, sólo los usuarios que se beneficien de la publicidad pagarán por ella.

Por otro lado, si mucha gente obtiene GNU a través de sus amistades y estas empre­sas no resultan ser un buen negocio, esto demostraría que la publicidad no era realmen­te necesaria para divulgar GNU. ¿Por qué será que los defensores del libre mercado no quieren permitir que el libre mercado decida esto?

Si hay algo que merezca una recompensa es la contribución social. La creatividad puede considerarse una contribución social, pero sólo si la sociedad es libre de aprove­char sus resultados.

El software propietario y secreto es el equivalente moral de los corredores en una pelea a puñetazos. Es triste decirlo, pero el único árbitro que tenemos no parece estar en contra de las peleas; sólo las regula, por cada 10 yardas que corras, tienes derecho a un disparo». Lo que debería hacer es separarlos y penalizar a los corredores por el solo hecho de intentar pelear.

Capitulo 3: La Definición del Software Libre

El «software libre» es una cuestión de libertad, no de precio. Para comprender este concepto, debemos pensar en la acepción de libre como en «libertad de expresión» y no como en «barra libre de cerveza».

Con software libre nos referimos a la libertad de los usuarios para ejecutar, copiar, distribuir, estudiar, cambiar y mejorar el software. Nos referimos especialmente a cua­tro clases de libertad para los usuarios de software:

Libertad 0: la libertad para ejecutar el programa sea cual sea nuestro propósito.

Libertad 1: la libertad para estudiar el funcionamiento del programa y adaptarlo a tus necesidades —el acceso al código fuente es condición indispensable para esto.

■ Libertad 2: la libertad para redistribuir copias y ayudar así a tu vecino.

■ Libertad 3: la libertad para mejorar el programa y luego publicarlo para el bien de toda la comunidad —el acceso al código fuente es condición indispensable para esto.


Capitulo 4: Por Qué El Software No Debe Tener Propietarios

Las tecnologías digitales de la información ayudan al mundo haciendo que sea más fácil copiar y modificar información. Los ordenadores prometen hacer esto de forma más sencilla para todos.

No todo el mundo quiere que esto sea más fácil. El sistema de copyright permite que los programas de software tengan «propietarios», la mayor parte de los cuales pre­tende privar al resto del mundo del beneficio potencial del software. Los propietarios desearían ser los únicos que pueden copiar y modificar el software que usamos.

Los propietarios usan palabras difamatorias como «piratería» y «robo», al igual que terminología experta como «propiedad intelectual» y «daño», para sugerir una cierta línea de pensamiento al público.

Nuestras ideas e intuiciones acerca de la propiedad sobre los objetos materiales tra­tan acerca de si es justo privarle a alguien de un objeto. No se aplican directamente a hacer copias de algo. Pero los propietarios nos piden que apliquemos estas ideas de todas for­mas.

Los propietarios dicen que sufren un «daño» o «pérdida económica» cuando los usuarios copian programas por su cuenta. Pero copiar no tiene un efecto directo sobre el propietario, y no hace daño a nadie. El propietario sólo puede perder si la persona que hizo la copia hubiese pagado por otra del propietario en su lugar.

Los propietarios a menudo describen el estado actual de la ley, así como las duras sanciones con las que nos amenazan.

Es evidente que las leyes no distinguen lo que está bien de lo que está mal. Todo americano debería saber que, hace cuarenta años, en muchos estados iba contra la ley que una persona de raza negra se sentase en la parte frontal del autobús; pero solamente los racistas dirían que sentarse ahí no estaba bien.

El último argumento que se emplea para justificar la existencia de propietarios de software es que esto conduce a la producción de más software.

A diferencia de los demás, éste argumento por lo menos adopta un enfoque legítimo sobre el tema. Se basa en un objetivo válido —satisfacer a los usuarios de software. Y empíricamente está claro que la gente producirá más de algo si se les paga bien por ello.

Pero el argumento económico tiene un defecto: se basa en la presunción de que la diferencia es sólo cuestión de cuánto dinero debemos pagar. Asume que la «producción de software» es lo que queremos, tenga el software propietarios o no.

La gente acepta gustosamente esta presunción por que está de acuerdo con nuestra experiencia acerca de los objetos materiales. Consideremos por ejemplo un bocadillo. Es posible que puedas conseguir un bocadillo equivalente ya sea gratis, ya por un precio. Si es así, la cantidad que pagas es la única diferencia. Tanto si lo tienes que comprar como si no, el bocadillo tiene el mismo sabor, el mismo valor nutricional, y en cualquier caso te lo puedes comer sólo una vez. El hecho de si el bocadillo lo obtienes de un propietario o no, no puede afectar directamente a nada más que la cantidad de dinero que tienes después.

Tienes derecho a poder cooperar abierta y libremente con otras personas que usan software. Tienes derecho a poder aprender cómo funciona el software, y a enseñar a tus estudiantes con él. Tienes derecho a poder contratar a tu programador favorito para arreglarlo cuando se rompa. Tienes derecho al software libre.

Capitulo 5: ¿Qué Encierra Un Nombre?

Los nombres transmiten significados; nuestra elección de los nombres determina el significado de lo que expresamos. Un nombre inadecuado dará a la gente una idea equivocada. Una rosa, llámese como se llame, destilaría el mismo olor, pero si la lla­mamos «lápiz», la gente podría sentirse decepcionada al intentar escribir con ella. Y si llamamos «rosas» a los lápices, la gente no entendería para qué sirven. Si llamamos «Linux» a nuestro sistema operativo, esto conduce a una idea equivocada sobre el ori­gen del sistema, su historia y su propósito. Si lo llamamos «GNU/Linux», esto conduce —aunque no en detalle— a una idea precisa.

Pero ¿importa esto en nuestra comunidad? ¿Es importante que la gente conozca el origen del sistema, su historia y su propósito? Sí, porque quienes olvidan la histo­ria están condenados a repetirla. El Mundo Libre que se ha desarrollado en torno a GNU/Linux no es un lugar seguro; los problemas que nos llevaron a crear

GNU no han sido completamente erradicados y amenazan con volver.

Cuando explico por qué es apropiado llamar al sistema operativo «GNU/Linux» en vez de «Linux», la gente en ocasiones responde de esta manera:

Aunque es indudable que el proyecto GNU merece el reconocimiento por esta la­bor, ¿merece la pena protestar si no existe tal reconocimiento? ¿No es lo importante que el trabajo se hizo, y no quién lo hizo? Usted debería relajarse, sentirse orgulloso de la labor realizada y no preocuparse por el reconocimiento.

Capitulo 6: Por Qué «Software Libre» Es Mejor Que «Open Source»

El mo­vimiento de software libre y el movimiento open source son hoy en día movimientos separados con diferentes puntos de vista y objetivos, aunque podamos y trabajemos untos en algunos proyectos prácticos.

La diferencia fundamental entre los dos movimientos está en sus valores, en su visión del mundo. Para el movimiento open source, la cuestión de si el software debe ser de fuente abierta es una cuestión práctica, no ética. Como lo expresó alguien, «el open source es un método de desarrollo; el software libre es un movimiento social».

La definición de open source es suficientemente clara y está bastante claro que el típi­co programa no libre no cumple con esa calificación. Entonces pensarás que «compañía de software open source» podría significar aquella cuyos productos son software libre, — o que están cerca de serlo—, ¿correcto? Desafortunadamente, muchas compañías están tratando de darle un significado diferente.

En el encuentro del «Día de fabricantes de open source» en agosto de 1998, varios de los fabricantes comerciales invitados dijeron que ellos solamente tenían en mente convertir una parte de su trabajo en software libre —u open source—. El enfoque de sus negocios está en desarrollar accesorios propietarios —software o manuales— para ven­der a los usuarios de software libre. Nos piden que consideremos esto como legítimo, como parte de nuestra comunidad, debido a que parte del dinero se dona al desarrollo de software libre.

Capitulo 7: Cómo Promover El Software Libre Si Trabajas En La Universidad

En el movimiento del software libre creemos que los usuarios de ordenadores de­berían tener libertad para cambiar y redistribuir el software que utilizan. El adjetivo «libre» en el software libre hace referencia a la libertad: libertad del usuario para eje­cutar, modificar y redistribuir software. El software libre contribuye al saber humano, al contrario que el software propietario. Por este motivo, las universidades deberían fomentar el software libre, para hacer una aportación al progreso del conocimiento hu­mano, del mismo modo que deben animar a científicos y académicos a publicar sus obras.

También se puede pedir ayuda al patrocinador del proyecto. Cuando un equipo de la NYU (Universidad de Nueva York) desarrolló el compilador GNU Ada con fondos procedentes de las Fuerzas Aéreas de los EE.UU., el contrato especificaba que el código resultante se donaría a la Free Software Foundation. Primero se negocia el acuerdo con el patrocinador, luego se explica cortésmente a la administración de la universidad que no habrá renegociación de ninguna clase. Dado que la administración prefiere tener un contrato para desarrollar software libre antes que quedarse con las manos vacías, lo más probable es que acepten el trato.

"Hagáis lo que hagáis, habrá que plantear la cuestión cuanto antes —desde luego, antes de que el programa esté a medio camino. Llegados este punto, la universidad todavía os necesita, así que podréis jugar duro: advertir a la administración de que el programa se terminará y se dejará listo para ser usado, siempre y cuando acuerden por escrito convertirlo en software libre —y acepten la licencia de software libre de vuestra elección. De lo contrario, sólo alcanzaréis a escribir una ponencia al respecto y nunca desarrollaréis una versión lo bastante buena para publicarse. Cuando los gestores com­prendan que sus opciones se limitan a tener un paquete de software libre que aportará prestigio a la universidad o nada de nada, por lo general se decantarán por la primera opción."


No hay comentarios:

Publicar un comentario