domingo, 12 de julio de 2009

En un principio fue el código y el código era libre

Autor: fedaro en: Software Libre .

“Para subir una escalera se comienza por levantar esa parte del cuerpo situada a la derecha abajo, envuelta casi siempre en cuero o gamuza, y que salvo excepciones cabe exactamente en el escalón. Puesta en el primer peldaño dicha parte, que para abreviar llamaremos pie, se recoge la parte equivalente de la izquierda (también llamada pie, pero que no ha de confundirse con el pie antes citado), y llevándola a la altura del pie, se le hace seguir hasta colocarla en el segundo peldaño…”?

Julio Cortazar

En un principio fue el código y el código era libre

Parafraseando a Linus Torvalds podríamos escribir:

¿Estás harto de trasnochar para poder conseguir que funcione un programa?
¿Estás harto de luchar con los cuelgues de la máquina?
¿Te gustaría controlar el software de tu máquina y no que el software te controle?
Entonces, leer este artículo puede ser justamente para ti.

Una breve introducción

No hay nada más tonto que el procesador de una computadora, si vamos a su esencia lo único que puede hacer es trabajar con dos elementos un uno y un cero y sumarlos.
El uno y el cero son las letras del vocabulario de la computadora. ¿Cuántas palabras tiene el diccionario de la computadora? Tan solo 256 palabras, ¿porqué? Porque la computadora trabaja con palabras de 8 letras y las combinaciones posibles de 8 letras, usando – para el ejemplo, como letras- solo el uno y el cero, son 256.
Ahora bien, nos podemos preguntar, ¿cómo es posible que con solo 256 palabras en su vocabulario una computadora pueda hacer tantas cosas?, ¿cómo es posible que solo sumando pueda hacer tantos cálculos?. La respuesta es que cada palabra cambia de sentido de acuerdo al contexto y además puede manejar esas 256 palabras a una velocidad impresionante. Por ejemplo, en un contexto determinado, una combinación de ocho ceros y unos, representa la letra A y en otro contexto esa misma combinación de unos y ceros representa un color X o el componente de azul de un color X, etc.
Como trabaja a una velocidad muy rápida, para multiplicar, le alcanza con sumar muchas veces el mismo número. ¿Pero como hace para dividir y restar? Es simple, suma números negativos.
Esas palabras de 8 letras, compuestas por unos y ceros son lo que comúnmente denominamos bytes, un byte es una combinación de 8 ceros y/o unos.

El código fuente

Pero, para que esa maravilla sea posible, hacer tantas cosas con un lenguaje de tan solo 256 palabras, es necesario darle instrucciones al procesador de la computadora, indicarle paso a paso que hacer con ese uno y ese cero, combinados en palabras de ocho letras. Un buen ejemplo de lo complejo que puede ser, es el cuento “Instrucciones para subir una escalera” de Julio Cortazar. A ese nivel es que hay que indicar al procesador cada uno de los pasos necesarios para que haga lo que nosotros queremos. O sea, la computadora hace estrictamente lo que le indica su programa, lo que le indico en última instancia el o los programadores, ahí es donde se encuentra el mayor valor agregado. Inclusive el sistema binario utilizado en las computadoras, ni siquiera fue desarrollado debido a ellas, sino que fue propuesto por Leibniz en el siglo XVII.
Al principio los programadores, con no poco esfuerzo, introducían el código máquina directamente en la computadora, lo cual era sumamente complejo y era una limitante muy importante para la programación. Luego vino el lenguaje ensamblador (o assembler) que tiene la desventaja de que es diferente para cada procesador y sigue siendo difícil de leer.

Posteriormente se desarrollaron los lenguajes denominados de alto nivel, los lenguajes de programación comúnmente usados hoy en día, que tienen la particularidad de ser fáciles de leer y escribir, dado que utilizan un lenguaje más cercano al humano. El código generado por el programador, en ese lenguaje más cercano al humano, es lo que se conoce como código fuente. El cual tiene la ventaja de que puede ser analizado, modificado y/o evaluado por otro programador que maneje ese lenguaje.

El compilador

Ahora bien, nos podemos preguntar ¿cómo hace la computadora para entender ese lenguaje más cercano al humano, si en realidad el procesador de la máquina necesita que le den unos y ceros? Para “traducir” ese lenguaje de alto nivel al lenguaje máquina o código binario de la computadora, una de las opciones, es utilizar otro programa denominado compilador.

