Qué es el software libre: libertades, ejemplos y diferencias

Un programa no es software libre simplemente porque podamos descargarlo gratis. Lo que importa es qué nos permite hacer su licencia: utilizarlo, estudiar cómo funciona, modificarlo y compartir copias, también de nuestras modificaciones.

Esta diferencia tiene consecuencias bastante prácticas. Podemos utilizar un programa sin pagar y seguir dependiendo por completo de las decisiones de su fabricante. También podemos pagar por software libre y conservar la posibilidad de adaptarlo o contratar a otra persona para mantenerlo.

Ilustración sobre software libre con los símbolos de GNU, Linux y Open Source Initiative

Las cuatro libertades del software libre

La Free Software Foundation Europe explica el concepto mediante cuatro libertades. Se numeran desde cero:

  • Libertad 0: ejecutar el programa para cualquier finalidad. No queda reservado al uso personal o a determinados sectores.
  • Libertad 1: estudiar su funcionamiento y cambiarlo para adaptarlo a nuestras necesidades. Para hacerlo necesitamos acceso al código fuente.
  • Libertad 2: entregar copias del programa a otras personas.
  • Libertad 3: distribuir las versiones que hayamos modificado, de modo que otras personas puedan utilizarlas también. Esta libertad requiere igualmente el código fuente.

Las cuatro forman parte de la definición. La última no consiste sólo en poder enviar una sugerencia al autor. Se refiere al derecho de compartir una versión modificada, aunque el proyecto original no quiera incorporarla.

Eso tampoco significa que todo usuario tenga que programar. Podemos utilizar una aplicación libre sin saber modificarla, igual que podemos recurrir a un profesional cuando necesitamos un cambio. La licencia permite esa opción. Que tengamos tiempo, conocimientos o presupuesto para aprovecharla es otra cuestión.

Qué cambia para una persona que sólo quiere usar el programa

Imaginemos que utilizamos una aplicación para organizar los documentos de una asociación. Si el programa permite instalar copias, podemos prepararlo en otro ordenador sin depender de que alguien amplíe una autorización individual. Si una función deja de encajar con nuestro trabajo, existe la posibilidad de modificarla o encargar su modificación.

La FSF describe el software libre desde el control del usuario sobre el programa. No se trata únicamente de una comodidad para desarrolladores. También afecta a quién puede dar soporte, investigar un problema o continuar el trabajo si cambia la organización que mantiene el proyecto.

En ese ejemplo, cambiar de proveedor de soporte no debería obligarnos necesariamente a abandonar la aplicación. Sin embargo, la licencia no hace aparecer un equipo de mantenimiento por arte de magia. Si el programa está abandonado y nadie conoce su funcionamiento, continuar tendrá un coste real.

También necesitamos pensar en los datos. Poder modificar la aplicación no garantiza que una exportación incluya todos nuestros documentos y relaciones. Al elegir un programa conviene comprobar tanto sus libertades como la forma de recuperar lo que guardamos en él.

Software libre no significa software gratuito

El precio y las libertades describen cosas diferentes. Una aplicación puede ofrecerse sin coste y prohibir modificarla o redistribuirla. Otra puede venderse bajo una licencia libre y permitir esas operaciones.

La licencia GNU GPL contempla expresamente la distribución de copias cobrando o sin cobrar. Por tanto, vender software libre no contradice su definición. También podemos pagar por instalación, formación, alojamiento, soporte o desarrollo de funciones.

Pagar por una copia no elimina los derechos que concede su licencia. Y que alguien nos entregue una copia gratuita tampoco significa que tenga la obligación de mantenerla para siempre sin cobrar. Podemos recibir el programa bajo una licencia libre y contratar aparte un servicio de soporte.

En una empresa esto permite separar dos decisiones: qué software utilizamos y a quién pagamos por el trabajo que necesitamos alrededor. El coste de ese trabajo puede ser importante, aunque la descarga no cueste nada.

Ver el código no es suficiente

Podemos encontrar un repositorio público que permita leer sus archivos y aun así no tener permiso para distribuir una versión modificada. El acceso al código es necesario para varias libertades, pero necesitamos también una licencia que las conceda.

Por ejemplo, si una aplicación permite estudiar el código pero limita su uso a proyectos no comerciales, no cumple la libertad de utilizarla para cualquier propósito. Puede ser útil para un caso concreto, pero estamos ante otras condiciones.

