Presentación
De GLASS
Tabla de contenidos |
Objetivos
Después de leer este capítulo
- Sabrá distinguir el software libre de otras variedades de software que puedan llevar a confusión (freeware, shareware...)
- Conocerá la historia del nacimiento de Unix y su evolución
- Entenderá el sentido de Linux en el entorno de GNU
Introducción
Se suele confundir de un modo arbitrario el Software Libre con el software gratuito. De algún modo, históricamente las personas han tenido necesidad de acceder a una serie de recursos que les permitan adecuar su metodología de trabajo a las exigencias del mercado, exigencias cada vez más complejas cuyos recursos se tornan a la par más caros y restringidos. Hoy día se suele decir (todos lo hemos oído) que para tener un buen trabajo, o cuanto menos uno decente, es necesario saber manejar un ordenador. Evidentemente no entraremos en cuanto al terreno personal concierne, puesto que las aficiones de la humanidad cada día tienen más de digital y menos de ortodoxo.
En el panorama que envuelve la primera década de la saga del 2000 los ordenadores llegan a cualquier casa, dado que el proceso recorrido en su historia ha abierto sus secretos y ha hecho que los diferentes modelos sean compatibles casi completamente entre ellos. De éste modo no es difícil que en un hogar cualquiera exista uno o varios ordenadores de última generación, dado que su coste a día de hoy es sumamente asequible.
El hecho sin embargo no se replica en cuanto a software se refiere, ese programario que el ordenador necesita ejecutar para que nosotros podamos pedirle cosas y comprender sus respuestas a nuestras peticiones. En la parte que se refiere a los programas, la industria se ha vuelto extremadamente tosca y ambiciosa, llevando los productos de consumo estandarizado a un estado aberrante en cuanto a condiciones y precio se refiere. Es altamente recomendable leer las licencias de dichos productos cuando, una vez adquiridos, nos disponemos a instalarlos en un ordenador, puesto que muchas veces dicha lectura nos proporcionará una visión extensa del comportamiento que las compañías toman frente a los consumidores.
Debe quedar claro que adquirir un programa, siempre que éste no sea libre, le da derecho única y exclusivamente a utilizarlo en unas condiciones concretas muy restrictivas. Jamás podrá afirmar que el software es suyo: simplemente ha adquirido unos derechos limitados y no exclusivos de uso sobre el mismo. Si bien la inmensa mayoría de los usuarios de informática acepta ésto como algo normal, convendría compararlo con cualquier otro tipo de producto que pueda adquirirse en el mercado legal, dándose cuenta de que los productos de software son los únicos que, no solamente no podemos regalar, prestar o usar a nuestro antojo, sino tampoco los podemos modificar, retocar, pintar, decorar o cualquier otro tipo de acción que requiera una modificación del ejemplar original. Tampoco podemos hacer copias de seguridad de los mismos. No podemos transportarlos. No podemos duplicarlos, y si sabemos crearlos, tampoco podemos porque estamos plagiando una idea registrada.
Así pues, antes de instalar un programa y decir a todo que sí cuando se le pregunte, antes de buscar un número de serie en Internet, y antes de pedir a alguien que le proporcione una copia pirata de cierto programa, usted debe saber que está infringiendo una ley, que ese hecho podría llevarle a la ruina o a la prisión, y lo más importante, que está usted aceptando la sumisión y el robo injusto como el camino normal para llevar a cabo sus labores informáticas.
Software Libre
Mucha gente tiende a confundir la libertad del software con la ausencia de un precio a pagar por él. No obstante, esta confusión proviene de su nombre en inglés (Free Software), donde la palabra Free significa tanto Libre como Gratuito. El Software Libre, como su nombre indica, no es aquél que carece de un importe a pagar, sino el que ofrece al usuario la completa libertad de acción sobre el mismo. Evidentemente el segundo concepto obvia el primero, pero siempre en ése orden. La libertad que puede un usuario tener sobre un software es algo que muchas veces se entiende como subjetivo, pudiendo pasar desde su uso a su venta según la finalidad de cada usuario. En el modelo del Software Libre una cosa no quita la otra. Veamos cuales son las libertades que condicionan un programa para que éste sea libre:
- 1 Libertad de usar el programa.
Puede parecer obvio, dado que cuando usted adquiere un programa que no es libre cree que goza también de esta misma libertad. Si se fija atentamente en la licencia que condiciona cualquier programa propietario descubrirá que el uso del mismo se ve condicionado a múltiples restricciones. El ejemplo más claro es el de no poderlo usar en más de un ordenador, aun sin hacerlo simultáneamente, aunque no es el único ejemplo. Desgraciadamente cada compañía tiende a imponer sus propias restricciones de uso sobre los programas, de modo que no es extraño que encuentre un listado de varias páginas citando las mismas al leer la licencia.
- 2 Libertad de modificar el programa
Si usted sabe programar y quiere modificar un programa, tiene toda la libertad para hacerlo sin limitación alguna. Si su empresa usa un programa que es libre y necesita una función que dicho programa no incluye, usted puede contratar un programador que la incorpore. Si usted cree que puede mejorar un programa, puede hacerlo en cualquier aspecto. Obviamente este apartado comporta además el acceso al código fuente, de modo que cuando adquiere usted un programa libre, no sólo adquiere la aplicación ejecutable, sino todo su código para que pueda estudiarlo o modificarlo entero si lo desea.
- 3 Libertad de distribuir el programa
No es necesario que pida permiso a nadie, no está infringiendo ninguna ley. Si le gusta un programa y está protegido por una licencia libre, no lo dude, puede copiarlo tantas veces como usted guste, y repartirlo entre sus amigos o colegas que puedan precisarlo. Ellos a su vez también gozarán de la misma libertad.
- 4 Libertad de distribuir las modificaciones realizadas
Si a modo personal o en el entorno de trabajo usted ha modificado un programa, sea con la finalidad que sea, y cree que esa modificación es beneficiosa para el resto de usuarios de la aplicación, no debe pedir permiso a nadie si desea distribuir copias modificadas de la misma. Editando y modificando el código fuente original de una aplicación, no solo está beneficiando a los usuarios de la misma con sus mejoras, sino también a la misma aplicación original. Ésta cada vez será más útil y potente, y posiblemente otras personas se decidan a utilizarla una vez incorporadas las mejoras que usted ha realizado.
Free Software Fundation
La organización creadora de la libertad en el software es la Free Software Fundation (Fundación del Software Libre). Su origen se remonta a principios de los 80, encuadrado en un entorno que comenzaba a cerrar el acceso a ciertos recursos fundamentales de los productos informáticos que hasta el momento habían sido libres.
Echando una ojeada a la década en cuestión nos encontramos con el panorama del recién nacido Unix. En se momento las compañías que hasta entonces habían distribuido abiertamente el software junto a su código fuente, dando más importancia a la venta de hardware, vieron el filón en lo que a los programas se refería. Si hasta entonces habían fabricado ordenadores cerrados, no compatibles con los de otras casas, poniendo así precios excesivos a los componentes mecánicos de las máquinas, en la década de los 80 encontraron la dependencia de los usuarios en el software. Comenzaron a distribuir los programas sin su código fuente, haciendo necesario que el usuario notificase sus necesidades a la compañía, y si ésta tenía a bien realizar dichas modificaciones entonces el producto final veía su precio incrementado en función de las mismas.
Aparece en escena el nombre de Richard M. Stallman, trabajador del departamento de Inteligencia Artificial en el MIT (Massachussets Institute of Technologies). Fue en 1983 cuando una compañía regaló al departamento una impresora, que con el tiempo comenzó a dar problemas de funcionamiento. El papel se trababa en la bandeja de la impresora, y la impresora no tenía programada la funcionalidad de avisar a las estaciones de trabajo cuando esto sucedía. Stallman decidió un buen día incorporar dicha funcionalidad a los programas que controlaban la máquina, de modo que se puso a buscar las cintas donde éstos estaban guardados, y cuando los encontró descubrió que el código fuente de los mismos no estaba incluido en el paquete. Llamó a la compañía que les había regalado la impresora para pedir el código de los controladores, algo que la empresa se negó a proporcionar. Fue en ese momento cuando Stallman decidió crear un sistema operativo nuevo y unas aplicaciones mucho más potentes que las que ya existían, y para que a nadie le volviese a pasar lo que él había sufrido decidió que sería gratuito y que las aplicaciones se distribuirían siempre junto a su código fuente. Con esa finalidad se puso en contacto con algunos colegas que también sabían programar y crearon en 1985 la Fundación del Software Libre, organización registrada y legal bajo la cual ampararían sus proyectos para evitar que alguna compañía se apoderase de ellos. El papel principal de la FSF fue la distribución de la aplicación más conocida de Richard Stallman, el editor de texto Emacs. El código fuente del editor se encontraba a libre disponibilidad en un servidor FTP para que lo descargase quien lo quisiera, pero también se vendía por correo bajo el coste de 150 dólares la unidad. Para legalizar el proceso, Stallman escribió la GPL (General Public License), una licencia bajo la que amparar los proyectos de la FSF.
Si bien es cierto que Stallman predicaba la libertad del software, ello no implica la venta del mismo. El aspecto más importante de la GPL es el copyleft, lo que especifica las cuatro libertades que debe cumplir todo software libre, explicadas en el capítulo anterior.
De cualquier modo conviene saber que la GPL no es la única licencia libre, y que no todo el software libre está amparado por la GPL. Existen licencias que ofrecen las mismas libertades aportando otras nuevas. Algunos ejemplos claros son las licencias BSD y Apache, aunque también existen modificaciones de las mismas como las licencias de los programas Samba y APSfilter, denominadas Postalware y Pizzaware respectivamente, y que son extensiones a la GPL creadas a gusto del programador.
Nacimiento de Unix
Todo comienza en 1965, cuando Bell Laboratories y General Electric Company colaboran en el proyecto MAC que se desarrollaba en el MIT con finalidad de escribir el sistema operativo MULTICS, un sistema multiusuario que no acabó de cuajar debido a la gran demanda de recursos (memoria y disco) que requería. De los restos de MULTICS nació la idea de UNIX, desarrollado en 1969 por Ken Thompson y Denis Ritchie en el lenguaje de programación B, y la instalaron en un ordenador PDP-7 de DEC (Digital Equipment Corporation). En 1970 lo instalaron en un PDP-11, dado que la anterior tenía tan solo 18 Kb de memoria, y crearon runoff, primera versión del troff, que se convertiría en el primer procesador de textos de Unix, y en 1971 la firma AT&T le dio su reconocimiento oficial tras empezar a usarlo para escribir sus manuales.
En 1971 se programó la segunda versión de UNIX, que daba soporte para programación en lenguaje C y añadía el concepto de las pipes, cuya importancia radicaba en la posibilidad de aplicar un programa al resultado de otro programa.
La actividad en torno al lenguaje C era creciente, y después de que Ritchie añadiera soporte para variables globales y estructuras, se convirtió en el lenguaje más usado para programar en UNIX, dando lugar en 1974 a la versión 4 de UNIX, todo reescrito en lenguaje C.
El hecho de haber migrado a C el código del sistema operativo, y dado el momento de alza que vivía este lenguaje, posibilitó la implementación del sistema en otras arquitecturas, y es aquí donde nace el concepto de portabilidad, lo que implica la capacidad de poder mover el software de una máquina con unas prestaciones, a otra con otras completamente distintas. Gracias a ello enseguida el UNIX se distribuyó a universidades y academias, sería ya con la versión número 5 del mismo, escrita para poder acomodar el sistema en los ordenadores de las escuelas, y con el importe del sistema poder recuperar los gastos de las cintas y los manuales. En 1975 se desarrolló la versión sexta de UNIX y en 1976 ya se había creado el grupo de usuarios USENIX.
Interactive System Corporation inició la venta de UNIX en el campo comercial en 1977. En breve muchas otras compañías reinventaron el UNIX adaptándolo a sus necesidades y aportándole nuevas características, tarea fácil debido a la simplicidad y claridad del código del sistema, y el hecho desembocó en una gran variedad de sistemas UNIX diferentes. Entre 1977 y 1982 AT&T combinó el sistema original con algunas de las otras variantes y llamó al resultado UNIX System III, que con el paso del tiempo evolucionó hasta que en 1983 recibió la bendición de Bell Laboratories en lo que sería la versión definitiva, el UNIX System V. Por su parte la universidad de Berkeley había creado su propia versión del Unix para plataformas VAX, llamada BSD, fuerte competidor del System V, y que incorporaba algunas características novedosas como la paginación virtual de la memoria. La versión en curso era la número 3, y por aquellos entonces la DARPA financió el desarrollo de la versión 4 que incluiría aplicaciones como el intérprete de comandos Csh o el editor de textos vi.
En 1983 surge la versión 4.2 de BSD que incorpora DEC en sus plataformas VAX, y Sun Microsystems crea su propia versión del sistema basándose en la última versión de BSD. Nacía el SunOS, paso importante para la historia del UNIX, ya que sería Sun Microsystems quien incorporaría el concepto de RPC (Remote Procedure Call) y NFS (Network File System), un sistema para compartir archivos entre sistemas UNIX en red. En 1984 eran ya cerca de 100.000 los UNIX instalados en el mundo, un logro del que ningún otro sistema operativo puede presumir. Aunque existían gran variedad de versiones diferentes, la patente sobre el nombre del sistema la tiene AT&T, propietario indiscutible de la marca, de modo que las nuevas variantes iban adquiriendo nombres alternativos. De este modo, Sun Microsystems tiene su propio UNIX llamado SunOS, Hewlett Packard tiene el HP-UX, IBM tiene AIX, DEC hizo lo propio con su ULTRIX (basado en BSD 4.2)... y prácticamente se puede hablar de que cada versión estaba basada en uno de los dos grandes pilares, System V o BSD, que son las versiones del UNIX propuestas como estándares.
Linux y GNU
Nos situamos en los alrededores de 1990, cuando el sistema operativo GNU (el proyecto emprendido por Richard M. Stallman) estaba escrito casi al completo, dado que todavía le faltaba un núcleo, que es lo que hace funcionar la base del sistema. Stallman y sus compañeros trabajaban entonces en la creación de un núcleo llamado HURD, pero en 1991 un estudiante de la universidad de Helsinki llamado Linus Torvalds lanzó bajo el amparo de la GPL un núcleo llamado Linux. El núcleo que había programado Linus estaba basado en Minix, un sistema operativo de divulgación gratuita con fines educacionales, y estaba diseñado para funcionar sobre plataformas x86 (los PC's convencionales). Linux gustó mucho en la FSF, y se utilizó como núcleo para el sistema GNU, desplazando temporalmente al HURD, y dando lugar finalmente al sistema GNU-Linux, lo que actualmente se conoce como Linux a secas. En la actualidad hay en el mundo más de 20 millones de usuarios de Linux, y lo han adoptado grandes compañías fabricantes de equipos como IBM, Hewlett Packard ó Compaq.
Linux ya no es un mito, es una pura realidad, cada día más creciente, y que promete mucho más que ningún otro sistema operativo existente hasta el momento.
Nota: Es importante remarcar que el nombre Linux hace referencia únicamente al Kernel o Núcleo, no al sistema operativo. Linux, al igual que el resto de software GNU está liberado bajo licencia GPL. Por lo tanto una distribución basada en software bajo esta licencia recibirá el nombre de sistema operativo GNU o GNU/Linux indicando que el kernel de esta distribución GNU es del tipo Linux.