El compilador es un programa, resultado del esfuerzo de un grupo de programadores, destinado a traducir las instrucciones, escritas en un determinado lenguaje de programación, al código máquina de un determinado procesador, facilitando a partir de ahí la tarea de programación de ese procesador. Entonces esa serie de instrucciones, a las que denominamos código fuente, deben ser procesadas por el compilador, que transforma ese código fuente en las instrucciones que entiende el procesador de la máquina, que como decíamos antes, trabaja con unos y ceros.
El resultado del procesamiento del código fuente por el compilador es lo que se denomina comúnmente ejecutable. Es muy difícil – por no decir imposible - obtener a partir de un programa compilado el código fuente original. Por otra parte si busca en la licencia de algún software existente en su computadora (en caso de que usted no use LINUX) no le será difícil encontrar la siguiente frase:

“Se prohíben las técnicas de ingeniería inversa, descompilación y desensamblaje del Software(…)”

Software libre

Entendido lo anterior podemos entrar en lo sustancial de este artículo, ¿qué es software libre?, ¿qué quiere decir software libre?.
Simplificando al máximo la definición, podemos decir que software libre es un software o programa que permite una serie de libertades:

1) La libertad de usar el programa con cualquier propósito.

2) La libertad de estudiarlo y modificarlo a las necesidades del usuario. Lo cual implica el acceso al código fuente del mismo.

3) La libertad de distribuir copias del programa y de ese modo difundirlo.

4) La libertad de mejorar el programa y distribuir esas mejoras a fin de beneficiar a toda la comunidad. Lo cual también implica el acceso al código fuente del mismo.

Y solo exige una cosa, que el programa resultante se distribuya bajo las mismas condiciones del programa original.
Como contraparte podemos decir que software propietario es el que no brinda alguna de las libertades antes expuestas.
¿Cómo surge el movimiento del software libre? El origen tiene un nombre, Richard Stallman, un programador del MIT (Instituto de Tecnología de Massachussets), él se había acostumbrado a colaborar con otros desarrolladores intercambiando código fuente, de esa manera, cooperando con otros desarrolladores, lograba buenos resultados. Esto último era una practica común en los inicios de los 70, cuando Stallman comenzó a trabajar en el MIT, pero las cosas fueron cambiando, en buena medida debido a que el desarrollo de software, se convirtió en un gran negocio. Al llegar a los 80 el código fuente, había pasado de ser un elemento de intercambio entre los programadores a ser considerado un secreto industrial por varias empresas.
Es en ese contexto que Richard Stallman publica el 27 de septiembre de 1983, en el grupo de noticias net.unix-wizards, el primer llamado al desarrollo del proyecto GNU, decía entre otras cosas:

“ Iniciando este día de Acción de Gracias voy a escribir un sistema de software completo compatible con Unix llamado GNU (siglas de Gnu No es Unix), y lo distribuiré libre a quienes puedan usarlo. Considero que la regla de oro exige que si yo quiero un programa debo compartirlo con otras personas que también lo quieren. No puedo, conscientemente, firmar un acuerdo de confidencialidad o un acuerdo de licencia de software. Para que yo pueda continuar utilizando las computadoras sin violar mis principios, he decidido reunir suficiente software libre de manera de poder continuar sin necesidad de utilizar algún software que no sea libre.(…) estoy buscando personas para quienes el ayudar a la humanidad sea tan importante como el dinero.”

Y al parecer las encontró, veinte años después el movimiento GNU tiene una difusión universal.
Lo que Stallman deseaba era: “retornar al espíritu de cooperación que prevaleció en los tiempos iniciales de la comunidad de usuarios de computadoras” , de ahí el título de este artículo.

El copyleft

A fin de que todo el código fuente producido por el movimiento GNU no fuera utilizado dentro del software propietario comercializado por empresas que ocultaban el código fuente, es que Stallman desarrolla la licencia GNU/GPL (General Public License), también denominada copyleft en contraposición al copyright. La licencia GNU lo que hace es permitir las libertades antes expuestas para el software libre, con la obligación de que todo software derivado de ese código fuente también deba ser distribuido libremente.
De esa manera se evitó que las empresas que distribuyen software propietario se beneficiaran del desarrollo de código fuente del movimiento GNU. Por otra parte eso también llevo a que el software bajo licencia GNU/GPL
aumentara rápidamente.

Según Stallman en su manifiesto GNU:

“GNU no es de dominio público. Todos tendrán permiso para modificar y redistribuir GNU, pero a ningún distribuidor se le permitirá restringir su redistribución posterior. Esto es decir, modificaciones propietarias no estarán permitidas. Quiero asegurarme de que todas las versiones de GNU permanezcan libres.”

En 1985 Stallman crea la Free Software Foundation, (FSF, Fundación del Software Libre) mediante la cual contrató programadores para desarrollar software libre, aunque la mayor parte del desarrollo de software libre sigue siendo producida por voluntarios. También se da el caso de que organismos internacionales financien proyectos de desarrollo de software, con la condición de que luego sea licenciado bajo licencia GNU/GPL a fin de beneficiar a toda la comunidad. Lo cual le brinda un doble placer a los programadores, por un lado cobrar por sus trabajo y por el otro saber que el mismo será difundido y utilizado sin trabas.

AT&T

A fines de los 80 el movimiento GNU estaba en pleno desarrollo, pero aún no contaba con un sistema operativo propio.
En buena medida el movimiento GNU nació en oposición a la decisión de muchas empresas de mantener confidencial el código fuente, AT&T propietaria del sistema operativo UNIX era una de ellas y hacia mucho dinero vendiendo la licencia para usar UNIX y manteniendo secreto el código fuente del sistema operativo. Pero una buena parte de ese código había sido producido por la Universidad de Berkeley, que había recibido apoyo económico para investigación de AT&T. A los programadores de Berkeley no les gustaba nada que su trabajo quedara en secreto mientras veían que Stallman compartía código fuente con todo el mundo.
Lo primero que hicieron estos desarrolladores de Berkeley fue unir las piezas dispersas de código fuente generado para UNIX y luego publicarlo, pero les faltaban seis archivos para tener un sistema operativo completo. Un grupo de programadores de Berkeley se puso a trabajar sobre ese código fuente y desarrollo los seis archivos faltantes, crearon una pequeña empresa y comercializaron el sistema, totalmente compatible con UNIX, entregando en cada paquete una copia del código fuente del mismo, por un monto de 1000 dólares, no olvidemos que en esos momentos UNIX era el sistema operativo usado por las grandes empresas, el mejor y más estable existente. Para ellos ese dinero alcanzaba, pero AT&T cobraba mucho más por la licencia y además no entregaba el código fuente. Ellos pensaron que al poco tiempo de conocerse el código fuente la gente comenzaría a compilar y generar sus propios ejecutables, pero descubrieron que la mayoría de sus clientes no se tomaba el trabajo de compilar el código fuente y les compraba las copias ya compiladas.
Para AT&T era un grave problema, se les venía abajo un gran negocio de venta de licencias y les inicio juicio. Ellos alegaron que el código fuente había sido publicado y liberado por Berkeley y que ellos habían desarrollado el código fuente de los seis archivos faltantes y ganaron el juicio.
AT&T decidió hacerle juicio a Berkeley.
El pleito fue largo, complejo y terminó en 1994 con un acuerdo que beneficio a Berkeley, la Universidad pudo difundir un sistema operativo completo basado en su trabajo previo para UNIX, bajo dominio público, o sea sin ninguna limitación, podía y puede ser usado por cualquier empresa, inclusive las desarrolladoras de software propietario. El sistema operativo denominado 4.4BSD-Lite que luego dió origen al FreeBSD, NetBSD y OpenBSD.
Pero para ese entonces ya existía LINUX que había llenado la necesidad de un sistema operativo para el movimiento GNU.

LINUX

Linus Torvalds, un estudiante de informática de la Universidad de Helsinki, en 1991 se encontró con que deseaba trabajar sobre un sistema operativo, él no tenía una de las grandes computadoras empresariales que trabajaban con UNIX, sino que tenía un PC 386, tampoco le entusiasmaba el DOS de Microsoft ni Windows 3.1, no brindaban ni por asomo las prestaciones de UNIX, él quería algo que pudiera usar en su PC y fuera mejor que lo disponible en ese momento. Mando un mensaje a la red, pidiendo las especificaciones que cumplía UNIX y se puso a trabajar en el corazón (mejor dicho, núcleo o kernel) del sistema operativo que hoy conocemos como LINUX.

Linus anuncio la versión 0.01 de LINUX en agosto de 1991, la primera versión oficial surgió el 5 de octubre de 1991, esta primera versión ya podía ejecutar el compilador de lenguaje C desarrollado por el movimiento GNU.
En octubre de 1991 Linus mandaba un mail a un foro en Internet, donde instaba a colaborar en el proyecto y decía entre otras cosas:

“¿Careces de proyectos interesantes y te mueres por desafiar a un sistema operativo que puedas modificar a tu antojo? (…) ¿Estás harto de trasnochar para poder conseguir que funcione un programa?.
Entonces, esta carta puede ser justamente para ti.”

A partir de ahí otros programadores empezaron a colaborar con Linus, que tuvo la brillante idea de incluir su desarrollo bajo la licencia GNU/GPL, el movimiento GNU apoyo entonces su trabajo destinado a crear un sistema operativo libre, configurando el sistema GNU/LINUX mal llamado LINUX a secas.
Desde entonces es mucho lo que se ha avanzado, hoy en día el sistema GNU/LINUX esta ampliamente difundido en todo el mundo, muchas universidades, programadores independientes y empresas que aceptan respetar la licencia GNU/GPL, trabajan en su mejora, el código fuente se comparte sin ningún tipo de exclusión y la calidad del sistema es mayor a medida que pasa el tiempo.
El autor Eric Raymond planteó que esta mejora constante del software libre, se debía a la que denominó “Ley de Linus” en honor a Linus Torvalds y la formuló de la siguiente manera “Dado el suficiente número de globos oculares, todos los errores se hacen evidentes” , haciendo referencia a que por estar disponible el código fuente de LINUX, para toda la comunidad académica, desarrolladores independientes, colaboradores voluntarios, etc, a nivel mundial, era difícil que un error no fuera fácilmente detectado y rápidamente solucionado. A diferencia de lo que ocurre con el código secreto de las empresas de software propietario.

Las empresas de hardware se dan cuenta

En el mundo de la informática, a partir del auge de los computadores personales, el mayor negocio fue el desarrollo de software, las empresas fabricantes de hardware -la parte física del equipo-, se vieron en determinado momento muy presionadas por las empresas de software, que tenían y todavía tienen, el poder para fijar algunas pautas.
Con el avance del software libre, algunas de éstas empresas comenzaron a incorporar el software libre en sus equipos y brindar su apoyo al desarrollo y mejora del sistema GNU/LINUX. ¿Por qué? Porque un día percibieron que importantes organizaciones había elegido, por seguridad y estabilidad, el software libre frente al software propietario y además el primero los liberaba de la dependencia generada por utilizar el sistema operativo propietario de una única empresa. Tan es así, que varios autores vaticinan a mediano plazo, un cambio en el mercado informático, el cual, según ellos, volverá a ser dominado, en términos económicos, por las empresas fabricantes de hardware.

Hoy en día el caudal de usuarios de GNU/LINUX es enorme, cubriendo un espectro que va desde la NASA pasando por varios gobiernos, hasta un gran número de empresas privadas. En España, un estudio de la empresa Indago, realizado en base a las 1500 empresas de mayor facturación en el 2003, dio como resultado
que el 25% ya utilizaba Software Libre, principalmente LINUX, y el porcentaje va en aumento, las razones invocadas fueron varias, ahorro de costos (69%), independencia del proveedor (47%), mayor flexibilidad y capacidad de personalización (18%), mayor seguridad y ausencia de virus (16%).
El software libre no es gratis, pero es más económico El software libre no necesariamente debe ser gratuito, si bien por sus características puede llegar a ser gratuito, también puede tener un costo, producto del servicio necesario para su distribución, instalación y/o mantenimiento.
Pero, aunque el costo fuera el mismo que el del software propietario, existe una diferencia muy importante y es que el dinero pagado por mantenimiento del sistema, instalación y/o actualización del mismo, es destinado generalmente a mano de obra local, el dinero queda en el país.


El software libre tiene una interfase amigable

Uno de los problemas de LINUX, era la interfase, pensada para ser utilizada por usuarios avanzados de un ordenador, se basaba principalmente en la introducción de comandos, pero hoy en día con el desarrollo de interfaces gráficas como KDE o GENOME ese tema esta solucionado, estas interfaces gráficas son muy intuitivas y fácilmente utilizables. Por otra parte, para los que no quieren asumir la complicación de bajar una versión gratuita a través de Internet, ya existen paquetes de LINUX, presentados en CD-ROM o DVD, con manuales en español, y todos los programas necesarios para trabajar en un entorno doméstico o de oficina. Estos paquetes o distribuciones son fácilmente instalables por cualquiera que sepa operar un PC y se comercializan a bajo precio.
En el numero de febrero de este año, PC World, una de las revistas más importantes entre los usuarios de PC, recomendaba la instalación SUSE LINUX 9.0 con las siguientes palabras “SUSE, como distribución Linux
y como empresa con servicios de soporte y mantenimiento para las empresas que lo necesiten es, sin duda alguna, el más claro ejemplo de que el mundo de la informática no se acaba en Microsoft”.
Por otra parte existen otras instalaciones como Red Hat o Debian, esta última la más apegada a los principios del movimiento GNU.


Y a partir de ahora…

Sin duda que el software libre se ha ganado un espacio y ese espacio se ira ampliando paulatinamente, en algunas áreas deberá convivir aún durante mucho tiempo con el software propietario, pero hay ámbitos en que, por mucho motivos, ya es anacrónico seguir utilizando software propietario. Con relación concretamente al Estado, tal vez deberíamos preguntarnos ¿No sería una obligación del Estado uruguayo utilizar software libre en lugar de software propietario, dada las características y ventajas del primero?.


——————————————-

Fernando da Rosa es:

Prof. Adj. A cargo de la cátedra de Lenguaje Audiovisual. Ciencias de la Comunicación. Universidad de la República.

Profesor a cargo de la asignatura Programación Internet I de la carrera Diseñador de Sitios Web. Facultad de Ingeniería. Universidad ORT.

No hay comentarios:

Publicar un comentario