La opinión abunda en la boca de los tontos.

Juan Carlos Bodoque

Software Libre (Parte I)

Publicado por Baku el Martes, 8 junio, 2010

Existen cientos de fuentes para introducir a la gente en el Software Libre, sin embargo, aún si estoy reinventando la rueda, considero necesario aportar un granito de arena y explicar a la gente de que se trata todo esto del Software Libre y el Código Abierto.

Para nadie es secreto que la informática se convirtió en uno de los mercados mas grandes para la economía, todo ello gracias al progreso del “software”; fueron personajes como Bill Gates, quienes (en una perspectiva visionaria) se dieron cuenta que el gran negocio no estaba en el hardware, si no en el software; sin embargo, sea cual sea la creencia de empresas como Microsoft, los tiempos cambian y todo debe sujetarse a una evolución.

Vivimos un mundo globalizado, donde se habla de pluralidad social, donde la información se ha convertido en el eje central de las comunicaciones e inclusive las relaciones comerciales (gracias al imparable avance de la Internet). La informática realmente hace honor a su descripción: información automatizada.

Vivimos una nueva era, una era donde la liberación (económica, política e inclusive digital) pide afianzar fronteras mas lejanas, basada en la construcción democrática, comunitaria, pero desgraciadamente, en un sistema donde los grandes poseedores del capital se creen los dueños de la información (siempre lanzando dictámenes a su aire), la liberación digital se ha puesto en riesgo. Estos hombres impusieron estándares absurdos sobre el uso no solo del software, si no de cualquier obra intelectual (la música por ejemplo), librando una constante guerra en contra de la libertad: la libertad intelectual, la libertad de la información y la liberación digital.

Liberación

¡Por la liberación digital!

Recopilar información es el primer paso a la sabiduría, pero compatirla, es el primer paso a la comunidad“. Sigan leyendo…

Organismos como la SGAE (en España), las disqueras hipócritas y Microsoft están todos cortados de la misma tijera, pero enfoquémonos en el uso de software.

Hablamos de un tema, si bien político y hasta moral, fundamentalmente informático; en efecto, para comprender el enfoque básico, hace falta entender la base del software. Aquí va una explicación de primaria:

Las computadoras son incapaces de entender el lenguaje humano, nosotros tampoco podemos entender el “lenguaje máquina”; debido a esta disyuntiva, se tuvieron que crear los “lenguajes de programación”, que es un lenguaje intermediario entre el humano y la máquina; son lenguajes basados en comandos, matemáticas y estructuras relativamente fáciles de entender (¡exceptuando Perl!), los cuales permiten controlar el flujo de datos de una computadora. Comprendemos entonces que, por lógica, un software es una especie de “pila” de órdenes y comandos creados a través de algún lenguaje de programación.

Cuando se “programa” (en un lenguaje de programación), uno escribe código, y al código de cada software se le llama código fuente; ese código es posteriormente traducido a lenguaje máquina mediante un proceso llamado “compilación”, que traduce cada comando del lenguaje de programación a comandos entendibles para la máquina.

Todo software (sin excepción) tiene un código fuente; cuando ese código fuente no está al alcance de la gente (es decir, que solo tienen acceso al software en estado compilado) se dice que el código “esta cerrado”.

Software Privativo y Código Cerrado

Hace bastantes años (cuando la informática apenas comenzaba a enfocarse en las personas), el software y su respectivo código fuente era manejado de una manera comunitaria: la gente escribía sus programas y era muy casual que uno le pasara el código fuente a un amigo para que lo revisara; el “código cerrado” era algo inusual.

Bill Gates

Bill Gates

Sin embargo, para personajes como Bill Gates (fundador de Microsoft), dejar que la gente obtuviera el código fuente de su software era como regalar su trabajo, ya que las personas podrían modificar el programa y compilarlo para distribuirlo a su aire e inclusive renombrarlo (robándose el código) afanándose la autoría de dicho software.

Fue por esa visión (oportunista) que empezó a crearse el concepto de “software propietario” o “privativo”, el cual establecía que el código fuente debía permanecer oculto al público (resguardado celosamente en las manos de su autor); la gente solo debía tener acceso al programa en estado compilado, incapaz de ver detalles técnicos detrás del programa, siendo el autor o la empresa la única capaz de brindar soporte sobre el software.

