El Software Libre

«Software Libre», según la Free Sofware Foundation (FSF) (1) , es la libertad de los usuarios para ejecutar, copiar, redistribuir, estudiar, cambiar y mejorar el software.

Aunque esta definición de la FSF (también conocida como GNU, aunque GNU es tan sólo uno de sus proyectos) es ampliamente aceptada, no existe consenso al respecto.

Hay cuatro premisas básicas que sí son aceptadas por toda la comunidad (2):

La libertad de usar el programa, con cualquier propósito.

La libertad de estudiar cómo funciona el programa, y adaptarlo a tus necesidades.

La libertad de distribuir copias, con lo que puedes ayudar a tu vecino.

La libertad de mejorar el programa y permitir la redistribución de las mejoras a los demás, de modo que todo el mundo se beneficie.

En España son confundidos frecuentemente los términos Free Software (Software Libre) y Open Source (3) (Código Abierto). R.M. Stallman, fundador de la FSF (1984) hace notar las diferencias entre ellos, siendo el primero un movimiento social desarrollado por voluntarios y el segundo una iniciativa empresarial. Aparte de las diferencias de finalidad, donde el Software Libre busca un compromiso de Libertad y OpenSource una mejora en los metodos tradicionales de programación.

La OSI (Open Source Initiative) fue fundada en 1998 a raíz del éxito obtenido por el Software Libre. A pesar de sus diferencias éticas, las dos fundaciones han trabajado conjuntamente en varias ocasiones.

El Origen del Software Libre

Contrariamente a la creencia popular el Software Libre está ahí desde el principio. Antes que nada, existió el Software Libre, y posteriormente, se empezó a patentar y crear el software propietario.

En los años 70, la era de los auténticos hackers, los programadores intercambiaban sus programas, publicaban sus investigaciones y mostraban abiertamente como habían implementado sus ideas y algoritmos.

Por aquél entonces la informática aun no se había introducido en el ámbito empresarial, quedando prácticamente confinada a la investigación universitaria.

En 1975 los Laboratorios Bell establecieron una licencia de pago a las universidades por el uso de su sistema Unix, siendo éste el origen del software propietario e impidiendo así su libre distribución (4).

En 1984 miles de patentes regían un férreo sistema de control sobre los programas, la investigación era cerrada y nadie compartía los códigos pues las empresas lo evitaban con clausulas contractuales y demandas judiciales por incumplimiento de patentes. Ese año, R.M. Stallman creó la FSF cuyo objetivo era diseñar un sistema operativo de libre distribución. A ese sistema se le llamó GNU (curioso acrónimo que significa GNU is Not Unix). Hoy en día (Febrero de 2003) ese sistema se llama GNU/Hurd y aún no ha sido finalizado (5).

Es en 1991 cuando el Software Libre da un paso de gigantes. Un estudiante de la Universidad de Helsinki llamado Linus Torvalds creó Linux (6), un sistema operativo (aunque el mismo L. Torvalds lo define como Kernel y no como sistema), basándose en un sistema tipo Unix (minix) inventado por un profesor suyo, Andrew Tanenbaum, y lo puso disponible en Internet como Sofware Libre con la siguiente frase:

«Hola internautas, debido a un proyecto en el que estoy trabajando (mimix), estoy interesado en la definición del estándar posix. ¿Alguien puede guiarme a (preferentemente) algún formato legible por la máquina de las últimas reglas posix? Un FTP sería estupendo.»

Y fue con este mensaje con el que empezó Linux. Otros internautas que también querían estudiar Unix y no podían pagar sus licencias (en aquella época exorbitantes) le pidieron el código, y poco a poco éste fue propagándose por Internet. Estos mismos usuarios empezaron a modificarlo y a enviar esas modificaciones a L. Torvalds. Hoy en día se estima que Linux está instalado en dieciocho millones de ordenadores en todo el mundo (7), desde los transbordadores espaciales de la NASA (8), pasando por escuelas de la India (9), hasta en mi propia casa donde lo utilizamos mi novia y yo.

Linux es uno de los pilares y una de las polémicas más importantes en el Software Libre, pues como sistema operativo utiliza y contiene muchas herramientas de GNU y como tal mucha gente defiende la idea de que Linux no es Linux, es GNU/Linux (10), dado que Linux es simplemente el kernel o Nucleo de Sistema, y en cuanto a que está basado en dichas herramientas. Otra gente es contraria, pues Linux no solo cuenta con herramientas GNU importantes para su desarrollo sino que tiene otros paquetes de Software como Apache, KDE o X11 que no son partes del proyecto de la FSF y, por lo cual, el sistema debería llamarse X11/KDE/GNU/.../Linux, de manera que éstos últimos le llaman simplemente Linux para no menospreciar a nadie.

