lunes, 16 de julio de 2007

GNU, GPL, Open Source y Linux

Krlo [blackhat4all@gmail.com]

"Un fantasma recorre el mundo virtual: el espectro del software libre. Contra este fantasma se han conjurado, en santa jauría, todas las potencias del software encabezados por Microsoft. La historia de la informática es la historia de la lucha entre programadores y usuarios, y la actual sociedad virtual no ha abolido ese conflicto. Lo que ha hecho es crear nuevas formas de opresión, que sustituyeron a las antiguas. Sin embargo, nuestra época se caracteriza por la concentración del poder y el mundo virtual tiende a separarse abiertamente en dos campos antagónicos: Microsoft y los usuarios".

Cuando terminábamos la edición 22 de BlackHat, formamos tremenda controversia sobre el significado de GNU y GPL. Cada cual daba su punto de vista y, aunque eran muy similares, nos dimos cuenta que el tema no estaba totalmente dominado. Para resolver este problema -y de paso ayudar a muchos lectores que están en nuestra misma situación- decidí estudiarme el tema y escribir este artículo. Con esto quiero aclararles que no soy un profesional en la materia, pero mis intenciones son más que buenas y prometo no despegarme de la bibliografía, ni basarme en prejuicios sobre el software libre o en extremismos pro-Linux.

He dividido mi trabajo de la forma más idónea que encontré para abordar el tema. Primero es lo primero, conocer la historia para entender cómo y cuándo surgió el enredo.

Un poco de historia::

Richard Matthew Stallman es, sin duda, un personaje principal en toda esta historia. Desde que era estudiante de física en la Universidad de Harvard, presentaba problemas de compatibilidad con el software apropiativo. A principios de los '80, cuando trabajaba en el desarrollo de un intérprete del lenguaje LISP, una comunidad de programadores llamados Symbolics le pidió su trabajo para usarlo y desarrollarlo. Stallman accedió y con el tiempo, cuando se interesó por las mejoras del intérprete realizadas por el grupo, obtuvo un rotundo "no". Las leyes de copyright estaban en su contra... la solución sería el copyleft.

El 27 de septiembre de 1983 Stallman creó el proyecto GNU, que perseguía crear un sistema operativo completamente libre. Su trabajo tuvo un gran impulso cuando en octubre de 1985 surge una organización llamada Free Software Foundation (Fundación del Software Libre o FSF), creada por él junto a otros entusiastas del software libre. El objetivo de la misma siempre ha sido difundir este modelo de producir y consumir software ajeno al impuesto por las grandes empresas. El nombre de esta organización puede ser que no les diga nada, pues se lee como cualquier otra; la chispa prende cuando les digo que el símbolo de la misma es el GNU.

El gnu (o ñu, en español) es un antílope africano que vive en manadas, llegando a reunir hasta cientos de miles de su propia especie. Las migraciones de estos "animalitos" pueden llegar a ser colosales; creo que transmite la idea de una gran comunidad que marcha por un mismo camino a una meta común -estas son impresiones mías, claro.

Quizás el aporte más trascendental de la FSF es la publicación de la GNU GPL. Esta licencia está orientada fundamentalmente a proteger la libre distribución, modificación y uso del software. Su propósito es declarar que el software cubierto por esta licencia es software libre y protegerlo de intentos de apropiación que restrinjan esas libertades a los usuarios.

Software libre no es software gratis. Ése es uno de los problemas que tiene esta terminología, sobre todo en lengua inglesa. La siguiente frase es habitual en conferencias sobre software libre: "free as in freedom, not as in free beer", que se traduce en "libre como en libertad, no como en cerveza gratis". Este problema trae aparejado dificultades comerciales, pues qué empresario pensaría en pagar por un software free, o qué programador que viva de ello haría software free. El que no entienda el significado de software libre sin dudas cometería errores como los anteriores.

Stallman y todos sus seguidores plantean que un software es libre si permite las siguientes libertades:

Libertad 0: ejecutar el programa con cualquier propósito (privado, educativo, público, comercial, militar, etc.).
Libertad 1: estudiar y modificar el programa (para lo cual es necesario poder acceder al código fuente).
Libertad 2: intercambiar el programa de manera que se pueda ayudar al vecino o a cualquiera. Libertad de distribuirlo.
Libertad 3: mejorar el programa y publicar las mejoras.

