English [en]   العربية [ar]   български [bg]   català [ca]   Česky [cs]   Deutsch [de]   ελληνικά [el]   español [es]   فارسی [fa]   français [fr]   עברית [he]   hrvatski [hr]   Bahasa Indonesia [id]   italiano [it]   日本語 [ja]   한국어 [ko]   മലയാളം [ml]   Nederlands [nl]   polski [pl]   português do Brasil [pt-br]   română [ro]   русский [ru]   slovenščina [sl]   Shqip [sq]   српски [sr]   தமிழ் [ta]   Tagalog [tl]   українська [uk]   简体中文 [zh-cn]   繁體中文 [zh-tw]  

En su lucha por la libertad de los usuarios, la Free Software Foundation ha sido guía y referente del movimiento del software libre a lo largo de los últimos treinta años.

Contribuya con una donación a mantener viva la llama, ayúdenos a lograr el objetivo de alcanzar los 450.000 dólares hasta el 31 de enero.

450 k
312 k hasta ahora

Esta es una traducción de la página original en inglés.

Linux y el sistema GNU

por Richard Stallman

Para más información también puede ver las preguntas frequentes sobre GNU/Linux y el artículo ¿Por qué GNU/Linux?

Muchos usuarios de ordenadores ejecutan una versión modificada del sistema GNU cada día, sin saberlo. Debido a un particular giro en los acontecimientos, la versión de GNU que se utiliza ampliamente hoy en día es generalmente llamada «Linux», y muchos de sus usuarios no se dan cuenta de que básicamente se trata del sistema GNU, desarrollado por el proyecto GNU.

Efectivamente hay un Linux, y estas personas lo usan, pero es sólo una parte del sistema que utilizan. Linux es el núcleo: un programa que es parte del sistema y cuya función es asignar los recursos de la máquina a los otros programas que el usuario ejecuta. El núcleo es una parte esencial en un sistema operativo, pero inútil por sí mismo, sólo puede funcionar en el contexto de un sistema operativo completo. Linux se usa normalmente en combinación con el sistema operativo GNU: el sistema completo es básicamente GNU con la adición de Linux, o GNU/Linux. Todas las distribuciones denominadas «Linux» son en realidad distribuciones de GNU/Linux.

Muchos usuarios no entienden la diferencia entre el núcleo, que es Linux, y todo el sistema, al que también llaman «Linux». El uso ambiguo del nombre no ayuda a la gente a entender. Estos usuarios suelen pensar que Linus Torvalds desarrolló todo el sistema operativo en 1991, con un poco de ayuda.

Los programadores generalmente saben que Linux es un núcleo. Pero como han oído llamar habitualmente a todo el sistema «Linux», con frecuencia se imaginan una historia que justifique que todo el sistema se completó después del núcleo. Por ejemplo, muchos creen que una vez que Linus Torvalds terminó de escribir Linux, el núcleo, sus usuarios buscaron más software libre para adosarle, y encontraron (sin ninguna razón en particular) que casi todo lo necesario para hacer un sistema operativo similar a Unix ya estaba disponible.

Lo que encontraron no fue una casualidad: era el sistema GNU parcialmente incompleto. El software libre disponible dió como resultado un sistema completo porque el Proyecto GNU había estado trabajando con ese objetivo desde 1984. En El Manifiesto de GNU establecimos el objetivo de desarrollar un sistema libre de tipo Unix, llamado GNU. El Anuncio Inicial del proyecto GNU también bosqueja algunos de los planes originales para el sistema GNU. Cuando se inició a desarrollar Linux, GNU ya estaba casi terminado.

El objetivo de la mayoría de los proyectos de software libre es desarrollar un programa particular para cubrir una necesidad particular. Por ejemplo, Linus Torvald se propuso escribir un kernel de tipo Unix (Linux), Donald Knuth se propuso escribir un editor de textos (TeX), Bob Scheifler se propuso desarrollar un sistema de ventanas (el sistema X de ventanas). Es natural medir la contribución de este tipo de proyectos en base a los programas específicos que aportan.