El Trabajo conjunto y su autoorganización.

La comunidad del Software Libre se autoregula constantemente, partiendo de la base de la comunicación entre iguales, donde un usuario tiene el mismo peso estructural e importancia que el autor de un programa debido a que son los mismos usurarios quienes publicitan, promulgan y hacen de soporte técnico de los programas.

Cuando un usuario descubre un bug (fallo) en cualquier programa envía un correo electrónico notificando el fallo al autor, que le permite mejorar el programa.
Curiosamente, un programa alcanza más éxito cuantos más correos de notificación de bugs y peticiones tiene. Ésto no significa que el programa esté mal diseñado sino que está mucho más probado. Hoy en día no se conoce ningún programa relevante que no tenga o haya tenido fallos y aquí es donde el Software Libre aventaja al software comercial.
En el mismo momento en que un bug es publicado los usuarios conocen donde hay un fallo de seguridad, cuando se produce y porqué. Todo aquél que tenga conocimientos adecuados para arreglar el problema puede encontrar una solución que finalmente el autor pondrá a disposición pública. Se han dado casos en que al mismo tiempo que un usuario notificaba un fallo, mandaba anexa la solución a éste. Este proceso se ha llegado a realizar en menos de una hora.

En un programa propietario cuando un usuario descubre un bug puede notificarlo a la empresa pero no puede hacerlo público. El hacer público un fallo de seguridad de software propietario puede constituir delito en EEUU (11), donde se encuentran las empresas más importantes de software comercial. El hecho de que el proceso se realice internamente, añadido a que las notificaciones de fallos que reciben las empresas son pocas, implica que la solución puede tardar días o incluso meses en encontrarse.

El proceso de depuración que siguen los programas de Software Libre influye directamente en su forma de creación y distribución.

Los programas de Software Libre están disponibles para que puedan ser probado antes incluso de estar terminados lo que supone otra de sus ventajas respecto al software comercial. Es lo que se llaman versiones Alpha, en las que cualquiera puede participar para ayudar a terminarlas o buscar los errores existentes.

El siguiente paso en la creación de un programa son las versiones Beta, aquellas que estando finalizadas se publican para ser probadas y descubrir todos los fallos. Estas versiones no están destinadas a usuarios finales aunque ha habido versiones Beta en entornos de producción que han cumplido con las exigencias esperadas con tanta o más fiabilidad que los productos finales.

Una vez probados y corregidos los fallos descubiertos, las versiones Beta se distribuyen como producto final, teniendo aun varias revisiones posteriores donde se arreglan los bugs encontrados en ésta.

La totalidad del proceso la realizan los mismos usurarios de Software Libre, con lo que son miles de colaboradores los que ayudan al programador original a mejorar el programa continuamente.

Otra de de las ventajas que tiene dicho sistema de trabajo consiste en el acercamiento que se produce entre los mejores programadores del mundo y los usuarios finales. Sin ir más lejos, yo mismo he cruzado un par de correos electrónicos con Richard Stallman, fundador de la FSF. ¿Te imaginas a Bill Gates respondiendo a tus correos electrónicos? En el Software Libre ésto no sólo es posible sino que es necesario para el buen funcionamiento de la comunidad.

Hasta ahora se ha destacado el papel del usurario como elemento para el funcionamiento y la mejora del Software Libre pero también existen grupos de desarrollo. Un grupo de desarrollo puede estar formado por personas de distintas áreas de conocimiento (programadores, administradores, usuarios, filósofos, abogados ...) e incluso empresas -IBM (12), HP (13)- para la creación de un programa de Software Libre. Los miembros de estos grupos suelen vivir en distintos lugares y países y su comunicación se establece a través de Internet, ya sea por correo electrónico, chat, listas de noticias o incluso por programas de conversación de voz. Cada grupo establece su propio sistema de comunicación y en el trabajo siguen un estándar definido, que puede no ser el mismo en todos los casos. Aunque existen multitud de estándares, se tiende a la unificación.

Además de participar en el desarrollo del programa se puede contribuir de otras formas y desde cualquier profesión (docentes, traductores, músicos, dibujantes, diseñadores gráficos ...). Incluso se puede participar en el Software Libre simplemente dándolo a conocer, pues no solo se trata de un movimiento exclusivamente tecnológico sino que implica y beneficia a todas las capas de la sociedad.