Transportándonos a nuestro medio, todo software en Cuba cumple las libertades 0 y 2; ¿quién ha pagado un peso por tener Windows o el Acrobat en casa? Todos diariamente intercambiamos programas con gran naturalidad; es algo habitual. Sin embargo, las libertades 1 y 3 son las que para nosotros, los programadores cubanos, aún marcan la diferencia.

¿Cuál es la variante Open Source?

Open source o "código abierto" es un término con el que también se conoce al software distribuido y desarrollado libremente. Fue utilizado por primera vez en 1998 por algunos usuarios de la comunidad del software libre, tratando de usarlo como reemplazo al ambiguo nombre original en inglés del software libre.

El movimiento open source tiene un decálogo que debe cumplir un código para poder llamarse así (nótese que estas 10 premisas son completamente equivalentes con las 4 libertades o principios del software libre); éstas son:

  • Libre redistribución: el software debe poder ser regalado o vendido libremente.
  • Código fuente: el código fuente debe estar incluido u obtenerse libremente.
  • Trabajos derivados: la redistribución de modificaciones debe estar permitida.
  • Integridad del código fuente del autor: las licencias pueden requerir que las modificaciones sean redistribuidas sólo como parches.
  • Sin discriminación de personas o grupos: a nadie se le puede dejar fuera.
  • Sin discriminación de áreas de iniciativa: los usuarios comerciales no pueden ser excluidos.
  • Distribución de la licencia: deben aplicarse los mismos derechos a todo el que reciba el programa.
  • La licencia no debe ser específica de un producto: el programa no puede licenciarse sólo como parte de una distribución mayor.
  • La licencia no debe restringir otro software: la licencia no puede obligar a que algún otro software que sea distribuido con el software abierto deba también ser de código abierto.
  • La licencia debe ser tecnológicamente neutral: no debe requerirse la aceptación de la licencia por medio de un acceso por clic de ratón o de otra forma específica del medio de soporte del software.

¿Por qué utilizar este término, y no free software?

  • En primer lugar, la palabra free presenta la ambigüedad antes señalada.
  • La segunda y más importante es el marketing: Open Source trata de introducir este modelo en el mundo de los negocios. Aunque el producto sea bueno, la palabra free está atada a un pasado terrible. Free software le suena al hombre de negocios a anticomercialismo. Los empresarios nunca comprarían free software, pero sí el mismo producto, hecho por la misma gente, con las mismas licencias, pero con la etiqueta cambiada a open source; entonces cambian las cosas.

La diferencia fundamental entre los dos movimientos está en sus valores, en su visión del mundo. Para el movimiento open source, la cuestión de si el software debe ser de fuente abierta es una cuestión práctica, no ética. Como alguien expresó, "el open source es un método de desarrollo; el software libre es un movimiento social". Para el movimiento open source, el software no libre es una solución ineficiente. Para el movimiento de software libre, el software no libre es un problema social y el software libre es la solución.

"El movimiento Free Software y el movimiento Open Source son por igual dos partes políticas dentro de nuestra comunidad." - Richard Stallman.

Importancia del CopyLeft y de las licencias de software libre::

Quiero puntualizar que no existe como tal el copyleft; es un concepto muy general que abarca un conjunto de leyes entre las que sobresale la GPL para los productos informáticos. El lema del copyleft es "all rights reversed", o "todos los derechos se revierten".

Al principio podemos pensar que la mejor manera de hacer un software libre es publicando el código fuente para todos. Pero esta es una visión muy corta de lo que nuestro trabajo puede significar. Imagínense que alguien no tan altruista como nosotros tome nuestro código, lo mejore y actualice, y como era totalmente libre, él se siente en la libertad de venderlo. Las licencias como GPL son importantes porque, además de convertir un programa en software libre, exige que todas las versiones del mismo, modificadas o ampliadas, también lo sean.

¿Dónde entra Linux?

Como habíamos visto, desde mediados de la década de los '80 Richard Stallman y el proyecto GNU estaban intentando crear un sistema operativo libre, con un funcionamiento similar al UNIX. En el comienzo de 1990 ya tenían muchas herramientas importantes listas, como compiladores, depuradores, intérpretes; pero les faltaba el núcleo que uniera y organizara todos esos componentes.

