Introduccion al software libre.

Además de aprender a utilizar Ubuntu (objetivo de este manual), es interesante conocer los orígenes del Software Libre y GNU/Linux. De esta forma podremos entender el modelo de desarrollo libre a partir de su definición. Esta sección esta dedicada a cubrir ese aspecto tan importante. Se invita al lector a saltar al apartado de instalación de Ubuntu, y retomar esta sección durante los momentos de espera de la instalación.

-Historia
Allá por el 1971, cuando la informática todavía no había sufrido su gran boom, las personas que hacían uso de ella, en ámbitos universitarios y empresariales, creaban y compartían el software sin ningún tipo de restricciones. Con la llegada de los años 80 la situació empezó a cambiar. Las computadoras más modernas comenzaban a utilizar sistemas operativos privativos ( Software privativo o propietario es aquel que impone fuertes restricciones al usuario final.) Antónimo de Software Libre., forzando a los usuarios a aceptar condiciones restrictivas que impedían realizar modificaciones a dicho software.
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 esta lo solucionara. Aunque el programador estuviese capacitado para solucionar el problema y lo desease hacer sin pedir nada a cambio, el contrato le impedía que mejorase el software. Esta situación provocó la destrucción de comunidades cooperativas donde el software era compartido y cualquiera podía mejorarlo sin restricciones.
El modelo de desarrollo de aplicaciones propietarias, a pesar de generar situaciones anti-sociales, se impuso con tal fuerza que en la actualidad hay aún personas convencidas de que no hay otra forma de hacer negocio. Durante la etapa de transición al modelo privativo, Richard M. Stallman, trabajador del laboratorio de Inteligencia Artificial del MIT (Massachusetts Institute of Technology), se percató que la sociedad estaba cambiando peligrosamente. El mismo Richard Stallman cuenta que por aquellos años, en el laboratorio habían recibido una impresora donada por una empresa externa. El dispositivo, que era utilizado en red por todos los trabajadores, parecía no funcionar a la perfección dado que cada cierto tiempo el papel se atascaba. Como agravante, no se generaba ningún aviso que se enviase por red e informase a los usuarios de la situación. La perdida de tiempo era constante, ya que en ocasiones, los trabajadores enviaban por red sus trabajos a imprimir y al ir a buscarlos se encontraban la impresora atascada y una cola enorme de trabajos pendientes.
Richard Stallman decidió arreglar el problema, e implementar el envio de un aviso por red cuando la impresora se bloqueara. Para ello necesitaba tener acceso al código fuente de los controladores de la impresora ( Haciendo una analogía con la cocina, los binarios o ejecutables serian un plato cocinado mientras que el código fuente corresponde a la receta de cocina, esta es necesaria para poderla modificar y mejorar.) . Pidió a la empresa propietaria de la impresora lo que necesitaba, comentando, sin pedir nada a cambio, que era lo que pretendía realizar. La empresa se negó a entregarle el código fuente. En ese preciso instante, Richard Stallman se vio en una encrucijada, debía elegir entre aceptar el nuevo software privativo firmando acuerdos de no revelación y acabar desarrollando más software privativo con licencias restrictivas, que a su vez deberían ser más adelante aceptadas por sus propios colegas. Richard Stallman se negó a aceptar el nuevo software privativo, dado que este le obligaría a firmar acuerdos de no revelación. Quería evitar acabar contribuyendo a la expansión de ese tipo de software, el cual solo conseguía generar una sociedad más dividida y con menos libertades.
Abandonó el MIT en 1984, para evitar problemas de propiedad del software, e inició un proyecto para intentar formar un comunidad de personas, en las que compartir el código volviese a ser algo natural. El proyecto fue denominado GNU (GNU’s Not Unix), su finalidad era la construcción de un sistema operativo compatible con UNIX pero completamente libre. Más tarde construiría junto a diversos hackers de su entorno lo que se conoce actualmente como la Free Software Foundation, una fundación sin ánimo de lucro que tiene como objetivo proteger y defender el software libre y sus usuarios/programadores. El primer programa desarrollado fue GNU Emacs, un editor extensible mediante LISP. Richard Stallman, inspirándose en algunos emails donde observó que se utilizaba el copyright para permitir a otros usuarios realizar copias del contenido, decidió elaborar una licencia de uso, que estableciera ciertas reglas para asegurar la libertad de su editor Emacs. De este modo se podrían evitar problemas con programadores no solidarios que decidiesen coger código libre, modificarlo, distribuirlo en formato binario y no compartir dichos cambios después. La licencia fue llamada GNU Emacs License (desarrollada en consulta con el especialista en leyes de propiedad intelectual Mark Fischer en el 1985), la cual establecía un contrato en el que se ofrecía el programa garantizando las mayores libertades posibles y animaba a otros programadores a adoptar dicha licencia. El segundo programa desarrollado fue el depurador GNU Debugger. Este también necesitaba una licencia y GNU Emacs License encajaba a la perfección. Por tanto decidió
renovar dicha licencia dotándola de un nombre más genérico (cosa que ya había sido demandada por diversos usuarios que querían usar la licencia en sus creaciones), así nació la GNU General Public License (GPL) que en
1989 vio la luz con la versión 1.0. Sobre la misma época (1989), en el Computer Science Research Group (CSRG) de la Universidad de California en Berkeley poseían toda una serie de aplicaciones, desarrolladas con el objetivo de mejorar UNIX, que formaron lo que se conoce como “BSD Unix”. Esas aplicaciones y mejoras fueron desarrolladas mediante contratos con DARPA pero depuradas y mantenidas por hackers comunicados por red. Sin embargo, hasta finales de los 80 no fue liberado parte del código con licencia BSD (licencia libre con matices diferentes a la GPL). No obstante, en ese primer periodo aún existían herramientas propietarias vitales para el sistema y no podían ser redistribuidas (sólo se entregaban a los poseedores de una licencia de UNIX original). Estas fueron reescritas más adelante bajo una licencia libre. Durante los años 90 empezaron a surgir muchas iniciativas libres. Gracias a la diversificación de Internet se dieron grandes facilidades para construir comunidades con estas características. Es especialmente interesante el caso de X Window System, cuyo código fue el primer caso de software libre fundado por un consorcio de empresas y el cual aún perdura. Entre 1991 y 1992 dos nuevos proyectos marcaron el rumbo del software libre:

  • 386BSD

