¿Cómo surgió el software libre?

Se va a presentar una aproximación histórica al software libre. Este enfoque ayudará a entender el punto de vista que se mantiene en esta serie de artículos: que el software es, por naturaleza, libre.

El software empezó siendo libre

En los inicios de la informática, durante los años 1950 y 60, el esfuerzo investigador de universidades y empresas estaba concentrado en desarrollar el hardware y la electrónica. Los ordenadores de esa época tenían pocas posibilidades comparados con los actuales, por eso el software jugaba un papel secundario, ya que se consideraba parte del producto de hardware.

En los laboratorios y en las universidades, era muy común compartir el software igual que se comparte el conocimiento o los métodos matemáticos1. Teniendo en cuenta que muchos de esos primeros investigadores eran matemáticos, aplicaron de manera natural sus principios de colaboración para resolver los nuevos retos que planteaba la informática.

Estos dos aspectos, crearon un ambiente inicial de colaboración entre investigadores y académicos de la época, que compartían libremente el código fuente de los programas que escribían. Ambiente que se rompió cuando las empresas empezaron a ver el software como un producto distinto del hardware, y un negocio potencial.

Aparece el software propietario

A principios de los años 1970 los ordenadores ya eran lo bastante potentes para permitir la ejecución de software complejo, el desarrollo del cual era muy costoso en recursos humanos y de tiempo. Entonces se empezaron a producir productos de software separados del hardware, dando lugar al nacimiento de empresas dedicadas únicamente a la producción de software, la mas conocida y destacada de las cuales es Microsoft, fundada en 1975.

Para asegurar su continuidad y la absoluta dependencia de sus clientes, las empresas de software siguieron diversas estrategias, de las cuales destacan dos:

Estas estrategias han conducido a la industria del software a convertirse en uno de los negocios mas rentables del siglo XX, y a sus dueños a amasar las mayores fortunas del mundo2. Pero ¿ha sido a cambio de un producto de calidad y de favorecer los derechos de sus clientes? La respuesta es que no. Las dos estrategias mencionadas son perniciosas para los usuarios -clientes de estas compañías- ya que recortan fuertemente sus derechos sobre el software, tal como se comenta a continuación.

En primer lugar, el hecho de no entregar el código fuente hace que el usuario no pueda corregir posibles -y muy frecuentes- errores en el software. Cuando alguien adquiere un coche puede abrir el capó y ver el motor, si tiene conocimientos de mecánica, puede arreglarlo el mismo y, si no los tiene, puede llevar su coche al taller que prefiera. En el software propietario, como no se entrega el código fuente, no puede verse ni tocarse nada, no hay posibilidades de corregir errores, solo queda esperar a que la empresa saque una nueva versión del software y la adquiera, pagando nuevamente la licencia.

En segundo lugar, las licencias de software propietario son muy restrictivas. Son términos habituales de estas licencias el no poder compartir con nadie el software, o no poder instalarlo en dos ordenadores, incluso aunque ambos sean propiedad del mismo usuario, como el portátil y el PC de sobremesa. Más adelante describiremos otras estrategias de las empresas de software propietario, que también perjudican a sus usuarios. El conjunto de prácticas seguidas por estas compañías crearon, durante los años 1980, un descontento general en muchos usuarios, algunos de los cuales iniciaron proyectos por su cuenta para desarrollar su propio software.

Los primeros proyectos de software libre

Puede ser anecdótico, pero se dice que el movimiento del software libre empezó con una impresora que funcionaba incorrectamente. Richard Stallman, un investigador que trabajaba en el MIT (Massachusetts Institute of Technology) decidió arreglarla, pero el fabricante de la impresora se negó a entregarle el código fuente del controlador.

Durante los años 1980, Richard Stallman, un inconformista, también estaba descontento con las restricciones que imponían las licencias del sistema operativo UNIX, y se decidió a iniciar un proyecto personal para desarrollar un sistema operativo3 completo, libre y totalmente abierto, sobre el cual pudiera hacer funcionar cualquier otro software. Nacía así el proyecto GNU4, y aparecía el segundo pilar del software libre: el voluntariado.

