domingo, 13 de octubre de 2013

GNU

El sistema operativo GNU es un sistema completo de software libre, compatible hacía el futuro con Unix. El término GNU proviene de «GNU No es Unix». Richard Stallman escribió el anuncio inicial del Proyecto GNU en setiembre de 1983. Una versión extendida, denominada el Manifesto de GNU se publicó en setiembre de 1985. Se ha traducido a diversos idiomas.

El nombre «GNU» se eligió porque satisfacía unos cuantos requisitos. En primer lugar, era un acrónimo recursivo para «GNU No es Unix». En segundo lugar, era una palabra real. Por último, era divertido de decir (o cantar).

La palabra “libre” en “software libre” se refiere a libertad, no a precio [N. del T.: en inglés se usa la misma palabra para libre y gratuito]. Puede o no pagar un precio por obtener software de GNU. De cualquier manera, una vez que obtiene el software, tiene cuatro libertades específicas para usarlo. La libertad de ejecutar el programa como desée, la libertad de copiar el programa y darlo a sus amigos o compañeros de trabajo. La libertad de cambiar el programa como desee, teniendo acceso completo al código fuente. La libertad de distribuir una versión mejorada ayudando así a construir la comunidad (si redistribuye software de GNU, puede cobrar una tarifa por el acto físico de efectuar la copia, o bien puede regalar copias.).

El proyecto para desarrollar el sistema GNU se denomina «Proyecto GNU». El Proyecto GNU se concibió en 1983 como una forma de devolver el espíritu cooperativo que prevalecía en la comunidad computacional en sus primeros días; hacer la cooperación posible al eliminar los obstáculos impuestos por los dueños de software privativo.

En 1971, cuando Richard Stallman comenzó su carrera en el MIT, trabajó en un grupo que usaba software libre exclusivamente. Incluso compañías informáticas frecuentemente distribuían software libre. Los programadores eran libres de cooperar unos con otros, y frecuentemente lo hacían.

En los 80, casi todo el software era privativo, lo cual significa que tenía dueños que prohibían e impedían la cooperación entre usuarios. Esto hizo necesario el Proyecto GNU.

Cada usuario de ordenadores necesita un sistema operativo; si no existe un sistema operativo libre, entonces no puedes ni siquiera comenzar a usar una computadora sin recurrir a un software privativo. Así que el primer elemento en la agenda del software libre es un sistema operativo libre.

Decidimos hacer el sistema operativo compatible con Unix porque el diseño en general ya estaba probado y era portable, y porque la compatibilidad hacía fácil para los usuarios de Unix cambiar de Unix a GNU.

Un sistema operativo incluye un núcleo, compiladores, editores, editores de texto, software de correo, interficies gráficas, bibliotecas, juegos y muchas otras cosas. Por todo esto, escribir un sistema operativo completo es un trabajo bastante grande. La Free Software Foundation se fundó en octubre de 1985 con el objetivo inicial de recaudar fondos para ayudar a programar GNU.

En 1990 ya habíamos encontrado o escrito los componentes principales, excepto uno, el núcleo. Entonces, Linux, un núcleo similar a Unix, fue programado por Linus Torvalds en 1991 y lo liberó como software libre el 1992. La combinación de Linux con el prácticamente completo sistema GNU formó un sistema operativo completo: el sistema GNU/Linux. Se estima que existen decenas de millones de personas que en la actualidad usan sistemas GNU/Linux, habitualmente mediante distribuciones. La versión principal de Linux contiene elementos binarios de firmware que no son libres; por eso partidarios del software libre mantienen una modificación libre de Linux, denominada Linux-libre.

Sin embargo, el proyecto GNU no está limitado a sistemas operativos. Nosotros queremos proporcionar un amplio espectro de software, cualquiera que muchos usuarios quieran tener. Esto incluye software de aplicación. En el directorio de software libre puede ver un catálogo de aplicaciones de software libres.

También queremos proporcionar software para usuarios que no son expertos en ordenadores. Por ese motivo creamos un ambiente de escritorio (llamado GNOME) para ayudar a los principiantes a usar un sistema GNU.