En California, Bill Jolitz estaba implementando las partes que faltaban de la distribución Net/2 (distribución resultado del intento de CSRG de Berkeley de disponer de una versión de BSD Unix libre de licencias propietarias). El resultado de Bill obtuvo el nombre de 386BSD el cual incluía un completo núcleo más diversas utilidades bajo licencia BSD. Más tarde, el código de 386BSD daría lugar a NetBSD, FreeBSD y OpenBSD.

  • Linux

En Finlandia, Linus Torvalds, estudiante de informática de la universidad de Helsinki, decidió realizar la cuantiosa inversión de 3500$ para adquirir un nuevo PC 386 (33 Mhz, 4MB de RAM). El pago lo realizaría a
plazos pues no disponía de tal cantidad de dinero en efectivo.
Como sistema operativo descartó un DOS limitado que incorporaba y pidió un Minix por 168$, la variante de Unix para estudiantes de Andrew Tanenbaum. Habitualmente utilizaba su ordenador para acceder a la computadora de su universidad, pero por desgracia no le gustaba nada el emulador de terminal (entre otras cosas) incorporado en el sistema operativo Minix, así que decidió crear uno el mismo. Como realmente le interesaba aprender el funcionamiento de su nuevo 386, decidió aprovechar esta oportunidad para realizar un
programa a bajo nivel prescindiendo de este sistema operativo.
En los primeros intentos consiguió arrancar el ordenador y ejecutar dos threads que mostraban por pantalla “AAAAABBBBB”. Uno lo utilizaría para leer del módem y escribir en pantalla, mientras que el otro leería del
teclado y escribiría en el módem. Con el tiempo acabó el programa y lo utilizaba frecuentemente arrancando desde disquete.
La siguiente necesidad que tuvo fue la de poder descargar y subir archivos de su universidad, pero para implementar eso en su emulador de terminal era necesario crear un controlador de disco. Así que después de
un trabajo continuo y duro creó uno compatible con el sistema de ficheros de Minix.
En ese momento se percató que estaba creando algo más que un simple emulador de terminal, así que, descontento con su sistema Minix, emprendió la aventura de crear un sistema operativo partiendo de cero.
Su primer paso fue pedir en las NEWS las especificaciones POSIX para implementarlas y poder hacer funcionar el compilador GCC del proyecto GNU, no obtuvo respuesta así que se bajó diversa documentación de la versión Unix de Sun Microsystems.
Ari Lemke, profesor de la universidad de Helsinki, vio el mensaje de Linus en busca de las especificaciones POSIX y se interesó por su trabajo. Le proporcionó una cuenta de FTP en la universidad para que pudiese publicar versiones de su software.