Si tratamos de medir la contribución del Proyecto GNU de esta manera, ¿qué podemos concluir? Un vendedor de CD-ROM encontró que en su «distribución Linux» el software GNU era el componente principal, con alrededor del 28% del total de código fuente, y esto incluía algunos de los componentes esenciales críticos sin los cuales no habría sistema. Linux en sí mismo representaba alrededor del 3%. (En 2008, las proporciones son similares: en el repositorio «principal» de gNewSense, Linux representa el 1,5% y los paquetes GNU el 15%). Así que si usted fuera a escoger un nombre para el sistema en función de quién escribió los programas, la única opción más adecuada sería «GNU».

Pero esta no es la manera más profunda de examinar la cuestión. El Proyecto GNU no era, ni es, un proyecto para desarrollar paquetes de software específicos. No era un proyecto para desarrollar un compilador de C, aunque lo hicimos. No era un proyecto para desarrollar un editor de textos, aunque lo hicimos. El proyecto GNU se propuso desarrollar un sistema operativo libre completo de tipo Unix: GNU.

Mucha gente ha hecho importantes contribuciones al software libre del sistema, y todos ellos merecen un reconocimiento por su software. Pero la razón por la que es un sistema integrado, y no sólo una colección de programas útiles, es que el proyecto GNU se propuso hacerlo así. Hicimos una lista de los programas necesarios para hacer un sistema libre completo y sistemáticamente encontramos, escribimos o buscamos gente para escribir todo lo que había en la lista. Escribimos ciertos componentes esenciales pero tediosos (1), ya que no se puede obtener un sistema sin ellos. Algunos de nuestros componentes para el sistema, las herramientas de programación, se volvieron populares por sí mismas entre los programadores, pero además escribimos muchos componentes que no son herramientas (2). Incluso desarrollamos un juego de ajedrez, GNU Chess, porque un sistema completo también necesita juegos.

A principios de los años 90 habíamos preparado todo el sistema salvo el núcleo. Habíamos comenzado a trabajar también en un núcleo, el Hurd de GNU, que se ejecutaba sobre Mach. Desarrollar este kernel ha sido mucho más difícil de lo esperado. El Hurd de GNU empezó a funcionar de forma fiable en 2001, pero aún falta mucho para que pueda ser utilizado por el público en general.

Afortunadamente, debido a Linux, no tuvimos que esperar hasta que Hurd estuviera listo. Cuando Torvalds liberó Linux en 1992, se colmó la última laguna importante en el sistema GNU. Se pudo combinar Linux con el sistema GNU para obtener un sistema libre completo: una versión del sistema GNU que también contenía Linux; es decir, el sistema GNU/Linux.

Lograr que ambos funcionasen juntos correctamente no fue una tarea trivial. Hubo que realizar cambios sustanciales en algunos componentes de GNU (3) para que funcionasen con Linux. La integración de un sistema completo para obtener una distribución lista para usar requirió también de una extensa labor. Fue necesario abordar la cuestión de cómo instalar y hacer arrancar el sistema, una cuestión de la que no nos habíamos ocupado porque no se había llegado todavía a ese punto. Así, las personas que desarrollaron las diversas distribuciones del sistema realizaron una labor enorme y esencial, pero era una labor que, como es natural, seguramente alguien habría hecho tarde o temprano.

El proyecto GNU apoya tanto a los sistemas GNU/Linux como al sistema GNU. La FSF financió la reescritura de las extensiones relacionadas con Linux de la biblioteca de C de GNU, por lo que ahora están bien integradas y, los sistemas GNU/Linux más recientes, utilizan la versión actual de la biblioteca sin modificaciones. La FSF también financió las etapas iniciales del desarrollo de Debian GNU/Linux.

Hoy existen muchas variantes diferentes del sistema GNU/Linux (comúnmente llamadas «distribuciones»). La mayoría de ellas incluyen software que no es libre, sus desarrolladores siguen la filosofía asociada con Linux en lugar de la asociada con GNU. Pero también existen distribuciones GNU/Linux completamente libres. La FSF presta soporte informático a gNewSense.

