1.1. ¿Qué es?

1.1.1. Software propietario

Antes de entrar a definir el software libre, veamos algunas características del software propietario mediante un ejemplo.

Imaginad que vais a comprar un coche y las condiciones de compra son:

  1. Ud. sólo puede circular con su coche por la provincia en la que reside. Si quisiera circular por otra provincia diferente necesitaría pagar más dinero en concepto de licencia.

  2. No podrá ceder ni alquilar su coche.

  3. No podrá modificarlo de ninguna manera, no podrá ponerle otro radio-cassette, colgarle unos dados del retrovisor, cambiarle los neumáticos, ... Para hacerlo tendrá que solicitarlo al vendedor y obviamente le cobrarán por ello, y al sólo poder hacer las modificaciones el vendedor ¿se imagina cómo serán las tarifas?

  4. No podrá abrirlo/desmontarlo para estudiar su funcionamiento.

¿Compraría un coche en estas condiciones? Seguro que no. Entonces, ¿cuál es la razón de comprar software propietario bajo unas condiciones similares?

Cuando compra un software propietario, si se molesta en leer la licencia que lo acompaña, verá que:

  1. Sólo podrá instalar el software en un determinado número de equipos, requiriendo el pago adicional, en concepto de licencias, si quisiera instalarlo en más equipos.

  2. Ud. no puede ceder ni alquilar el software que acaba de comprar.

  3. No puede modificarlo de ninguna manera. El único que puede hacerlo es el desarrollador y en las condiciones que considere oportunas (y siempre y cuando le salga rentable).

  4. No podrá realizar ingeniería inversa para estudiar su comportamiento.

1.1.2. Definición de Software Libre

El "Software Libre" es un asunto de libertad, no de precio. Para entender el concepto, debes pensar en "libre" como en "libertad de expresión", no como en "barra libre" [N. del T.: en inglés una misma palabra (free) significa tanto libre como gratis, lo que ha dado lugar a cierta confusión].

"Software Libre" se refiere a la libertad de los usuarios para ejecutar, copiar, distribuir, estudiar, cambiar y mejorar el software. De modo más preciso, se refiere a cuatro libertades de los usuarios del software:

Un programa es software libre si los usuarios tienen todas estas libertades. Así pues, deberías tener la libertad de distribuir copias, sea con o sin modificaciones, sea gratis o cobrando una cantidad por la distribución, a cualquier persona en cualquier lugar. El ser libre de hacer esto significa (entre otras cosas) que no tienes que pedir o pagar permisos.

También deberías tener la libertad de hacer modificaciones y utilizarlas de manera privada en tu trabajo u ocio, sin ni siquiera tener que anunciar que dichas modificaciones existen. Si publicas tus cambios, no tienes por qué avisar a nadie, ni de ninguna manera en particular.

La libertad para usar un programa significa la libertad para cualquier persona u organización de usarlo en cualquier tipo de sistema informático, para cualquier clase de trabajo, y sin tener obligación de comunicárselo al desarrollador ni a ninguna otra entidad específica.

La libertad de distribuir copias debe incluir tanto las formas binarias o ejecutables del programa como su código fuente, sean versiones modificadas o sin modificar (distribuir programas de modo ejecutable es necesario para que los sistemas operativos libres sean fáciles de instalar). Está bien si no hay manera de producir un binario o ejecutable de un programa concreto (ya que algunos lenguajes no tienen esta capacidad), pero debes tener la libertad de distribuir estos formatos si encontraras o desarrollaras la manera de crearlos.

Para que las libertades de hacer modificaciones y de publicar versiones mejoradas tengan sentido, debes tener acceso al código fuente del programa. Por lo tanto, la posibilidad de acceder al código fuente es una condición necesaria para el software libre.

Para que estas libertades sean reales, deben ser irrevocables mientras no hagas nada incorrecto; si el desarrollador del software tiene el poder de revocar la licencia aunque no le hayas dado motivos, el software no es libre.