Toda esta ideología luego empezó a legalizarse, imponiendo licencias que restringieron el uso del software, acompañado además de nuevos métodos y estrategias para comercializarlo. El movimiento del software privativo (basado en el código cerrado) llegó a tal grado, que la política sobre el software terminó siendo: cuando tu compras un software, tu no estás comprando el software, estás comprando una licencia que te permitirá usarlo únicamente a ti.

En lo personal, veo esto como un total retroceso en la linea evolutiva de la informática, el cual vino acompañado de la legalización y adopción de todas esas licencias restrictivas; fue así como la gente ya no pudo compartir el software entre si, efecto que prevalece hasta nuestros días: si tu compras un software (privativo), y haces una copia de el para dárselo a tu amigo, a tu maestro, a tu compañero, en pos de ayudarle, automáticamente te conviertes en un pirata, teniendo verdaderas repercusiones legales.

¿Qué se puede pensar de esto? Este hecho hizo que la cultura informática promoviera el individualismo, dando un gran retroceso respecto a la cultura informática. Para colmar todo el plato, las grandes empresas informáticas (como Microsoft) impusieron un monopolio acérrimo sobre las computadoras, de modo que la mayor parte de las computadoras comercializadas vienen con software privativo obligatoriamente.

Pero alguien se dio cuenta

A finales de los setentas e inicios de los ochentas, un programador (profesionista que escribe código) del MIT llamado Richard Stallman empezó a fastidiarse seriamente de lo que pasaba con el software: le obligaban a firmar contratos de no-divulgación de código, tenía que pagar montones de licencias por software requerido en su trabajo, el soporte técnico era pobre, y aún siendo el un programador, estaba totalmente incapacitado de poder hacerle mejoras necesarias o sustanciales al código del software: todo porque estaba cerrado.

Richard Stallman

Richard Stallman

Para Stallman el código es como una receta de cocina: cuando usas una receta, cocinas algo (compilas) que se convierte en comida (el software); las recetas son compartidas entre vecinos, amigos, familiares y demás, de modo que no necesitas pagar algún tributo (licencia) para utilizar una receta, además, tu puedes mejorar esa receta (modificar el código) o añadirle algo de tu gusto (mejorar el software para ti), puedes hacerlo sin ninguna repercusión, y no solo eso, puedes compartir esas mejoras con tus amigos, familiares o vecinos (divulgar el nuevo código), y seguramente ellos también compartirán sus mejoras contigo. El enfoque de una receta de cocina, era muy similar al de un programa y su código fuente.

Para Stallman, compartir el código era un acto productivo, alentador y progresista, pero todo ese sueño se rompió con el crecimiento de las grandes empresas (que vieron en el software privativo el negocio del milenio), al destruir el ecosistema comunal con el que se manejaba el software. Como si de un cuento absurdo se tratara, de pronto las recetas de cocina desaparecieron, y pagabas únicamente por la comida, sin saber qué contenía o cómo había sido cocinada, podrían darte algún alucinójeno y no habría forma de saberlo. ¡Las amas de casa han desaparecido, ahora solo existen los restaurantes!

Stallman es un destacado hacker, pero también es un filósofo: no tardó en darse cuenta que las nuevas políticas de “software privativo” iban a destruir el progreso de la informática, a raíz de esta percepción decidió entablar una ideología sobre la distribución del software y su código fuente, a la cual llamó Software Libre.

Software Libre y el proyecto GNU

Para Stallman, la política del software tenía que seguir siendo comunitaria (como las recetas de cocina), era fundamental para el progreso de la informática: el progreso del software privativo iba a dejar esclavos a los usuarios, siempre dependientes de los dictámenes de personajes como Bill Gates.

Fue de ese modo que Stallman desarrolló el concepto de “Software Libre”: un modelo de licencia y distribución de software basado en las siguientes libertades:

Libertad 0: la libertad de usar el programa, con cualquier propósito.

Libertad 1: la libertad de estudiar cómo funciona el programa y modificarlo, adaptándolo a tus necesidades.