Hay un ejemplo cercano que muestra como el Software Libre puede beneficiar a toda la sociedad. Linex (14) es una distribución de Linux que ha desarrollado la Junta de Extremadura y que distribuye de forma gratuita a todo aquél que quiera usarla. Sus ventajas no son exclusivamente económicas, pues además conlleva que los técnicos que trabajan en esa comunidad se convierten en referencia tecnológica. Linex es hoy en día una referencia para todos los gobiernos interesados en desvincularse de sistemas cerrados.

Por ejemplo, si la Xunta de Galicia estuviera interesada en implementar este proyecto podría aprovechar todo el trabajo realizado en Extremadura y tan sólo debería adaptarlo a sus necesidades, como podría ser una traducción al gallego. De esta manera se beneficiarían ambas administraciones, ya que aumentaría considerablemente el número de mejoras en dicho sistema al tener un mayor ámbito de actuación.

No solo las administraciones públicas pueden beneficiarse del Software Libre, sino que también puede interesarle a las empresas el desarrollo de estas aplicaciones. Las llamadas Empresas de Servicio de Software Libre (como Suse15)desarrollan programas capaces de penetrar en el mercado, que como software propietario no podrían competir con las aplicaciones ya establecidas, y obtienen beneficios ofreciendo soporte técnico y otros servicios (modificaciones, mejoras ... incluso la venta de merchandasing16). La empresa creadora es la principal referencia en cuanto a conocimientos de un programa, por lo cual todo aquél que necesite adaptarlo a sus necesidades y no pueda contratará probablemente a esta empresa.

Realmente a día de hoy se desconoce porqué la organización en el Software Libre funciona de manera tan eficiente.

Se están empezando a realizar estudios desde varias disciplinas (antropología, sociología ...) pero dada su complejidad aun no se ha alcanzado ninguna conclusión.

Defensa Legal del Software Libre.

No se puede hablar de Software Libre sin hacer referencia a su necesidad legal de protección mediante un sistema de licencias que obliguen a respetar sus cuatro libertades y evite la apropiación de las aplicaciones por corporaciones de software comercial, que luego lo patentaban como propio. Para evitar estas apropiaciones la FSF reunió un cuerpo propio de abogados voluntarios (17) e ideó el sistema de licencias GPL (General Public License)18 que ha resultado ser una forma eficaz de protección contra la patentes.

Este equipo de la FSF se encarga de redactar las licencias, corregirlas y adaptarlas a los cambios que en el entrono se originan.

Sin embargo, hay muchos creadores de Software Libre que no están de acuerdo con estas licencias y han redactado las suyas propias, incluyendo aquí programas tan importantes como Apache19 o X1120.

En cualquier caso, todas las licencias sin excepción deben contemplar las cuatro libertades básicas anteriormente citadas para ser cosideradas Software Libre.

La Licencia GPL es la más utilizada actualmente y la que más apoyos está consiguiendo por parte de la propia comunidad del Software Libre, pues no solo obliga a que una aplicación cumpla las cuatro libertades, sino que su distribución en cualquier otro programa sea a su vez Licencia GPL.

Esta licencia consta de trece términos y condiciones para la copia, distribución y modificación, y en su traducción al castellano21 se indica que ésta no tiene validez jurídica y debe regirse por su versión en inglés.

Se establece en el primer término, que todo programa que se haya hecho basándose en programas con licencia GPL serán a su vez GPL, autoprotegiéndose así para impedir a las empresas cerrar dicho código. Esto, no obstante, no quiere decir que no podamos usar un compilador como es GCC para programar una aplicación de software cerrado, sino que nadie puede coger el código de GCC, convertirlo en software cerrado y aplicarle una patente. En definitiva, se prohíbe explícitamente hacer de un programa de Software Libre una versión o modificación que sea software propietario o cerrado.

En el punto 2 obliga a todo aquél que redistribuye el Software Libre a incluir de forma clara con dicho software la correspondiente licencia GPL, para que la persona que lo reciba sea informada de qué está recibiendo y en qué condiciones. Esto puede ser incluido en papel, en formato electrónico o en cualquier otra forma de distribución, siempre y cuando quede constancia de que así ha sido. Además, también implica que todo creador de Software Libre está exento de responsabilidades sobre el software en sí, y aunque parezca que contradice los derechos del consumidor podemos observar que en el software cerrado se aplican las mismas clausulas, las cuales rehúsan toda responsabilidad por los daños que dicho software pueda causar.
También hace referencia a que se puede cobrar por la distribución de dicho software, por prestar servicios de implementación, desarrollo y/o administración, lo cual hace ver que el Software Libre no es necesariamente gratuito como ya se ha explicado anteriormente.