Tampoco confundimos la libertad del programa con una marca. Tener permiso para redistribuir código no implica poder presentar nuestra versión como si fuera la publicación oficial del autor. El nombre, el logotipo, los complementos y el contenido incluido pueden tener condiciones distintas.

Logotipos de diferentes proyectos y herramientas de software
Logotipos de distintos proyectos. Las condiciones de licencia dependen de cada proyecto y versión.

Software libre y código abierto

No son dos grupos completamente separados donde uno sólo permita modificar y el otro únicamente mirar. La definición de código abierto de la Open Source Initiative exige derechos de redistribución y modificación, además de acceso al código y otras condiciones. Publicar archivos visibles no basta tampoco para cumplir esa definición.

Los términos ponen el acento en cuestiones distintas y existe un gran solapamiento entre los programas y licencias que se describen con ellos. Al valorar una aplicación concreta, la etiqueta de su portada no sustituye leer las condiciones de la versión que vamos a utilizar.

Por eso conviene evitar afirmaciones como «es muy diferente del software libre porque es open source». Necesitamos precisar de qué derechos estamos hablando. Un proyecto puede ser descrito por sus autores como código abierto y ofrecer las cuatro libertades, mientras otro utiliza esa expresión de forma imprecisa.

Licencias libres: permisos con condiciones

Software libre no significa ausencia de derechos de autor ni que podamos ignorar los avisos incluidos. Las licencias establecen cómo se conceden los permisos y qué condiciones debemos respetar al redistribuir.

La licencia MIT, por ejemplo, permite amplios usos del software y exige conservar el aviso de copyright y el de permiso en las copias o partes sustanciales. No es correcto decir que MIT elimina los derechos de autor.

Con la GPL encontramos un planteamiento de copyleft: al distribuir una versión modificada cubierta por ella, deben respetarse sus condiciones para que quienes la reciban conserven esas libertades. Esto no equivale a que cualquier uso privado nos obligue a publicar todos nuestros archivos en Internet.

Hay otras licencias libres con condiciones distintas. Para elegir una en un proyecto hay que revisar su texto, las dependencias y la forma de distribución. Saber que dos licencias son libres no demuestra por sí solo que cualquier combinación de sus códigos sea compatible.

Ejemplos de programas libres

Podemos encontrar software libre para tareas habituales, no sólo sistemas operativos o herramientas de programación:

  • GIMP, para editar y retocar imágenes. El proyecto identifica sus autores y su licencia GPL.
  • LibreOffice, para documentos, hojas de cálculo y presentaciones. Su página de licencias explica la licencia principal y que incluye componentes con otras condiciones.
  • Bash, una de las interfaces de órdenes utilizadas en sistemas GNU/Linux. Es una herramienta que podemos utilizar directamente o como parte del funcionamiento de otros programas.

El programa y los archivos que abrimos con él son cosas distintas. Una fotografía editada con GIMP no se convierte automáticamente en software libre, y escribir un documento con LibreOffice no obliga a publicarlo bajo la licencia de LibreOffice.

También conviene separar una aplicación de los servicios a los que se conecta. Un cliente libre puede necesitar una cuenta en un servicio que administra otra empresa. Su licencia describe el cliente, pero no nos entrega por sí sola el servidor, la cuenta o los datos que ese servicio gestione.

Lo que ser libre no garantiza

Una licencia libre no garantiza que un programa sea rápido, fácil de utilizar, seguro o respetuoso con la privacidad en su configuración predeterminada. Permite estudiar y modificar el código, pero alguien tiene que realizar y mantener ese trabajo.

Para recomendarlo miramos además si está mantenido, cómo se distribuye, si resuelve nuestra tarea y qué dependencias introduce. Es perfectamente posible que un programa libre no sea una buena elección para un caso concreto. Reconocerlo no cambia sus libertades.

Si queremos entender de dónde viene esta idea, podemos seguir con la historia del movimiento del software libre. Para empezar a distinguirlo, basta con recordar dos preguntas: cuánto cuesta utilizar el programa y qué podemos hacer con él. La primera habla del precio. La segunda es la que nos acerca a sus libertades.

Sergio Almela

Senior Software Engineer con más de diez años de experiencia. Escribo sobre Linux, software libre, backend, arquitectura, rendimiento, testing e IA aplicada al desarrollo.

Ver todas las entradas de Sergio Almela →