Hacer una distribución GNU/Linux libre no consiste solamente en eliminar los programas que no sean libres. Hoy en día, también las versiones habituales de Linux contienen programas que no son libres. Estos programas están pensados para ser cargados en los dispositivos de entrada y salida cuando se inicia el sistema. Se incluyen en forma de una larga serie de números en el «código fuente» de Linux. Por lo tanto, el mantenimiento de distribuciones GNU/Linux ahora supone también mantener una versión libre de Linux.

Ya sea que usted use GNU/Linux o no, por favor no confunda al público usando la denominación «Linux» ambiguamente. Linux es el kernel, uno de los componentes críticos esenciales del sistema. El sistema como un todo es básicamente el sistema GNU, con Linux añadido. Cuando se refiera a esta combinación, por favor use la expresión «GNU/Linux».

Si quiere hacer un enlace a «GNU/Linux» para más información, esta página y http://www.gnu.org/gnu/the-gnu-project.html son buenas opciones. Si menciona a Linux, el núcleo, y desea agregar un enlace para más información, http://foldoc.org/linux es una página adecuada.

Post scríptum

Además de GNU, otro proyecto ha producido de forma independiente un sistema operativo libre de tipo Unix. Este sistema se conoce como BSD y fue desarrollado en la Universidad de California en Berkeley. No era libre en los años 80, pero se volvió libre a principios de los 90. Los sistemas operativos libres que existen hoy en día (4), son casi seguramente una variante del sistema GNU o algún tipo de sistema BSD.

La gente a veces pregunta si BSD es también una versión de GNU, como GNU/Linux. Los desarrolladores de BSD se inspiraron en el Proyecto GNU para hacer que su código fuera software libre, y hubo peticiones explícitas de activistas de GNU que ayudaron a persuadirlos, pero su código tenía poco en común con GNU. Los sistemas BSD actuales usan algunos programas GNU, al igual que el sistema GNU y sus variantes usan algunos programas de BSD. Sin embargo, tomados en su conjunto, son dos sistemas diferentes que evolucionaron por separado. Los desarrolladores de BSD no escribieron un núcleo y lo añadieron al sistema GNU, por lo que un nombre como GNU/BSD no encajaría en esta situación. (5)

Notas:

  1. Estos componentes tediosos pero esenciales incluyen el ensamblador de GNU (GAS) y el enlazador (GLD), que ahora son parte del paquete Binutils de GNU , tar de GNU y muchos más.
  2. Por ejemplo, la Bourne Again SHell (BASH), el intérprete PostScript Ghostscript, y la biblioteca C de GNU no son herramientas de programación. Tampoco lo son GNUCash, GNOME, ni GNU Chess.
  3. Por ejemplo, la biblioteca C de GNU.
  4. Después de haber escrito este artículo, se desarrolló un sistema de tipo Windows casi libre, pero técnicamente no es en absoluto como GNU o Unix, por lo que en realidad no afecta a esta cuestión. La mayor parte del núcleo de Solaris se ha hecho libre, pero si se quisiera obtener un sistema libre a partir de allí, además de sustituir las partes que faltan del núcleo, también habría que integrarlo a GNU o BSD.
  5. Por otra parte, en los años transcurridos desde que se escribió este artículo, la biblioteca C de GNU ha sido portada a varias versiones del núcleo de BSD, lo que facilita la combinación del sistema GNU con este núcleo. Al igual que con GNU/Linux, estos sistemas son en realidad variantes de GNU, por lo que se llaman, por ejemplo, GNU/kFreeBSD y GNU/kNetBSD en función del núcleo del sistema. Los usuarios comunes apenas pueden distinguir entre GNU/Linux y GNU/*BSD.

[Logotipo de la FSF]«Nuestra misión es preservar, proteger y promover la libertad de usar, estudiar, copiar, modificar y redistribuir programas de ordenador, así como defender los derechos de los usuarios de software libre.»

La Free Software Foundation es la principal organización que patrocina el Sistema Operativo GNU. Apoye a GNU y la FSF mediante la compra de manuales y otros artículos, uniéndose a la FSF como miembro asociado o haciendo una donación, ya sea directamente a la FSF o mediante Flattr.

volver arriba