Libertad 2: la libertad de distribuir copias del programa, con lo cual puedes ayudar a tu prójimo.

Libertad 3: la libertad de mejorar el programa y hacer públicas esas mejoras a los demás, de modo que toda la comunidad se beneficie.

Solo quedaba un “pequeño” problema: ni Stallman ni sus colegas eran hombres de política, así que cambiar las leyes que regían al país era una tarea imposible, pero sí había algo que Stallman (siendo un reconocido hacker) podía hacer: desarrollar software alternativo basado en esas libertades, así la gente tendría -por fin- una alternativa libre y venerable para elegir (entre las privaciones y la libertad).

De inmediato, Stallman se dispuso a crear un Sistema Operativo; por aquel entonces, había una plataforma muy popular (que perdura hasta nuestros días) llamada UNIX, creada hace mas de tres décadas por tres ingenieros de la AT&T (Ken Thompson, Dennis Ritcher y Douglas Mcllroy); la característica a destacar de UNIX es POSIX, un estándar para los sistemas operativos, que permitía correr programas (software) escrito para UNIX en cualquier sistema operativo que siguiera este estándar (recordemos que un programa diseñado para un sistema operativo en particular -como Windows- no puede correr en otros). Fue gracias a ese estándar, que muchos pudieron crear sistemas operativos totalmente independientes de UNIX (tanto en código como en estructura) y ser compatibles a la ves (ya que UNIX tenía un gran repertorio de software a su disposición).

Para Stallman el estándar POSIX significaba una cosa: podía empezar a construir la casa por el techo (primero los programas, y luego el sistema operativo). Stallman y su gente comenzaron a desarrollar un montón de programas alternativos a homólogos propietarios, los cuales eran creados para UNIX; el plan original era que, una vez teniendo todos los programas, se crearía el núcleo (o kernel) que es propiamente el sistema operativo, el cual estaría basado en POSIX.

Aquí hago una aclaración: un núcleo/kernel es propiamente un sistema operativo, solo que en un estado mas “puro” (carente de interfaz gráfica, sistema de archivos, y otras cosas).

Mascota GNUUna vez se hubieran terminado los programas y el kernel, estos vendrían integrados en conjunto como una plataforma sólida, robusta, alternativa y libre para que la gente pudiera utilizarlo: el sistema operativo GNU. ¿Qué significa GNU? El término GNU es un acrónimo recursivo de “GNU No es UNIX”, haciendo claro incapié en que su pretención no era crear un clón de UNIX, si no un sistema operativo completo y funcional alternativo a Windows y Mac; el término además debía pronunciarse como “Niu” (o directamente GNU para los hispanos), ya que la mascota se trataba propiamente de un Ñu.

Hurd: el sueño imposible

El avance del proyecto GNU fue exitoso: en poco tiempo la comunidad logró cubrir casi todos los programas necesarios para vivir sin usar software privativo, sin embargo, aún faltaba la pieza central del rompecabezas: el núcleo o kernel. Sin un núcleo (el sistema operativo) que se encargara de gestionar todos los programas, la pretención de libertad estaría cortada desde la raíz.

El proyecto GNU estuvo desarrollando durante mucho tiempo su propio núcleo/kernel, se llamaba “Hurd”.

kenerls

Tipos de Kernel

En la informática, existen dos tipos de kernel: el monolítico y el microkernel. Un kernel monolítico envuelve todos los programas y procesos como si se tratara de una especie de burbuja; un microkernel por su parte, trabaja como un programa mas encargado de entablar comunicación entre todos los programas en la computadora. Se creía que los microkernels algún día dominarían el mundo, pero curiosamente eso no sucedió. Programar un microkernel resultaba ser una tarea increíblemente compleja, fue ese el motivo por el cual Hurd (que adoptó el diseño de microkernel) se retrasó un “par de años” (de los ochentas hasta… ¿nuestros días?).

Y nació el pingüino

Mientras la comunidad libre buscaba la manera de resolver el problema del kernel, algo se estaba cocinando en la oscuridad. En el 91 un estudiante finlandés, cansado de no lograr hacer funcionar el sistema operativo Minix en su máquina (un sistema creado por su profesor: Andrew Tanenbaum), decidió crear su propio sistema operativo, basado en un estándar POSIX.