De forma privada, Linus nombraba “Linux” a su nuevo sistema, pero cuando decidió hacer una release pública oficial (pues ya era capaz de mostrar una shell y ejecutar el compilador gcc) pensó que era demasiado egocéntrico llamarlo así y propuso llamarlo Freax (Freaks + X de Unix). El ya citado profesor Ari Lemke lo desanimó ya que le parecía más atractivo Linux. Después de anunciar en las NEWS (25 Agosto del 1991) su intención de seguir desarrollando su sistema para construir un reemplazo de Minix, el 17 de septiembre de 1991 sube al FTP proporcionado por su universidad la versión 0.01 de Linux con 10.000 lineas de código (en la actualidad tiene más de 10 Millones). A partir de ese
momento Linux empezó a evolucionar rápidamente.
En sus inicios la gente que probaba el código le preguntaba a Linus si iba a pedir dinero por su trabajo, Linus negó que tuviese dicha intención y animó a todos aquellos que probaban Linux a que le enviaran postales
como recompensa. Al cabo de semanas llegó a tener el buzón lleno de postales de lugares tan dispersos como Japón o Nueva Zelanda. Linus quería plasmar el espíritu científico en su trabajo, ya que se estaba basando en las ideas de otros. Como dijo Sir Isaac Newton, estaba montado en las espaldas de gigantes. Lo que más apreciaba era la ayuda de otros
para mejorar su trabajo. Quizás esta decisión de no dar importancia al dinero vino influenciada por su abuelo académico y su padre de tendencias comunistas.
Como su intención era conseguir que otras personas lo ayudasen a mejorar Linux, era necesario que toda modificación hecha por terceros tuviese que ser pública, evitando así que alguna compañía vendiese código modificado sin aportar nada. Una de las herramientas que utilizaba su sistema, el compilador GCC tenía una
licencia (elaborada por Richard Stallman como ya se ha comentado) que especificaba todas las condiciones de uso que Linus quería. Así que en la versión 0.12 decidió adoptar la licencia GNU GPL. La decisión no fue por motivos éticos (tal y como defiende Richard Stallman), sino que fue puramente práctica. Linus desarrolló el kernel Linux pero se apoyó en las herramientas implementadas por el proyecto GNU como el compilador GCC, el depurador GNU Debugger, etc… Es por este motivo que cuando se tiene un sistema completo (kernel + utilidades básicas) es llamado GNU/Linux.

En 1993 tanto 386BSD (más tarde daría lugar a NetBSD, FreeBSD y OpenBSD) como GNU/Linux se encontraban en un estado razonablemente maduro. Se constituyeron diversas distribuciones GNU/Linux (las diferencias entre estas son simplemente la forma de organizar/empaquetar las aplicaciones y las diferentes ayudas para la configuración) siendo RedHat una de las primeras en comercializar su producto. Durante los años 90 se desarrollaron grandes proyectos libres tales como Apache (servidor
web con mayor mercado hoy en día), Xfree86 (la implementación X11 más utilizada en la actualidad), GNOME y KDE (escritorios que proporcionan facilidades a los usuarios medios para interactuar con el sistema),
Mozilla (navegador construido a partir de la liberación del código de Netscape en 1998 y que marcó una nueva tendencia en el mundo empresarial).
Desde finales de los 90 hasta la actualidad el mundo del software libre ha visto un creciente apoyo por parte de empresas (IBM, Sun Microsystems, Novell…) y gobiernos (Brasil, Alemania o casos más cercanos como: Extremadura, Andalucía y Valencia) de todo el mundo.
-Definición
A priori puede resultar complejo definir el Software Libre debido a diferentes variantes y visiones existentes. Vamos a centrarnos en las dos mayores tendencias actuales: la visión de la Free Software Foundation (http://www.fsfeurope.org) y la visión de la Open Source Iniciative (http://www.opensource.org). Software Libre en Inglés es “Free Software”, cosa que puede llevar a confusión dado que “Free” significa tanto gratis como libre. Sin embargo el Software Libre no tiene porque ser gratuito, es posible hacer negocio con este modelo. Debido a estos problemas de lenguaje, Eric S. Raymond junto a Todd Anderson, Chris Peterson (del Feresight Institute http://www.foresight.org/), John «maddog» Hall, Larry Augustin (ambos de Linux International http://www.li.org/) y Sam Ockman (del Silicon Valley Linux User’s Group) el 3 de Febrero de 1998 en Palo Alto (California) decidieron buscar una nueva forma de nombrar este tipo de Software, con el objetivo de no llevar a confusión y que fuese un término más sencillo de usar por empresas. De esa reunión nació el termino Open Source.
Bruce Perens ofreció la marca “Open Source” y espacio para alojar información sobre este nuevo término. Linus dio su apoyo a la idea pero Richard Stallman se mostró en contra argumentando que este no denota libertad y carece del espíritu fundamental del Software Libre.
Finalmente OSI o la Open Source Iniciative se establece como una organización sin ánimo de lucro, la cual tiene una tendencia más bien práctica en la defensa de la metodología, mientras que la Free Software Foundation
afirma que el software debe ser libre por derecho social/universal.
Según la Free Software Foundation (respaldado por el proyecto GNU), un programa libre debe ofrecer las siguientes 4 libertades:
• Libertad para ejecutar el programa, con cualquier propósito y sin restricciones. No es posible obligar a ejecutarlo sólo en un número determinado de máquinas o en unas condiciones especificas.
• Libertad para modificar el programa para adaptarlo a sus necesidades o para estudiar su funcionamiento. Como
cualquier programador sabe, para que esta libertad sea efectiva, se debe tener acceso al código fuente, intentar modificar un programa sin disponer de él es muy complejo.
• Libertad para redistribuir copias, tanto gratis como cobrando por ellas.
• Libertad para distribuir versiones modificadas del programa, de tal manera

Este texto es un extracto de un manual cojonudo para breezy realizado por Sergio Blanco Cuaresma y protegido por la licencia libre Creative Commons denominada Reconocimiento-NoComercial-CompartirIgual 2.1 España.

2 comentarios sobre “Introduccion al software libre.

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.