Linux es un sistema operativo gratuito y de libre distribución inspirado también en el sistema UNIX. Fue escrito por Linus Torvalds -un estudiante finlandés- con la ayuda de miles de programadores en Internet. A modo de paréntesis, UNIX es un sistema operativo desarrollado en 1970; una de sus mayores ventajas es ser fácilmente portable a diferentes tipos de computadoras, por lo que existen versiones de UNIX desde PC y Mac hasta estaciones de trabajo y supercomputadoras. Al contrario que otros sistemas operativos, como por ejemplo MacOS, UNIX no está pensado para ser fácil de emplear, sino para ser sumamente flexible.

GNU/Linux es el término promovido por la FSF, Richard Stallman y sus patrocinadores para el sistema operativo que incluye las utilidades de la FSF (la parte de GNU) y el kernel de Linus Torvalds. La gran mayoría de las personas usan el término "Linux" para referirse a todo el sistema operativo, pero Stallman plantea que "es incorrecto, pues ambos componentes se complementan y equiparan en importancia"; aunque indiscutiblemente suena mejor Linux.

Vamos a tocar el tema de las distribuciones, para algunos cosa elemental (mis disculpas en tal caso). Pues una distribución es un agrupamiento del núcleo del sistema operativo Linux (la parte desarrollada por Linus Torvalds y GNU) y otra serie de aplicaciones de uso general -o no tan general. En otras palabras, como todo interesado puede adaptar y mejorar el código a su manera, han surgido numerosas variantes del sistema operativo llamadas distribuciones. Las distribuciones más conocidas son RedHat, Debian, Slackware, SuSE, Corel Linux y, con un gran auge en los últimos años, Ubuntu.

Conclusiones::

Vamos antes de terminar precisar lo siguiente:

  • Software libre no significa que es software gratis.
  • El copyleft no existe como ley, es un concepto que define una filosofía y agrupa un conjunto de leyes.
  • Open source es una denominación alternativa del software libre; en la práctica son equivalentes.
  • GNU es un proyecto fundado por Richard Stallman para crear y desarrollar un sistema operativo, base necesaria para todo el desarrollo de esta filosofía.
  • La Free Software Foundation (FSF) fue creada por Stallman y sus seguidores para promover impulsar el software libre en general y legalizar su uso.

Esta filosofía -creo que todos estamos al tanto- suele pasar de una solución acertada a un extremismo funesto con gran facilidad. Leyendo sobre Richard Stallman me quedé pensativo con unos de sus planteamientos: "Cuando Microsoft distribuye copias gratuitas de Windows a los alumnos es como cuando las empresas de tabaco distribuían cigarrillos gratuitos a los niños a fin de hacerlos adictos." (extraído de "Filosofía del Software Libre y Licencias GNU"). ¿Esta metáfora estará justificada, es Mr. Bill Gates tan malo como lo pintan?

Desde mi punto de vista no es práctico tener una mentalidad parcializada; no estamos hablando de amigos o enemigos, es sólo computación y desarrollo tecnológico. Lo ideal sería dominar ambos campos y aprovechar las ventajas que cada uno nos brinda. Mi profesor de la asignatura Sistemas Operativos nos dijo una vez: "todos mis amigos usan Ubuntu; quieren ser mis amigos." ¿Para qué dividirnos si podemos andar juntos? En Cuba no existe un mercado de software, todo es free, pues entonces disfrutémoslo.

Ya existen una serie de países en los cuales sus administraciones públicas han mostrado apoyo al software libre, ya sea migrando total o parcialmente sus servidores y sistemas de escritorio o subvencionándolos. Como ejemplos de ello se tiene a Alemania, Argentina, Brasil, Chile, China, Ecuador, España, Francia, México, República Dominicana, Venezuela y Cuba. Los principales pilares que apoyan esta decisión son los precios, la libertad de estudiar y acomodar los códigos fuentes y, por supuesto, la estabilidad y calidad de los programas hechos por una enorme comunidad que, como los gnu, andan juntos en pos de una meta.

Para saber más...



Artículos relacionados


No hay comentarios: