Introducción al software libre

De XTech Capacitacion

Tabla de contenidos

Un Poco de Historia.

Orígenes de Unix y sus versiones

UNIX es uno de los sistemas operativos más populares del mundo. Es una marca registrada de The Open Group, aunque originalmente fue desarrollado por AT&T.

UNIX es un sistema operativo real. Por sistema operativo real se entiende que debe tener como mínimo dos características: más de una persona puede acceder al mismo tiempo al ordenador y, mientras lo hacen, cada una de ellas puede ejecutar múltiples aplicaciones. Esto se llama ser un sistema operativo multiusuario y multitarea. UNIX fue diseñado originalmente para ser ese tipo de sistema multitarea, allá en los años 70,y para que se pudiera ejecutar en mainframes y en minicomputadoras.

Con UNIX, cada usuario accede al sistema utilizando un nombre de acceso. Opcionalmente, (aunque es altamente recomendable), el usuario deberá proporcionar una contraseña, que asegura que la persona que accede es quien dice ser. Además, los usuarios no acceden a cualquier computadora en caso de que estemos hablando de una red.

UNIX funcionará prácticamente en cualquier plataforma que haya sido construida. Muchos fabricantes han adquirido el código fuente (IBM; Hewlett-Packard, Sun, etc.) y desarrollado sus propias versiones, a las que han incorporado su toque personal a lo largo de los años. Pero no son los únicos que continúan modificando UNIX. Cuando el sistema se desarrolló por primera vez, el código fuente se proporcionó gratuitamente a las universidades y a los institutos. Dos de ellas han estado en primera línea desde el primer momento: la Universidad de California en Berkeley y el Instituto Tecnológico de Massachussetts.

Como nos podemos imaginar, el desarrollo de UNIX se produjo de forma bastante desordenada. Gente de todo el planeta comenzó a desarrollar herramientas para UNIX. Desgraciadamente, no existía ninguna coordinación que guiase todo el desarrollo, lo cual produjo grandes diferencias entre las distintas versiones de UNIX. Finalmente la mayoría de los estándares se encuentran bajo el estándar IEEE POSIX.1.

El mayor inconveniente de UNIX es que es muy grande. También es caro, especialmente en sus versiones para PC. Aquí es donde aparece Linux, pues, como se explica con más detalle un poco más adelante, se diseñó para ser pequeño, rápido y barato. Hasta ahora los diseñadores han tenido éxito.

El nacimiento de Linux

LINUX fue creado originalmente por Linus Torvalds en la Universidad de Helsinki, Finlandia. Linus basó el Linux en una pequeña implementación de UNIX para PC con fines didácticos llamada Minix. Creado, a su vez, por el profesor Andrew S. Tanenbaum; de la Universidad de Vrije, Amsterdam.

A finales de 1991 se hizo público Linux con la versión 0.10. Un mes después, en diciembre, apareció la versión 0.11. Linus hizo que el código fuente fuera de libre disposición y animó a otras personas a colaborar en su desarrollo. Lo hicieron. Linux continúa su desarrollo hoy en día gracias a un equipo mundial dirigido por Linus, que trabaja a través de Internet.

Gran parte del software desarrollado para Linux es creado por el proyecto GNU de la Free Software Fundation.

El Software Libre y la licencia GPL

Llegados a este punto, nos encontramos con un nuevo concepto que es el Software Libre. Tiene su origen en el nacimiento del software en EE.UU., cuando la informática era un feudo reservado a empresas y universidades, y los programadores intercambiaban trucos (hacks, en inglés) que hacían brotar chispas en los enormes cerebros electrónicos. Por aquel entonces hacía sus pinitos digitales un joven programador, Richard M. Stallman que, al igual que sus compañeros de profesión, fue testigo de la primera gran transformación del mundo de la programación en industria cerrada.

Cuenta este informático que, un buen día, aparecieron por la puerta abogados que prohibieron a los programadores compartir su código (el código de sus programas) y les obligaron a ocultar celosamente cualquier información que pudiera ser usada por la competencia. Además, decidieron que las empresas guardarían bajo llave el código fuente de sus programas (la secuencia original de instrucciones que los hace funcionar de una determinada manera) y sólo entregarían a sus clientes el código binario (los unos y ceros que el ordenador entiende, pero apenas pueden interpretar las personas). Por último, obligaron a los trabajadores a aceptar la idea de que quien violaba estas normas no sólo cometía un delito, sino también un pecado propio de un loco, o de un pirata.

Años más tarde, este dogma informático se extendió hasta convertirse en el actual mercado del software, donde comprar un programa significaba adquirir el derecho a usarlo, pero no a abrirlo para saber cómo funciona ni, mucho menos, a copiarlo o modificarlo, una prerrogativa que corresponde en exclusiva a la empresa fabricante.

Stallman, convencido de que a la sociedad se le había robado un debate importante sobre la evolución de la tecnología (la frase "es como si te vendieran un coche con el capó sellado, para que no puedas ver el motor" es una de las analogías más usadas para explicar esta realidad mercantil), decidió dejar su trabajo y emprender una tarea mucho más altruista: responder al modelo propietario con un software del que nadie pudiera apropiarse, con un software libre.

Se trataba, según su promotor, de poner en marcha un nuevo contrato por el que los usuarios recibieran siempre el código fuente y, además, el derecho inalienable a modificarlo a su gusto. El movimiento fue bautizado con el críptico nombre de GNU, y para defenderlo se creó la Licencia Pública General (GPL, en sus siglas en inglés), un peculiar contrato mercantil que, a diferencia de las licencias de software tradicionales, no sólo no restringe la posibilidad de copiar y redistribuir los programas, sino que anima a los usuarios a hacerlo.

Este nuevo orden informático fue recibido con entusiasmo en la entonces incipiente comunidad de programadores que pululaba por Internet, pero también con cierta inquietud. De hecho, el movimiento GNU fue visto con recelo desde algunos sectores de la población estadounidense, que lo tacharon de "filocomunista", por su tendencia a compartir su trabajo y por su aversión al concepto de propiedad que había establecido la industria del software.

Qué es Linux y GNU/Linux

Con ideología o sin ella, el movimiento GNU se extendió por la Red y empezó a dar sus frutos, y así nació Linux. Línea a línea, programa a programa, el sistema operativo del pingüino (la mascota de Linux que, por cierto, se llama Tux) se convirtió en poco tiempo en el producto más famoso del código abierto y, paradójicamente, en la apuesta de más de una multinacional en el sector informático.

Lo que realmente se entiende por Linux es el kernel, el "corazón" de cualquier sistema operativo tipo UNIX. Pero el kernel por sí solo no forma todavía un sistema operativo. Justamente para UNIX existe una multitud de software libre, lo que significa que éstos están disponibles también para Linux y son estas utilidades las que realmente forman el sistema operativo. Entonces es cuando ya hablamos de GNU/Linux.

La posibilidad de que exista un gran número de programas de software libre permite la creación de diferentes sistemas Linux, y es cuando aparecen las distribuciones de Linux. Cada una con su conjunto de programas, pero que tienen en común el kernel, que es Linux. Por tanto, cuando hablamos de Linux, nos estamos refiriendo a cualquiera de sus distribuciones. Las más conocidas son Debian, Red Hat, SuSE, Mandriva (ex Mandrake). De todas éstas, la que más se acerca a la filosofía del movimiento GNU es Debian ya que es producto de un gran conjunto de programadores repartidos por Internet, mientras que las otras pertenecen a empresas privadas dedicadas al desarrollo de Linux.

Distribuciones de Linux

Lo que vulgarmente conocemos como Linux, debiera llamarse oficialmente (al menos) como GNU/Linux. El motivo no es otro sino que el corazón de un sistema Linux está formado por un núcleo (linux) al que se le han añadido las utilidades desarrolladas por la gente de la Free Software Foundation (GNU), o al menos así era en los primeros momentos.

Hoy en día, la lista de colaboradores en el desarrollo de Linux es inmensa, estando formada tanto por personas como usted, o como yo, como por las más grandes compañías del sector informático actual. Parece que ha pasado una eternidad (5 de Octubre de 1991), desde el momento que Linus anunció la primera versión "oficial" de Linux, la 0.02. Ya podía ejecutar bash (el shell de GNU) y gcc (el compilador de C de GNU), pero no hacía mucho más.

En ese anuncio, puso frases como estas:

[...]"¿Suspirás al recordar aquellos días de Minix-1.1, cuando los hombres eran hombres y escribían sus propios drivers? ¿Te sentís sin ningún proyecto interesante y te gustaría tener un verdadero S.O. que puedas modificar a tu gusto? ¿Te resulta frustrante tener solo a Minix? Entonces, este artículo es para vos."[...]

Hoy día, a partir de esas frases (y de lo que implicaban), han surgido distribuciones de linux para todos los gustos. Algunas de ellas son las que figuran en este listado:

Debian: La distribución de Linux más popular entre los administradores de sistemas, mantenida por un gran grupo de voluntarios. Url: http://www.debian.org
Mandriva: nace de la unión de varias empresas : Mandrake, Conectiva y otras, siendo actualmente una de las alianzas con más futuro en las distribuciones de escritorio Url: http://www.mandrivalinux.com
Ubuntu: una de las distribuciones con amplio crecimiento en estos ultimos tiempos, basada en Debian y con muchas prestaciones. Url: http://www.ubuntulinux.org
UTUTO-e : una de las distribuciones 100% libres, apoyada por la FSF de origen argentino, orientada tanto a usuarios finales como a servidores Url: http://ututo.org
Red Hat: La primera distribución Linux en proporcionar un sistema sencillo de instalación, donde hoy en dia solo siguen una linea hacia el sector corporativo (Enterprise) y un equipo con el apoyo del Red Hat , hace FEDORA CORE Url: http://www.redhat.com // http://fedora.redhat.com
Slackware: Una distribución histórica: La Distribución. Url: http://www.slackware.com
SUSE.: Una distribución desarrollada en años anteriores por una empresa alemana y que luego fue comparada por Novell, orientada a todo tipos de usuarios. En la actualidad Novell ha delegado el desarrollo de la distribución a la comunidad, al mismo tiempo que la empresa vende ediciones pagas de sistemas GNU/Linux: http://www.opensuse.org
KNOPPIX: una distribucion LIVE-CD (que corre desde un cd, sin afectar lo que haya en el disco rigidio) muy util para comenzar en el mundo de GNU/LInux. Muy recomendada para gente que quiere conocer que es linux, sin tener que instalar nada. Url: http://www.knoppix.com
Vector: una de las distribuciones aptas para maquinas con muy poco hardware, que posee muchas prestaciones con bajos recursos Url: "http://www.vectorlinux.com
DSL: Damn Small Linux una de las distribuciones mas pequeñas, con prestaciones altamente utilizadas en maquinas con verdaderos pocos recursos. Url: http://www.damnsmalllinux.org

Bueno, para terminar este rápido repaso, es importante comentar que en este listado no se encuentran, ni muchísimo menos, todas las opciones de las que puede disfrutar con linux. Basta dar una vuelta por los principales buscadores de Internet, y se darán cuenta de hasta donde se ha llegado actualmente.

Algunos puntos de partida muy recomendables para buscar distribuciones:

http://www.distrowatch.com
http://www.linuxiso.org/
http://www.linux.org/dist/
http://todolinux.com/webs/todolinuxphp/htm/distribuciones.php

Sobre la libertad

La confusión del término gratis en el Software Libre proviene de la traducción al español que se hace de la frase "Free Software", en donde "Free" en ingles tiene un doble significado: libre y gratis. Sin embargo, la correcta y verdadera traducción en el Software Libre es hacia el término de libertad y no al nulo costo económico del software. El Software Libre, por lo tanto, nos remite a una libertad en su uso, de aquí que la “Free Software Fundation” (FSF) nos da a conocer las cuatro libertades que poseen las aplicaciones que son liberadas bajo este concepto:

El Software Libre proporciona la libertad de:

0.Ejecutar el programa, para cualquier propósito;
1.Estudiar el funcionamiento del programa, y adaptarlo a sus necesidades;
2.Redistribuir copias;
3.Mejorar el programa, y poner sus mejoras a disposición del público, para beneficio de toda la comunidad."

Debido a estas libertades encontramos muchas veces que podemos disponer gratuitamente del Software Libre, ya sea descargándolo desde Internet u obteniéndolo por otro medio. No obstante, dentro de las cuatro libertades que se han descrito anteriormente, y en la GNU General Public Licence (Licencia Publica General GNU), que es una de las principales licencias bajo las cuales se libera el Software Libre (en donde se incluye el sistema GNU/Linux), no limitan la redistribución de las copias a un plano no lucrativo, sino que intentan promover su libre distribución por cualquier medio y de cualquier forma, ya sea como regalo, en rifas, como bono, en venta directa, etc.

Es por ello que existen empresas que venden sus productos, aun cuando han sido liberados como Sofware Libre. Del mismo modo, encontramos autores de Software que piden una retribución por su trabajo, la mayoría de las veces como donaciones, pero también en algunas otras con un costo mínimo de uso.

En el sistema Linux, existen distribuciones las cuales son un núcleo o kernel Linux, en conjunto con una gran cantidad de Software y herramientas que son liberadas bajo este concepto, y que son empaquetadas y trabajadas por compañías como Novell, MandrivaSoft, Red Hat, etc., que comercializan con ellas, apegándose a las licencias respectivas y en completa legalidad. Sin embargo, debido al falso rumor o mito de que el Software Libre es gratis se puede creer que estas empresas están haciendo una explotación ilegal del mismo, cuando en realidad, al igual que las distribuciones enfocadas totalmente a los usuarios Linux, sin aparente animo de lucro, forman parte de los pilares fundamentales del sistema Linux.

Otro ejemplo de venta de distribuciones Linux lo podemos ver en numeroso sitios en Internet que venden copias en CDs de las distintas distribuciones. Todavía se da mucho la creencia de que estos sitios actúan de manera ilegal, es decir, que forman parte de la piratería en Linux. No obstante, las libertades que promueve el software libre les da el derecho de redistribuir las copias de esta manera. En la mayoría de los casos, estos sitios hacen accesible el sistema Linux a un costo razonable para aquellos usuarios que no disponen de una conexión a Internet de banda ancha y que no pueden descargar los CDs por ellos mismos o que no pueden conseguirlos de otra manera.

Existen numerosos ejemplos de las variadas formas de obtención y redistribución del Software Libre sin que el término 'gratis' forme parte de las mismas; todas ellas siguiendo esas cuatro libertades que se han mencionado. Es por ello que el Software Libre lo debemos de considerar así, libre, y no limitarlo a ser Software Gratis.

Los autores y las empresas que piden una remuneración económica por su trabajo, basándose en el Software Libre, están en su total derecho de hacerlo desde el punto de vista ético y legal. Hay muchos trabajo detrás de todas esas aplicaciones, por lo que un pago por el mismo es algo justo, si razonablemente lo requieren. Del mismo modo, el trabajo-producto que ofrecen sigue conservando las libertades propias del Software Libre, de tal modo que no nos imponen nuevas condiciones para uso.

Así pues, el Software Libre puede ser gratuito o no, dependiendo de como y donde lo obtengamos. El término Gratis debe de ser un término que no interfiera con la libertad del Software Libre, es decir, no debe de ser un término obligatorio para su uso, sino ser una parte más de las verdaderas libertades que nos ofrece.

GNU/Linux : Comparativa

Multitarea total
Se pueden ejecutar varias tareas y se puede acceder a varios dispositivos al mismo tiempo.
Memoria virtual
Linux puede usar una porción de su disco duro como memoria virtual, lo que aumenta la eficiencia del sistema al mantener los procesos activos en la memoria física (RAM) y al colocar las partes inactivas o usadas con menos frecuencia en la memoria de disco. La memoria virtual permite utilizar la máxima cantidad de memoria posible del sistema (>GigaBytes) y evita la segmentación de la memoria.
Soporte multiusuario
Linux permite que varios usuarios accedan a su sistema simultáneamente sin que haya conflicto entre ellos y cada uno con su espacio de trabajo.
Código fuente libre
El kernel de Linux no utiliza código de AT&T ni ninguna otra fuente propietaria. Otras organizaciones, como las compañías comerciales, el proyecto GNU y los programadores de todo el mundo, han desarrollado software para Linux.
Adaptabilidad
Linux puede ejecutar una amplia variedad de software, disponible gracias al proyecto GNU. Este software incluye de todo, desde desarrollo de aplicaciones (GNU C y GNU C++) a la administración del sistema (gawk, groff, etc.) y juegos (GNU Chess, GnuGo, y NetHack).
Estabilidad
Linux presenta una gran estabilidad en la gestión de sus procesos internos del sistema. Es muy difícil conseguir que Linux se "cuelgue" y, por supuesto, jamás se verá una "pantalla azul".
Gran oferta de software
Aunque Linux no sea tan conocido por el público como lo es Windows, eso no quiere decir que no existan aplicaciones para el usuario medio. Por el contrario, cuando uno utiliza Linux, según pasan los días, se tiene la sensación de que no necesita para nada al otro sistema, porque todo lo que éste ofrece ya lo tiene Linux.
Defensa contra los virus
Aunque la mayor parte de los virus que rondan por Internet son desarrollados para Windows, es cierto que, en teoría, existen algunos para Linux, pero son más difíciles de crear debido a que Linux emplea un sistema de permisos de archivos previendo los posibles desastres que se ven todos los días en los entornos de Windows. Además, los virus para Windows no se pueden ejecutar en Linux. Y aunque existiera un virus que atacara máquinas Linux, éste solo podría dañar los archivos del usuario que fue infectado, pero nunca el sistema en si mismo.
Relación con Internet
Debido a que Linux creció gracias a Internet, digamos que ambos hablan en el mismo lenguaje y por tanto, se ve claramente que navegar por Internet con Linux es más rápido que otros sistemas.
Entornos gráficos
Hasta hace unos años, trabajar en Linux sólo era posible desde consola, ese entorno negro con caracteres blancos. Con la llegada de Windows, la comunidad Linux se vio de forma obligada a desarrollar entornos gráficos para no perder el tren. La gran diferencia con Windows es que mientras éste tiene un sólo tipo de escritorio, en Linux podemos elegir con qué tipo de escritorio queremos trabajar. O si preferimos solo un administrador de ventanas (que tiene menos funcionalidades, pero es más liviano en cuanto al consumo de recursos). Los más conocidos son KDE, GNOME, iceWM, Flubox, ROX, donde los dos primeros son los más populares. La ventaja de la variedad es que el usuario puede decidir con cuál se siente más cómodo.
Servidores caseros
Parece mentira, pero en casa podemos tener un servidor web, o un servidor FTP con nuestro Linux. Sólo hay que leer la documentación de cómo hay que hacerlo y poner manos a la obra. Esto ha generado grandes cambios sociales en nuestro tiempo, al descentralizar las fuentes de información en el mundo.
La comunidad Linux
Linux tiene una comunidad de voluntarios con ganas de ayudar a los que les cuesta adentrarse en este mundo. Y todo por afán de colaborar en este proyecto.
Soporte de hardware
Por desgracia, como se ve claramente, el mercado de los sistemas informáticos de escritorio está orientado a Windows. Prueba de ellos es que el 90% de las PCs lo tienen instalado sin usar otro. Así que, los fabricantes de hardware sólo se han preocupado de crear los drivers compatibles con Windows sin pensar en los restantes sistemas como Linux, Mac, BeOS y otros. Ello ha obligado a que fueran los propios usuarios programadores los que desarrollaran sus propios drivers. Con el tiempo, los fabricantes ha atendido a las demandas de estos últimos y de a poco es posible encontrar hardware con drivers para Linux. El consejo en este caso es comprar hardware lo más genérico posible, ya que es el que tiene mejores probabilidades de tener todo el soporte de drivers.
No todo el software tiene su equivalente
Es cierto que casi todo el software que un usuario necesita ya lo aporta Linux. Pero hay situaciones en las que una persona necesita una aplicación concreta y ve que debe utilizar Windows para usar esa aplicación. De todas formas, siempre surgen desarrolladores con afán de ayudar y terminan construyendo esas aplicaciones o empresas desarrolladoras que lo toman como una posibilidad de negocios.

Nota: Es muy importante tener en cuenta que el pasaje a GNU/Linux hace necesaria la capacitación del personal técnico y de usuarios (en el caso de migraciones a escritorios GNU/Linux), como asi también la planificación y relevamiento de datos necesarios para realizar la migración. Todo eso implica una inversión que a la larga redunda en el desprendimiento de licencias privativas y perpetuas.

Recursos de Software para GNU/Linux

Tal vez por su escasa repercusión en el ámbito doméstico, uno pueda pensar que la cantidad de software es bastante escasa. Todo lo contrario. De hecho se pueden encontrar bastantes utilidades en las páginas webs propias de las distribuciones.

También se pueden encontrar aplicaciones en otras páginas o servidores FTP con software propio, como OpenOffice.org, KDE, QCAD y VariCAD (éstos últimos son aplicaciones que pretenden ser los correspondientes AutoCAD en los entornos UNIX), etc.

Si el usuario proviene del entorno Windows, tal vez pueda tener la sensación de que "Sí, trabaja como Windows, pero no es igual que Windows", y le gustaría encontrar las herramientas con el mismo aspecto que este sistema operativo.

Los desarrolladores han optado por tres caminos:

  1. El primero es el de dar las mismas funcionalidades que las que tienen esas aplicaciones que existen en Windows, aunque su aspecto externo no tenga nada que ver con el Windows.
  2. El segundo camino añade además el aspecto externo original de la aplicación que funciona en Windows con el fin de que el usuario se encuentre en un entorno familiar.
  3. El tercero es el más drástico ya que se crean herramientas con aspectos y funcionalidades totalmente diferentes a esas aplicaciones.

Para plasmar en un ejemplo de lo que se acaba de decir, basta con nombrar una de las aplicaciones más utilizadas en el entorno Windows que es MS Word. Del primer ejemplo nos encontramos con KWord, desarrollado por el equipo que creó KDE. El segundo es AbiWord. El autor reconoce que es casi como utilizar el MS Word. Y el tercero es el LaTeX, una herramienta muy potente, pero que quizás desconcierte a los usuarios noveles debido a su complejidad. Al final la elección depende del propio usuario.

Una cosa está clara: Para Linux hay suficiente software para detener un tren.

Bibliografía

Herramientas personales