viernes, 15 de noviembre de 2019

La diferencia entre el Free software y el Open Source



Hola amigos del Software Libre.

En este artículo intentaré mostraros la diferencia que hay entre el concepto de "Software Libre" y "Open Source".

Es posible que muchos, (y yo me incluyo en su día), penséis que las dos expresiones sean sinónimos. Pues no, no lo son. De echo, la diferencia es una. Para algunos será considerada irrisoria, en cambio para otros abismal.


Para empezar a situarnos un poco, el creador del concepto o movimiento del Software Libre o en inglés Free Software fué el programador Richard M. Stallman allá por el año 1983, creador del proyecto GNU y de la fundación FSF (Free Software Foundation). Él y las organizaciones que creó se encargan de velar por la protección del Software Libre.

Y en lo que se refiere al Open Source es un modelo de desarrollo de software basado en la colaboración abierta.​ Se enfoca más en los beneficios prácticos (acceso al código fuente) que en cuestiones éticas o de libertad que tanto se destacan en el software libre. En el año 1998 los programadores Bruce Perens y Eric S. Raymond lanzan el sitio opensource.org y crearon la organización sin ánimo de lucro OSI (Open Source Initiative), para dar conciencia y preservar el código abierto.

Empecemos definiendo cada uno de los dos conceptos:

Software Libre o Free Software

El Software Libre llamado en inglés Free Software es el software que respeta la libertad de los usuarios y la comunidad. Significa que los usuarios tienen la libertad de ejecutar, copiar, distribuir, estudiar, modificar y mejorar el software.

Mención especial a la palabra free, que en inglés puede significar tanto libre como gratuito. En este caso free se refiere a libre. El Software Libre puede ser gratuito o de pago, no está reñida una cosa con la otra. Pero lo que siempre tiene que respetar el software son una serie de libertades con los usuarios.

Las 4 libertades que debe de tener un usuario para que un programa sea Software Libre son:

- Libertad 0: La libertad del usuario de ejecutar el programa como se desee, con cualquier propósito.

- Libertad 1: La libertad del usuario de estudiar cómo funciona el programa, y cambiarlo para que haga lo que él quiera. El acceso al código fuente es una condición necesaria para ello.

- Libertad 2: La libertad del usuario de redistribuir copias para ayudar a otros.

- Libertad 3: La libertad del usuario de 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 también aquí.

Un programa que no cumpla una de las anteriores libertades no es considerado de Software Libre.


Open Source o Código Abierto

El código abierto no solo significa acceso al código fuente. Los términos de distribución del software de código abierto deben cumplir con los siguientes 10 criterios:

1. Redistribución gratuita:
La licencia no restringirá a ninguna de las partes a vender o regalar el software como un componente de una distribución agregada de software que contiene programas de varias fuentes diferentes. La licencia no requerirá una regalía u otra tarifa por dicha venta.

2. Código fuente:
El programa debe incluir el código fuente y debe permitir la distribución tanto en el código fuente como en el formulario compilado. Cuando alguna forma de un producto no se distribuye con el código fuente, debe haber un medio bien publicitado para obtener el código fuente por un costo de reproducción razonable, preferiblemente descargando a través de Internet sin cargo. El código fuente debe ser la forma preferida en la que un programador modificaría el programa. El código fuente deliberadamente ofuscado no está permitido. Los formularios intermedios, como la salida de un preprocesador o traductor, no están permitidos.

3. Obras derivadas:
La licencia debe permitir modificaciones y trabajos derivados, y debe permitir que se distribuyan bajo los mismos términos que la licencia del software original.

4. Integridad del código fuente del autor:
La licencia puede restringir la distribución del código fuente en forma modificada solo si la licencia permite la distribución de "archivos de parche" con el código fuente con el fin de modificar el programa en el momento de la compilación. La licencia debe permitir explícitamente la distribución de software creado a partir de código fuente modificado. La licencia puede requerir trabajos derivados para llevar un nombre o número de versión diferente del software original.

5. No discriminación contra personas o grupos:
La licencia no debe discriminar a ninguna persona o grupo de personas.

6. No discriminación contra los campos de trabajo:
La licencia no debe restringir a nadie el uso del programa en un campo específico de esfuerzo. Por ejemplo, no puede restringir que el programa se use en un negocio o que se use para investigación genética.

7. Distribución de licencia:
Los derechos adjuntos al programa deben aplicarse a todos aquellos a quienes el programa se redistribuye sin la necesidad de que esas partes ejecuten una licencia adicional.

8. La licencia no debe ser específica para un producto:
Los derechos adjuntos al programa no deben depender de que el programa forme parte de una distribución de software en particular. Si el programa se extrae de esa distribución y se usa o distribuye dentro de los términos de la licencia del programa, todas las partes a las que se redistribuye el programa deben tener los mismos derechos que los que se otorgan junto con la distribución del software original.

9. La licencia no debe restringir otro software:
La licencia no debe imponer restricciones a otro software que se distribuya junto con el software con licencia. Por ejemplo, la licencia no debe insistir en que todos los demás programas distribuidos en el mismo medio deben ser software de código abierto.

10. La licencia debe ser neutral en tecnología:
Ninguna disposición de la licencia puede basarse en ninguna tecnología o estilo de interfaz individual.


La Iniciativa de Código Abierto (OSI) defiende la libertad del software en la sociedad a través de la educación, la colaboración y la infraestructura, administrando la definición de código abierto (OSD) y evitando el abuso de los ideales y el espíritu inherentes al movimiento de código abierto.
El software de código abierto está hecho por muchas personas y se distribuye bajo una licencia compatible con OSD (Open Source Definition) que otorga todos los derechos para usar, estudiar, cambiar y compartir el software en forma modificada y no modificada. La libertad de software es esencial para permitir el desarrollo comunitario de software de código abierto.

Por tanto un programa que no cumpla con los anteriores criterios no se considera un programa Open Source.


¿Que diferencia hay entre Software Libre y Open Source?

Una vez llegados a este punto os podéis preguntar; ¿Y que diferencia hay?, si tanto las 4 libertades del Software Libre como los criterios detallados por el Open Source son los mismos.

La diferencia es filosófica, el Software Libre aboga por la libertad del usuario, de la persona, y el software queda relegado a un segundo plano, como una herramienta para que no se vulnere esta libertad.

En cambio el Open Source, pone el foco en el software, en la licencia del programa, aboga por la libertad del software, y el usuario queda en segundo término.

Supongo que ahora entendéis porque he subrayado la palabra usuario en la enumeración  de las libertades del Software Libre y porque he subrayado la palabra licencia en los criterios del Open Source.

Otro punto es intentar disipar malentendidos y evitar el debate terminológico entre el software libre y el software gratuito es que el software libre puede ser gratuito o de pago, no está reñida una cosa con la otra. Para ello el término FOSS (Free and Open Source Software), para referirse al software libre y de código abierto, no queda lo suficientemente claro que puede ser de pago.

Así que la FSF y la organización GNU invitan a usar este término: FLOSS (Free / Libre and Open Source Software) haciendo énfasis en la palabra libertad, para referirse a que es Software Libre, pero no tiene que ser "free" como gratuito, ya que puede ser de pago.

Dicho todo lo anterior, es fácil de imaginar que toda corporación o empresa está interesada en el Open Source, por temas prácticos de desarrollo del software, pero en cambio no le interesa el Software Libre.

Entendéis el nuevo eslogan de Microsoft de la fecha de este artículo: "Microsoft love Linux". Claro que si, a esta empresa ahora le gusta el Open Source, ve alternativas de avance en el desarrollo de su software y gratuitamente. Que la comunidad ayude, yo me beneficio y además quedo como un buen samaritano.

El caso del kernel Linux, es curioso. Linus Torvalds creó este núcleo en el año 1991 y no enseñó el código, por tanto era código privativo. En el año 1992 Torvalds accedió a liberar el código y licenciar el kernel Linux bajo la licencia GNU GPL (General Públic License) y pasó a ser Software Libre.
Pero a día de hoy este maravilloso kernel cuenta con mucho software privativo a parte de software de código abierto, no respeta las 4 libertades del Software Libre al 100%, por tanto estamos hablando de software Open Source y no de Free Software o Software Libre.

En cambio un ejemplo de Software Libre es la distribución "Trisquel". Una distribución del sistema operativo GNU/Linux, la cual ha eliminado del todo el firmware privativo del kernel Linux y no ha incorporado ningún paquete de software privativo tanto en el software del sistema como en el software de usuario, además tampoco incluye paquetes de software privativo en sus repositorios. Y como colofón final, si intentáis instalar software privativo aunque sea un driver no os dejará.

La contrapartida es la famosa distribución Ubuntu, esta distribución del sistema operativo GNU/Linux es Open Source, no Software Libre, ya que incorpora firmware privativo en el Kernel Linux y software privativo tanto en su interior como la opción de instalarlo desde sus repositorios.

Y aquí termina este artículo. Espero haya sido capaz de enseñaros la diferencia entre Software Libre y software Open Source. Si tenéis dudas o ganas de debatir, podéis dejar un comentario.

Saludos y hasta la próxima.

2 comentarios:

  1. Una pena que no sigas escribiendo, tus artículos eran muy buenos.

    ResponderEliminar
    Respuestas
    1. Gracias por el cumplido. Seguiré, la falta de tiempo me lo impide.

      Eliminar

Gracias por participar en este blog.