Así pues, quizás hayas pagado para obtener copias de software GNU, o tal vez las hayas obtenido sin ningún coste. Pero independientemente de cómo hayas conseguido tus copias, siempre tienes la libertad de copiar y modificar el software, e incluso de vender copias.

"Software libre" no significa "no comercial". Un programa libre debe estar disponible para uso comercial, desarrollo comercial y distribución comercial. El desarrollo comercial del software libre ha dejado de ser inusual; el software comercial libre es muy importante.

A veces las normas de control de exportación del gobierno y las sanciones mercantiles pueden restringir tu libertad de distribuir copias de los programas a nivel internacional. Los desarrolladores de software no tienen el poder de eliminar o sobrepasar estas restricciones, pero lo que pueden y deben hacer es rehusar el imponerlas como condiciones de uso del programa. De esta manera, las restricciones no afectarán a actividades y gente fuera de las jurisdicciones de estos gobiernos.

Por último, fíjate en que los criterios establecidos en esta definición de software libre requieren pensarse cuidadosamente para interpretarlos. Para decidir si una licencia de software concreta es una licencia de software libre, lo juzgamos basándonos en estos criterios para determinar si tanto su espíritu como su letra en particular los cumplen. Si una licencia incluye restricciones contrarias a nuestra ética, la rechazamos, aun cuando no hubiéramos previsto el problema en estos criterios. A veces un requisito de una licencia plantea una situación que necesita de una reflexión minuciosa, e incluso conversaciones con un abogado, antes de que se pueda decidir si la exigencia es aceptable. Cuando llegamos a una conclusión, a veces actualizamos estos criterios para que sea más fácil ver por qué ciertas licencias se pueden calificar o no como de software libre.

Por lo general, para decidir si un determinado software es libre, puedes hacerte las siguientes preguntas:

  1. ¿Te dan las fuentes del programa?

  2. ¿Puedes modificar esas fuentes?

  3. ¿Puedes distribuir lo que modifiques?

  4. ¿Puedes vender esas modificaciones al precio que quieras?

  5. ¿Debes añadir las fuentes, obligatoriamente, al distribuir?

Según la FSF si la respuesta a las cuatro primeras es afirmativa el programa es software libre, si además la quinta es también positiva, entonces, será libre y con "copyleft".

1.1.3. ¿Porque tanta oposición?

A muchas empresas de software propietario no les interesa el software libre por motivos claros y sencillos:

1.1.4. Control y seguridad

Cuando adquirimos un software propietario rara vez se nos suministra el código fuente. Sin embargo, la mayoría de la gente no le da importancia a este hecho ya que, como ellos dicen, "¿Y qué me importa a mí que me den el código fuente si no tengo los conocimientos necesarios para leerlo?".

Sin embargo, la única forma de poder fiarnos de la seguridad de un programa informático es tener a nuestra disposición el código fuente, ya que de esta manera podemos ver cómo ha sido programado y si lo ha sido de forma correcta. Además, también podremos comprobar que en dicho programa no hay:

La única forma de detectar todo esto es mediante la disponibilidad del código fuente, ya que encontrar un bug en un programa de ordenador no es tan sencillo como se piensa, a menos que se disponga del código fuente. La disponibilidad del código fuente nos da más seguridad en el sentido de transparencia: como el código fuente está disponible se puede auditar y comprobar así que está libre de puertas traseras y/o funcionalidades no documentadas, ya que en caso de tenerlas se descubrirían, y su hallazgo sería una auténtica vergüenza para la empresa que lo vende, pudiéndola llevar a la ruina.

1.1.4.1. Estándares abiertos

Para conservar la libertad de la información, es imprescindible el uso de estándares abiertos. Esto es, estándares establecidos por entidades internacionales e independientes de las empresas particulares (ISO, IEEE, ...).

De otra manera dependeríamos de los intereses de la empresa que comercializa el software. Siendo este el único que puede leer nuestra información y no siendo posible que otras entidades escriban software alternativo, estaríamos vendidos.