El siguiente punto se divide en tres partes.

La primera, protege a los autores originales de las distintas evoluciones que puede tener su software en manos de terceras personas, pues obliga a que se establezca diferenciación clara del producto original sobre el modificado, respetando así el trabajo realizado por el autor. Esto no es más que una forma de respeto hacia el autor ya que su nombre no se pierde en caso que una empresa adoptara dicho software y creara su propia versión (la cual debe ser Software Libre también). Esta práctica es inexistente en el mundo del software propietario donde un producto solo hace referencia a la empresa dueña de éste.

La segunda parte establece que cualquier producto que se origine en base a software protegido por GPL debe respetar esta licencia y automáticamente dicho producto realizado pasa a ser GPL, protegiéndose así de patentes y de cualquier apropiación.

La tercera parte se centra en la protección de los programas sobre los que se aplica un FrontEnd. Los FrontEnds son una capa de abstracción sobre otro programa que hace que éste último sea más fácil de utilizar. Normalmente estos programas no muestran los mensajes del programa que están usando de fondo y como tal todas las referencias al autor o la licencia se pueden perder. Para que esto no sea así, el mismo FrontEnd debe contener la licencia original y el nombre del autor y el programa que usa de forma clara y bien visible.

Como ejemplo, el programador A realiza un programa que funciona como calculadora, y que pasándole como parámetros dos números y una operación devuelve un resultado.

Se efectuaría:
calculadora 2*8
Y devolvería por pantalla:
Resultado 16. Programa realizado por A (GPL)

Este programa es simple y funciona, pero el programador B ha decidido que sería más fácil de usar si diseñase un dibujo de una calculadora que lo hiciera todo solamente pulsando los botones con el ratón, pero para averiguar los resultados usa de base el programa de A que es eficiente en dicha función. B debe hacer constar en formato electrónico el nombre del programador A y el de su programa, distribuyéndolo junto al resto de su propio programa para que sea legal. Dicha imposición permite que el primer programador tenga su justo mérito.

La distribución del segundo programa tiene así una dificultad añadida, pues aparte de distribuirse en sí está obligado a distribuir el primero, y jamás hacerlo de manera que no se vea claramente que son dos programas distintos y no solo la aplicación gráfica.

Sin embargo, una vez explicados los tres apartados, la licencia GPL especifica claramente que cualquier resultado obtenido con cualquier programa no tiene porqué ser GPL. En el caso del programa de la calculadora es absurdo que un número tenga que serlo, pero hay otras ocasiones en que el resultado de un programa es otro programa. Dicho programa, siempre y cuando sea resultado y no derivación o modificación del primero, puede tener cualquier tipo de licencia, pudiendo ser Software Libre, propietario o lo que se desee. Un claro ejemplo de esto sería el juego del ahorcado realizado con un compilador GPL, dicho juego al tratarse de resultado y no de derivación podría ser publicado con cualquier tipo de licencia.

El punto 4 obliga a una de estas tres condiciones:

A distribuir en formato electrónico junto a los programas ejecutables el código fuente de dicho software.

A incluir una copia por escrito en caso de venta, de que al menos durante tres años se mantendrá la posibilidad de entregar una copia del código fuente.

A distribuir el programa sin el código fuente, si así se hubiera recibido, siempre y cuando éste perteneciera a una distribución no comercial del mismo.

El punto 5 informa que cualquier incumplimiento de esta licencia haría perder los derechos de uso sobre el software, habiendo precedentes de ello en un caso que ganó la FSF. En este caso una empresa distribuyó MySQL sin el código fuente, aunque en la versión siguiente lo hiciera. En el juicio perdieron el derecho a distribuirlo por el culpa de dicho incumplimiento22.

El siguiente término es un recordatorio de que para usar Software Libre hay que aceptar la licencia que lo regula, o lo tomas o lo dejas.

El punto 7 indica que ninguna empresa puede ampliar la licencia original, teniéndose que respetar para la distribución de cualquier modificación dicha licencia.

A continuación, la licencia informa que si se incurriera en incumplimiento de alguna patente y judicialmente se obligara a al cumplimiento de dicha patente que lo hiciera incompatible con la licencia GPL, la distribución de dicho programa bajo licencia GPL debería cesar inmediatamente. También añade que si un tribunal juzga improcedente alguna de las restricciones de la licencia GPL, la licencia se seguiría aplicando en el resto de puntos.

El punto 9 establece que en caso de incumplimiento de alguna patente o copyright en determinada zona geográfica, la licencia debería explicitar que la utilización de dicho programa queda excluida de dicha zona. Esto ha pasado por ejemplo con los sistemas de encriptación en EEUU donde han sido retirados, siendo sin embargo válidos en Europa y el resto de países23.

En el siguiente término de la licencia explica que la FSF publica continuamente versiones revisadas de sus licencias, pudiendo un programa anunciar de forma explícita que sus condiciones son de una versión en concreto (actualmente la versión 2) o que es extensible a la última versión disponible, previniendo así futuros condicionantes.

El punto 11 condiciona la utilización de un programa con licencia GPL en otro programa (con licencia también considerada de Software Libre) al permiso del autor de dicho programa y de la FSF, necesitando pues de ambos permisos para su uso. Las distribuciones Linux, son un claro ejemplo de ello, mezclando muchas licencias distintas pero todas permitidas.

Los dos últimos puntos son realidad ausencias de garantías de software GPL, explicando que el uso o defectos que estos programas contengan son responsabilidad del usuario y no del creador. Ésto, que parece excesivo, funciona de la misma manera en software comercial, donde el usuario además de pagar por el programa comprado24 no tiene ningún derecho de modificiación o mejora sobre éste.

El futuro del Software Libre.

El futuro del Software Libre es incierto, no porque se ponga en duda su éxito sino por su evolución. Cada año como mínimo se duplica e número de usuarios en el mundo25 y las empresas implicadas están empezando a obtener beneficios y posicionándose como auténticos monstruos tecnológicos, donde quizás el ejemplo más claro lo tengamos en Red Hat26, líder de distribuciones comerciales de Linux, hoy en día.
Además a esto hay que sumar su seguridad, pues actualmente el Software Libre ha demostrado ser el más seguro del mundo. Por ejemplo, en sistemas operativos Linux o BSD la incidencia de virus es cero al año.

A pesar de este clima optimista, se teme que se promulguen leyes (especialmente en EEUU) referentes a patentes27 para la protección de empresas privadas26, como Microsoft, las cuales podrían provocar que el Software Libre se convirtiese en ilegal.

Pero una cosa es el futuro global del Software Libre, y otra es el futuro en determinados ámbitos como en el tercer mundo, donde el éste les acerca la última tecnología adaptándose a sus necesidades (lenguas, dialectos, grafías ...) que no tienen versión en programas de empresas occidentales. Por ejemplo, KDE29, uno de los principales sistemas de escritorios de Linux, está traducido a más de cien idiomas incluyendo varios dialectos del hindú, japonés o chino.

El futuro del Software Libre sólo lo puede decir el tiempo.

Enlaces

1. http://www.fsf.org
2. http://www.fsf.org/philosophy/free-sw.html
3. http://www.opensource.org
4. http://www.giga.islagrande.cu/articulocompleto.htm
5. http://www.gnu.org/software/hurd/hurd.html
6. http://www.linux.org
7. http://counter.li.org/
8. http://flightlinux.gsfc.nasa.gov/
9. http://mm.ilug-bom.org.in/pipermail/life/2001-December/000098.html
10. http://www.gnu.org/gnu/linux-and-gnu.html
11. http://dc.internet.com/news/article.php/1553451
12. http://www.hp-linux.org
13. http://www.ibm.com/linux/
14. http://www.linex.org
15. http://www.suse.de
16. http://www.thinkgeek.org
17. http://www.fsfeurope.org/projects/law/law.en.html
18. http://www.gnu.org/copyleft/gpl.html
19. http://www.apache.org/LICENSE-1.1
20. http://www.x.org/Downloads_terms.html
21. http://gugs.sindominio.net/gnu-gpl/gples.html
22. http://www.gnu.org/press/2002-03-01-pi-MySQL.html
23. http://news.com.com/2100-1023-947325.html
24. http://www.calumsmusic.netfirms.com/EULAXPPRO.pdf
25. http://counter.li.org
26. http://www.redhat.com
27. http://bulmalug.net/body.phtml?nIdNoticia=1398
28. http://petition.eurolinux.org/reference/index_html
29. http://i18n.kde.org/