Ya se ha comentado en la introducción que el software libre se fundamente en dos valores. La colaboración es típica de la comunidad científica y de los entornos universitarios y de investigación, entorno en el que se desarrollaron las primeras piezas de software, tal como se ha descrito. El segundo valor, el voluntariado, se inició en el MIT de la mano de Richard Stallman, que decidió trabajar en un sistema operativo sin cobrar, ya que ese proyecto no formaba parte de su empleo. Así, solo falta un tercer ingrediente, que permita crear grandes comunidades de voluntarios dispuestos a colaborar con un objetivo común. Este ingrediente fue Internet, que se extendió por todo el mundo durante los años 1990.

Fue precisamente a principios de los años 1990 cuando Linus Torvalds, un estudiante de la universidad de Helsinki, inspirado en un pequeño sistema operativo didáctico llamado Minix5, inició la pieza que le faltaba al proyecto GNU: el núcleo del sistema operativo. Linus Torvalds aprovechó Internet para crear una comunidad que colaboró en su proyecto, el cual acabó recibiendo el nombre de Linux. El núcleo Linux es un clon de los sistemas operativos UNIX, que complementa el software del sistema GNU iniciado por Richard Stallman y que, juntos, forman un sistema operativo completo llamado GNU/Linux, constituido íntegramente por software libre.

Richard Stallman y la Free Software Foundation

Consciente de la amenaza que el software libre supone para las grandes compañías, y sabiendo que estas no se quedarían de brazos cruzados viendo como un grupo de voluntarios les hacía la competencia, Richard Stallman se puso a trabajar en los aspectos legales del software libre, y fundó la FSF (Free Software Foundation) para impulsar, promocionar y defender el software libre.

Richard Stallman definió el software libre el año 1986 diciendo que, una pieza de software es software libre si, quien reciba una copia de este software tiene las siguientes cuatro libertades:

Hay que observar que, para poder poner en práctica las libertades 1 y 3, es necesario tener acceso al código fuente del software en cuestión, ya que sino es prácticamente imposible modificar el programa.

Para asegurar que las libertades del software libre se respetan, la FSF mantiene una familia de licencias de software libre, la más conocida de las cuales es la GPL (General Public License). En contraposición a las licencias restrictivas de las empresas de software, como la EULA (End User License Agreement) de Microsoft, la licencia GPL pone énfasis en las cuatro libertades mencionadas, e impide que una empresa se apropie indebidamente de piezas de software libre. Por ejemplo, si cualquier persona u organización modifica una pieza de software licenciado bajo las condiciones de la GPL, estará legalmente obligada a distribuir gratuitamente cualquier modificación que haga del software, además de que deberá reconocer al autor del software original.

El software libre se acerca a los no informáticos

Es natural que en los principios del software libre, éste fuera únicamente accesible a un reducido colectivo de usuarios profesionales de la informática. Los primeros problemas que se abordaron fueron la creación de sistemas operativos, compiladores y otras herramientas necesarias para el desarrollo de software. Dando lugar a proyectos como el núcleo del sistema operativo Linux, GCC (GNU Compiler Collection) que es una colección de compiladores para diversos lenguajes de programación, editores de textos avanzados pero nada intuitivos como EMACS, etc.

Una vez resueltas las dificultades iniciales, el software libre se ha ido aproximando cada vez más a las necesidades de los usuarios no informáticos. Por ejemplo, poco antes del año 2000 empezaron a proliferar entornos gráficos para el sistema GNU/Linux, de entre los que destaca Gnome, que oculta las complejidades del sistema operativo, presentando una interfaz similar a la de los ordenadores Apple o Windows, con la que todo el mundo está familiarizada. Actualmente ya hay disponibles herramientas de todo tipo: ofimática, diseño gráfico, bases de datos, juegos, etc.


1. Hay que destacar que los programas informáticos están fuertemente relacionados con el concepto matemático de algoritmo, como los algoritmos de la multiplicación o la división, que comparte libremente toda la humanidad sin restricciones por parte de ninguna empresa.

2. Bill Gates, cofundador de Microsoft, ha sido el hombre más rico del mundo diversos años desde 2005.

3. Un sistema operativo es un software base, imprescindible para que puedan funcionar otras piezas de software de usuario, como los procesadores de texto o los navegadores web.

4. GNU es un acrónimo recursivo que significa “Gnu is Not Unix”.

5. Minix es un sistema operativo muy simple, aunque completo y funcional, escrito por el profesor Andrew Tanenbaum, para complementar su libro “Sistemas Operativos, diseño e implementación”.