Linus Torvalds

Linus Torvalds

Linus Torvalds era su nombre, y resultó ser todo un genio de la programación; durante algunos meses se encerró en su habitación para trabajar en un kernel/núcleo monolítico; cuando por fin tuvo algo que mostrar, lanzó un mítico mensaje en un sitio de noticias, que me imagino, nunca pensó el impacto que tendría para el futuro:

Hola a todos allá afuera usando minix -

Estoy haciendo un sistema operativo libre (es solo un hobby, no será grande ni profesional como GNU) pero funciona en 386(486) AT clones, lo he estado cocinando desde abril y está quedando listo. Quisiera alguna retroalimentación de las cosas que a ustedes les gustan y no les gustan de MINIX, ya que mi sistema operativo se parece (la misma disposición física (debido a razones prácticas) entre otras cosas).

PS. Sí, está libre de cualquier código de minix y tiene un FS de multi hilos, NO es portable (usa el switching de tareas de 386) y probablemente nunca soportará algo mas que un disco duro de AT, porque es lo único que tengo.

Inesperadamente, este mensaje despertó furor entre los chicos de GNU, quienes enseguida empezaron a dar soporte al proyecto, convirtiéndolo en un par de meses a en plataforma sólida.

Linus había pensado en llamar a su sistema “Freax” (Free + Freak + UNIX), pero con semejante nombre el sistema no pegó ni una en popularidad, así que mientras algo mas “mercadotécnico” se les ocurría, el sistema fue subido a la red con el título de “Linux” (Linus + UNIX), lo que irónicamente -aún con lo narcisista del nombre- a la gente le gustó, y así se quedó.

TuxLinux fue ganando una popularidad inmensa, caracterizado por su mascota “Tux” (un pingüino muy simpático), el sistema no tardó en hacerse un hueco dentro de la esfera de GNU. Dadas las colaboraciones de la comunidad, Linux enseguida se convirtió en un kernel sólido: la pieza faltante para concretar el sistema operativo GNU; juntos se convirtieron en “GNU/Linux”, la combinación asesina que vendría para sembrar terror al mercado privativo.

Conclusiones de la Primera Parte

Hasta este punto de la historia, el movimiento del Software Libre ya había sentado sus bases (sobre el proyecto GNU).

Teniendo en claro el potencial del movimiento, se creó la Fundación de Software Libre (FSF por sus siglas en inglés), que hacía inicios de los 90′s por fin habría consolidado una plataforma alternativa, robusta y sólida (la invencible GNU/Linux), lista para iniciar su larga batalla por derrocar al imperio.

El siguiente paso será analizar, cómo el Software Libre (concretamente el término “Linux”) se popularizó y alcanzó su éxito empresarial, con su respectiva guía de iniciación en el uso de Software Libre.

    6 Comentarios

  1. Pepero-chan dice:

    Algún día lo leeré todo…
    de todos modos, ya me has explicado todo esto
    como mil veces o_o
    espero que a los demás no les de weba leer como a mi XDUu
    de todos modos, es muy interesante n.n
    jaja XD

  2. Neoxploradian dice:

    jeje, no es por ser malo, pero me evitare la fatiga de leer eso, al cabo haremos un video para la clase de metodologia de este tema, jeje, y esta el triptico

  3. Vin dice:

    Me ha gustado especialmente por el tono muy didáctico que has empleado. No es aburrido y además es fácil de comprender.

    Tengo la impresión de que esto es parte del reciclaje?

  4. Firenz dice:

    Interesante, me ha encantado el tono didáctico y he aprendido unos cuantos detalles que desconocía (soy muy perezosa con eso de aprender la historia, incluso cuando estoy en la carrera de informática u.u)

    Espero más datos :D

    Por cierto, me he cambiado de blog por si te interesaría afiliar.

    Ya me cuentas.

    Byeee~~

  5. Dejar un Comentario

Gestionado con WordPress. Diseño por Darío Benitez (Baku).
Licencia Copyleft (Creative Commons BY-NC-ND). 2009-2011 henBaku.