Significado de Software Libre y Software Abierto

Ambos promueven el acceso al código fuente más allá de las diferencias

¿Qué es el Software Libre y Software Abierto?

Software Libre se basa en 4 leyes creadas por Richard Stallman oficializado en 1985, para que sea posible visualizar, editar y compartir gratuitamente un programa informático, mientras que Software Abierto implica apenas tener acceso al código, flexibilizando las opciones de distribución del fabricante y limitando los derechos del usuario final.

Características del software libre

La formulación del software libre nacen con un nombre propio: Richard Stallman. Este informático -todo un personaje por su curioso carácter- bebía intelectualmente en buena parte de la contracultura tecnológica norteamericana, la cual abrazaba la idea de libertad de la información en su sentido más amplio.

Un incidente con una impresora llevó a Stallman a una reflexión que desembocaría en la definición del software libre.

En 1980, la empresa en la que Stallman trabajaba recibió una nueva impresora Xerox. En el caso del anterior modelo, el propio Stallman había modificado el controlador de la impresora para que avisara a los usuarios de cuando sus trabajos entraban a imprimirse, y si esta sufría un atasco de papel. Pero con los controladores del nuevo modelo no se incluía su código fuente, necesario para realizar las modificaciones ya que debía ser recompilado.

Los 4 Principios sobre los cuales se rige

Tras la pataleta inicial, el incidente llevó a Stallman a reflexionar sobre algo a lo que había ido dando vueltas los años precedentes, y a lo que al final pondría unas reglas, las llamadas cuatro libertades del software libre, y que son:

  • Libertad 0: de utilizar el programa con cualquier finalidad.
  • Libertad 1: de estudiar el programa y modificarlo para adaptarlo a un uso distinto.
  • Libertad 2: para distribuir copias del programa.
  • Libertad 3: de mejorar el programa, con la obligación de hacer públicas las mejoras para beneficiar a la comunidad.

Para garantizar que se puedan llevar a cabo las libertades 1 y 3 es un requisito indispensable disponer del código fuente, precisamente lo que no permitía el controlador de la ahora famosa impresora Xerox.

En 1983, el mismo Richard Stallman anunció el despegue del proyecto GNU con el objetivo de construir un sistema operativo completamente basado en el modelo de licencia de software libre.

La Free Software Foundation, la entidad que respalda a nivel internacional el desarrollo de software libre, ayuda a la comunidad de desarrolladores y orienta a los usuarios, nacía al calor de este movimiento en 1985.

Gracias al proyecto GNU en concreto y a los movimientos que se empezaron a generar a su alrededor, nacieron múltiples iniciativas de programas de aplicación bajo licencia libre, que buscaban ser la alternativa a homólogos comerciales, aunque tenían una aureola (de la que nunca se han podido desprender) de que iban un paso más atrás en lo que se refiere a avances tecnológicos.

El problema del proyecto GNU es que, tras unos años de trabajo en él, carecía de un núcleo (kernel) que pudiera utilizar. Esto se solucionó en 1991 gracias al trabajo de un estudiante finlandés de informática llamado Linus Torvalds.

El núcleo de Torvalds, llamado Linux, encajó bien con el resto de componentes del proyecto GNU, e interesó también a la comunidad de desarrolladores que trabajaban en él, de forma que rápidamente empezaron a distribuirse los resultados conjuntos de ambos como GNU/Linux. Posteriormente, el proyecto GNU creó otro kernel, The Hurd, el cual no tuvo mucho éxito.

Si bien GNU/Linux es el paradigma del software libre, no es el único proyecto que ha disfrutado de éxito bajo este tipo de licencia; la suite ofimática LibreOffice, el servidor Apache, el programa de retoque fotográfico The GIMP, e incluso otros sistemas operativos como FreeBSD, están sujetos también a licencias libres.

Estas también han proliferado y se han diversificado, pero una licencia será libre mientras respete las cuatro libertades antes mencionadas.

Características del Software Abierto

Si bien al software libre podemos asignarle un “punto de partida”, un momento determinado en el que nació, no es tan fácil hacerlo con el software abierto, puesto que esta filosofía ha flotado en el ambiente desde los albores de la informática.

En los primeras computadoras, en los años 40, no existía el concepto de software separado de la máquina, aunque el concepto de programa como algoritmo existía desde los trabajos de Ada Lovelace (considerada la primera programadora de la historia) en el siglo XIX.

Estas primeras computadoras se programaban directamente, mediante una serie de interruptores. Fue solo a partir de los años 50, en el que los programas se diferenciaron y se empezaron a almacenar en medios externos (como cintas), para ser cargados sin necesitar de reprogramar físicamente la computadora.

Inicialmente, se consideraba que el software era una parte integral de la computadora, y los fabricantes del hardware lo vendían con una serie de programas (el sistema operativo y poca cosa más), con lo que los usuarios debían adquirir el resto de software necesario… o ante la escasez (recordemos que estamos hablando de los primeros pasos de la computación), desarrollarlo ellos mismos.

Muchas veces, los encargados de desarrollar los programas de aplicación no eran científicos dedicados al uso de la computadora, si no perfiles de usuario que variaban entre varios perfiles de ciencias, y de economía. El resultado es que no licenciaban el programa, y repartían el código fuente (muchas veces, los programas de aplicación eran escritos en lenguajes interpretados, no compilados) entre amigos y conocidos que compartían inquietudes, profesión y necesidades.

Diferencias entre Abierto y Libre

Código abierto no implica software libre, si bien software libre sí implica código abierto para garantizar las libertades 1 y 3 como hemos visto antes.

Pero, si distribuímos un programa con el código fuente accesible, ¿cómo garantizamos que este no será copiado, modificado o cualquier otra cosa que no queramos? Pues por la licencia.

Para utilizar un programa, habitualmente hay que aceptar una licencia de uso, que es la que otorga las libertades, pero también impone las obligaciones del usuario para con el programa.

¿Existen a la práctica casos de este tipo? Sí, si bien no es en absoluto habitual en el software de aplicación para el usuario final, si no que es más bien algo más propio del software profesional, especialmente para aplicaciones de uso industrial y para tareas muy concretas, en las que hay que adaptar el programa a cada caso de uso.

En estas circunstancias, la disponibilidad del código fuente se requiere para poder modificar su uso, adaptándolo al que se requiere, pero acorde con una licencia no libre, se puede impedir la distribución del código original o, incluso, de las modificaciones.

Se dice del software de código abierto que potencia el desarrollo colaborativo, lo cual no es menos cierto para el software libre, no habiendo para ambos diferencias en este sentido. Proyectos como GNU/Linux o LibreOffice son excelentes muestras de proyectos colaborativos en el mundo del software libre.

Las empresas también han utilizado una u otra filosofía según su conveniencia, tampoco habiendo diferencias en este sentido.