Este documento describe la historia del software libre y propietario. Explica que originalmente el software se compartía libremente, pero en los años 1980 las empresas comenzaron a imponer restricciones a través de licencias. En 1984, Richard Stallman fundó la Free Software Foundation para promover el desarrollo y uso de software libre. El software libre otorga a los usuarios cuatro libertades clave: ejecutar el programa para cualquier propósito, estudiar y modificar el código, redistribuir copias, y distribuir versiones modificadas.
1. Historia del software en computación aplicado a la informática educativa. 73
3.5.Software libre y software
propietario.[43]
Como veremos en el punto 3.6, al principio de la computación el software era
considerado un añadido que los vendedores de las grandes computadoras ofrecían a
sus clientes para que estos pudieran usarlas. En este ámbito, era común que los
programadores y desarrolladores de software compartieran programas libremente
unos con otros. A finales de la década de 1970, las compañías iniciaron el hábito de
imponer restricciones a los usuarios mediante el uso de acuerdos de licencia.
En los años 80 la situación cambió y las computadoras más modernas empezaron a
usar sistemas operativos privativos, por lo cual los usuarios debían aceptar las
condiciones que impedían modificar el software de sus sistemas. En caso de que algún
usuario o programador encontrase algún error en la aplicación, lo único que podía
hacer era darlo a conocer a la empresa desarrolladora para que ésta lo solucionara.
Esto llegó hasta el punto de que aunque el programador estuviera capacitado para
solucionar el problema y lo quisiera hacer sin pedir nada a cambio, el contrato le
impedía modificar el software.
En 1984, Richard Stallman, programador estadounidense, comenzó a trabajar en el
proyecto GNU, y un año más tarde fundó la Free Software Foundation (FSF). La
fundación para el software libre está dedicada a eliminar las restricciones sobre la
copia, redistribución, entendimiento, y modificación de programas de computadoras y
a la vez promociona el desarrollo y uso del software libre en todas las áreas de la
computación.
Stallman introdujo la definición de
software libre y el concepto de "copyleft",
que desarrolló para otorgar libertad a los
usuarios y para restringir las posibilidades
de apropiación del software. El copyleft es
la regla en base a la cual, cuando se
redistribuye el programa, no se puede
agregar restricciones para denegar a los
demás las libertades principales. Esta regla
no entra en conflicto con las libertades
principales, más bien las protege. A la
derecha podemos ver el símbolo del
copyleft (Fig. 45).
Fig. 45. Símbolo de copyleft.
Daniel Merchán López. 2013
2. 74 Historia del software en computación aplicado a la informática educativa.
El término original del software libre es "Free Software", es un término inglés que
crea ambigüedad, porque existe doble sentido de "free": libre y gratis. Sin embargo, la
mayor parte de los idiomas tienen palabras diferentes para referirse a libertad o a
precio. En estos idiomas el término "libre" no presenta ninguna ambigüedad. Podrá ser
ambiguo en otros idiomas, incluyendo el inglés, pero en esos casos se pueden evitar
malentendidos aclarando que "free" se refiere a libertad y no a precio. El software libre
es la denominación del software que respeta la libertad de todos los usuarios que
adquirieron el producto y, por tanto, una vez obtenido puede ser usado, copiado,
estudiado, modificado, y redistribuido libremente de varias formas.
Fig. 46. Mapa conceptual del software libre.
Según la Free Software Foundation:
"La palabra "libre" en nuestro nombre no se refiere al precio; se refiere a la
libertad. Primero, a la libertad de copiar y redistribuir un programa a tus vecinos, para
que ellos al igual que tu, lo puedan usar también. Segundo, a la libertad de cambiar un
programa, así podrás controlarlo en lugar que el programa te controle a ti; para esto,
el código fuente tiene que estar disponible para ti" [43].
Con estas libertades, los usuarios ya sea de forma individual o de forma colectiva,
controlan el programa y lo que hace. Cuando los usuarios no controlan el programa, el
programa controla a los usuarios. El programador es el que controla el programa y, a
través del programa, controla a los usuarios. Un programa que no es libre, dicho de
otro modo, privativo, es por lo tanto un instrumento de poder injusto.
El software propietario, término creado cómo antónimo para el concepto de software
libre, se refiere a cualquier programa informático en el que los usuarios tienen
limitadas las posibilidades de usarlo, modificarlo o redistribuirlo (con o sin
Daniel Merchán López. 2013
3. Historia del software en computación aplicado a la informática educativa. 75
modificaciones), o cuyo código fuente no está disponible o el acceso a éste se
encuentra restringido. En el software propietario una persona física o jurídica
(compañía, corporación, fundación, etc.) posee los derechos de autor sobre un
software negando o no otorgando, al mismo tiempo, los derechos de usar el programa
con cualquier propósito; de estudiar cómo funciona el programa y adaptarlo a las
propias necesidades (donde el acceso al código fuente es una condición previa); de
distribuir copias; o de mejorar el programa y hacer públicas las mejoras (para esto el
acceso al código fuente es un requisito previo). De esta manera, un software sigue
siendo propietario aún si el código fuente es hecho público, cuando se mantiene la
reserva de derechos sobre el uso, modificación o distribución.
La expresión software no
libre, "non-free software", es
usado por la FSF para agrupar
todo el software que no es
libre, es decir, incluye al "semi-
free software" y al "propietary
software". También es
utilizado para referirse al
software que no cumple con
las directrices de software
libre de Debian, las cuales
siguen la misma idea básica de
libertad en el software,
propugnada por la FSF, y sobre
las cuales está basada la
definición de código abierto
de la Open Source Initiative.
Fig. 47. Ejemplos de aplicaciones de
software libre y software propietario.
Dentro del semi-free software encontramos el Freeware y el Shareware. El Freeware
son los paquetes software en los cuales se permite la redistribución pero no la
modificación (y su código fuente no está disponible). Hay mucha gente que lo
confunde con software libre pero no lo es. El término shareware se refiere al software
del que se permite redistribuir copias, pero quien continúa a utilizar una copia debe
pagar para obtener la licencia. En el shareware el código fuente no está disponible, por
lo tanto no se pueden modificar, además, no viene con permiso para hacer una copia e
instalarlo sin pagar la licencia, ni siquiera para las personas que participan en
actividades sin fines de lucro.
En muchos sitios al software libre se le confunde con Open Source pero no es lo
mismo. El término Open Source se refiere a tener acceso al código fuente. Pero el
acceso al código fuente solo es pre-requisito para dos de las cuatro libertades que
Daniel Merchán López. 2013
4. 76 Historia del software en computación aplicado a la informática educativa.
definen al Software Libre. La principal diferencia entre los términos Open Source y
software libre es que éste último tiene en cuenta los aspectos éticos y filosóficos de la
libertad, mientras que el Open Source se basa únicamente en los aspectos técnicos. En
un intento por unir los mencionados términos que se refieren a conceptos semejantes,
se está extendiendo el uso de la palabra FLOSS con el significado de free/libre and
open source software e, indirectamente, también a la comunidad que lo produce y
apoya.
Muchas personas no entienden que el acceso al código fuente no es suficiente. La
definición de software libre contra la definición de código abierto que hace la FSF es la
siguiente:
"Mucha gente utiliza la expresión software de «código abierto» para referirse, más o
menos, a la misma categoría a la que pertenece el software libre. Sin embargo, no son
exactamente el mismo tipo de software: ellos aceptan algunas licencias que nosotros
consideramos demasiado restrictivas, y hay licencias de software libre que ellos no han
aceptado. Sin embargo, las diferencias entre lo que abarcan ambas categorías son pocas: casi
todo el software libre es de código abierto, y casi todo el software de código abierto es libre.
Nosotros preferimos la expresión «software libre» porque se refiere a libertad, algo que la
expresión «código abierto» no hace". ( Free Software Foundation)
El software de código cerrado es el antónimo de software de código abierto
centrándose principalmente en el aspecto de ausencia de acceso al código y en menor
medida en los derechos sobre el mismo. Éste se refiere sólo a la ausencia de una sola
libertad por lo que su uso debe enfocarse sólo a este tipo de software y aunque
siempre signifique que es un software que no es libre, no tiene que ser software de
código cerrado.
3.5.1. Libertades del software libre.
Para que un programa sea libre se deben cumplir las cuatro libertades
esenciales:
1. La libertad 0 es aquella libertad de ejecutar el programa para cualquier
propósito.
2. La libertad 1 es la libertad de estudiar cómo funciona el programa, y cambiarlo
para que haga lo que el usuario quiera. Para realizar esto es necesario acceder
al código fuente.
3. La libertad 2 es la libertad de redistribuir copias para ayudar a su prójimo.
4. La libertad 3 es aquella en la que se pueden distribuir copias de sus versiones
modificadas a terceros. Esto le permite ofrecer a toda la comunidad la
oportunidad de beneficiarse de las modificaciones. El acceso al código fuente
es una condición necesaria para ello.
Daniel Merchán López. 2013
5. Historia del software en computación aplicado a la informática educativa. 77
Vistas estas libertades, podemos decir que un software es libre si se cumplen todas.
Por lo tanto se debe tener la libertad de hacer modificaciones y usarlas en privado para
su propio trabajo o pasatiempo, sin siquiera mencionar que existen. También está
permitido redistribuir copias, ya sea con o sin modificaciones, de manera gratuita o
cobrando una tarifa por la distribución y a cualquiera en cualquier parte. El ser libre de
hacer estas cosas significa, entre otras cosas, que no tiene que pedir ni pagar el
permiso. Si publica sus cambios, no debe estar obligado a notificarlo a nadie y ni de
ninguna manera en particular.
3.5.2. Tipos de licencias.
Una licencia es aquella autorización formal con carácter contractual entre el
licenciante que es el autor o titular de los derechos de distribución y de explotación de
un software y un interesado del programa informático para ejercer actos de
explotación legales, es decir, para utilizar el software cumpliendo una serie de
términos y condiciones establecidas dentro de sus cláusulas. Las licencias de software
pueden establecer entre otras cosas: la cesión de determinados derechos del
propietario al usuario final sobre una o varias copias del programa informático, los
límites en la responsabilidad por fallos, el plazo de cesión de los derechos, el ámbito
geográfico de validez del contrato e incluso pueden establecer determinados
compromisos del usuario final hacia el propietario, tales como la no cesión del
programa a terceros o la no reinstalación del programa en equipos distintos al que se
instaló originalmente.
Pueden existir tantas licencias como acuerdos concretos se den entre el autor y el
licenciatario. No todas las licencias son iguales, por ello debemos hacer una
clasificación según los derechos que el autor se reserva sobre su obra.
Se considera que una licencia libre es copyleft cuando además de otorgar permisos de
uso, copia, modificación y redistribución de la obra protegida, contiene una cláusula
que impone una licencia similar o compatible a las copias y a las obras derivadas.
Desde el punto de vista del software libre hay dos grandes grupos; Licencia de
software de código abierto permisivas y Licencia de software de código abierto
robustas. La primera permite crear una obra derivada sin que ésta tenga obligación de
protección alguna. La segunda está, a su vez, clasificada en dos grandes grupos;
Licencias de software de código abierto robustas fuertes y Licencias de software de
código abierto robustas débiles. Las primeras son aquellas contienen una cláusula que
obliga a que las obras derivadas o modificaciones que se realicen al software original
se deban licenciar bajo los mismos términos y condiciones de la licencia original. Las
segundas también contienen la cláusula que obliga a que las modificaciones que se
realicen al software original se deban licenciar bajo los mismos términos y condiciones
Daniel Merchán López. 2013
6. 78 Historia del software en computación aplicado a la informática educativa.
de la licencia original, pero las obras derivadas que se puedan realizar de él pueden
ser licenciadas bajo otros términos y condiciones distintas.
Las licencias de software libre más importantes son las siguientes:
La licencia GPL. Es una de las más utilizadas. Quiere decir Licencia Pública
General, y es de GNU. Con esta licencia, el autor conserva los derechos de
autor (copyright), permitiendo la redistribución y modificación bajo términos
diseñados para asegurarse de que todas las versiones modificadas del software
permanecen bajo los términos más restrictivos de la propia GNU GPL. Es decir,
la licencia GNU GPL posibilita la modificación y redistribución del software pero
únicamente bajo esa misma licencia.
Licencias AGPL. La Licencia Pública General de Affero es una licencia copyleft
derivada de la Licencia Pública General de GNU diseñada específicamente para
asegurar la cooperación con la comunidad en el caso de software que corra en
servidores de red. Simplemente añade una cláusula en la que obliga a distribuir
el software si éste se ejecuta para ofrecer servicios a través de una red de
ordenadores.
Licencias estilo BSD. Se denominan así debido al hecho de que son utilizadas en
una gran cantidad de software distribuido junto a los sistemas operativos BSD.
El autor, bajo tales licencias, mantiene la protección de copyright únicamente
para la renuncia de garantía y para requerir la adecuada atribución de la
autoría en trabajos derivados, pero permite la libre redistribución y
modificación, incluso si dichos trabajos tienen propietario. Este tipo de licencias
son compatibles con la licencia GNU GPL. Se puede decir que esta licencia
asegura verdadero software libre, en el sentido que el usuario tiene libertad
ilimitada con respecto al software, y que puede decidir incluso redistribuirlo
como no libre.
Licencias estilo MPL. Se utilizan en gran cantidad de productos de software
libre de uso cotidiano en todo tipo de sistemas operativos. Promueve
eficazmente la colaboración evitando el efecto viral de la GPL, es decir si usas
código licenciado GPL, tu desarrollo final tiene que estar licenciado GPL. Sin
embargo, la MPL no es tan excesivamente permisiva como las licencias tipo
BSD. Estas licencias son denominadas de copyleft débil.
Licencias Creative Commons. Están inspiradas en la licencia GPL compartiendo
parte de su filosofía. Estas licencias no constituyen una alternativa a los
derechos de autor sino se apoyan en éstos para permitir a aquél modificar los
términos y condiciones de la licencia de su obra de la forma que mejor satisfaga
sus necesidades. De este modo, el autor podría cambiar fácilmente los
términos y condiciones de derechos de autor de su obra de todos los derechos
reservados a algunos derechos reservados. Todas las licencias Creative
Commons permiten el derecho fundamental de redistribuir la obra con fines no
Daniel Merchán López. 2013
7. Historia del software en computación aplicado a la informática educativa. 79
comerciales y sin modificaciones. Están compuestas por cuatro módulos de
condiciones que son los siguientes: La primera, Attribution, requiere la
referencia al autor original; Share Alike, permite obras derivadas bajo la misma
licencia o similar, puede ser posterior o de otra versión por estar en distinta
jurisdicción; Non-Commercial, obliga a que la obra no sea utilizada con fines
comerciales y No Derivative Works, no permite obras derivadas de la original.
En las licencias de software de código cerrado, los propietarios establecen los
derechos de uso, distribución, redistribución, copia, modificación, cesión y en general
cualquier otra consideración que se estime necesaria. De este modo, si el usuario
realiza cualquier acción con el software que no esté permitida se produciría una
piratería de software. Estas licencias llegan hasta el punto de regular el número de
copias que pueden ser instaladas e incluso los fines concretos para los cuales puede
ser utilizado. La mayoría de estas licencias limitan fuertemente la responsabilidad
derivada de fallos en el programa. Normalmente, los fabricantes de programas
sometidos a este tipo de licencias ofrecen servicios de soporte técnico y
actualizaciones durante el tiempo de vida del producto.
Algunos ejemplos de este tipo de licencias son las llamadas CLUFs (Contrato de
Licencia para Usuario Final) o EULAs (End User License Agreement) por sus siglas en
Inglés.
El software de dominio público, es decir, que no dispone de licencia, puede ser
utilizado, copiado, modificado y redistribuido con o sin fines de lucro.
Daniel Merchán López. 2013