También queremos ofrecer juegos y otras formas de diversión. Algunos juegos libres ya están disponibles.

¿Hasta dónde puede llegar el software libre? No hay límites, excepto cuando leyes como el sistema de patentes prohíben el software libre. El objetivo final es el de proporcionar software libre para hacer todas las tareas que los usuarios de computadoras quieran hacer, y por lo tanto hacer el software privativo obsoleto.

Software Libre

«Software libre» significa que el software respeta la libertad de los usuarios y la comunidad. En términos generales, los usuarios tienen la libertad de copiar, distribuir, estudiar, modificar y mejorar el software. Con estas libertades, los usuarios (tanto individualmente como en forma colectiva) controlan el programa y lo que hace.
Cuando los usuarios no controlan el programa, el programa controla a los usuarios. El programador controla el programa y, a través del programa, controla a los usuarios. Un programa que no es libre, llamado «privativo», es por lo tanto un instrumento de poder injusto.
Por tanto, el «software libre» es una cuestión de libertad, no de precio. Para entender el concepto, piense en «libre» como en «libre expresión», no como en «barra libre».
Un programa es software libre si los usuarios tienen las cuatro libertades esenciales:
  • La libertad de ejecutar el programa para cualquier propósito (libertad 0).
  • La libertad de estudiar cómo funciona el programa, y cambiarlo para que haga lo que usted quiera (libertad 1). El acceso al código fuente es una condición necesaria para ello.
  • La libertad de redistribuir copias para ayudar a su prójimo (libertad 2).
  • La libertad de distribuir copias de sus versiones modificadas a terceros (libertad 3). Esto le permite ofrecer a toda la comunidad la oportunidad de beneficiarse de las modificaciones. El acceso al código fuente es una condición necesaria para ello.
La libertad de ejecutar el programa significa que cualquier tipo de persona u organización es libre de usarlo en cualquier tipo de sistema de computación, para cualquier tipo de trabajo y finalidad, sin que exista obligación alguna de comunicarlo al programador ni a ninguna otra entidad específica. En esta libertad, lo que importa es el propósito de los usuarios, no el de los programadores. Usted como usuario es libre de ejecutar el programa para alcanzar sus propósitos, y si lo distribuye a otra persona, también esa persona será libre de ejecutarlo para lo que necesite; usted no tiene derecho a imponerle sus propios objetivos.
La libertad de redistribuir copias debe incluir las formas binarias o ejecutables del programa, así como el código fuente, tanto para las versiones modificadas como para las no lo estén. (Distribuir programas en forma de ejecutables es necesario para que los sistemas operativos libres se puedan instalar fácilmente). Resulta aceptable si no existe un modo de producir una formato binario o ejecutable para un programa específico, dado que algunos lenguajes no incorporan esa característica, pero debe tener la libertad de redistribuir dichos formatos si encontrara o programara una forma de hacerlo.
Para que la libertad 1 y 3 de realizar cambios y publicar las versiones modificadas tengan sentido, usted debe tener acceso al código fuente del programa. Por consiguiente, el acceso al código fuente es una condición necesaria para el software libre. El «código fuente» ofuscado no es código fuente real, y no cuenta como código fuente.
La libertad 1 incluye la libertad de usar su versión modificada en lugar de la original. Si el programa se entrega con un producto diseñado para ejecutar versiones modificadas de terceros, pero rechaza ejecutar las suyas, una práctica conocida como «tivoización» [«tivoization»] o «arranque seguro» [«lockdown»] (en la terminología perversa de los que la practican); la libertad 1 se convierte más en una ficción teórica que en una libertad práctica. Esto no es suficiente. En otras palabras, estos binarios no son software libre, incluso si se compilaron desde un código fuente que es libre.
Una manera importante de modificar el programa es agregándole subrutinas y módulos libres ya disponibles. Si la licencia del programa especifica que no se pueden añadir módulos que ya existen y que están bajo una licencia apropiada, por ejemplo si requiere que usted sea el titular de los derechos de autor del código que desea añadir, entonces se trata de una licencia demasiado restrictiva como para considerarla libre.