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]  

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 habituales sobre GNU/Linux y ¿Por qué GNU/Linux?

Muchos usuarios de computadoras 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 es ampliamente utilizada hoy en día se llama habitualmente “Linux”, y mucho de sus usuarios no se dan cuenta que básicamente es el sistema GNU, desarrollado por el proyecto GNU.

Efectivamente hay un Linux, y esta gente lo está utilizando, pero es sólo una parte del sistema que utilizan. Linux es el núcleo: el programa en el sistema que asigna los recursos de la máquina a los otros programas que ejecuta. El núcleo es una parte esencial de un sistema operativo, pero inútil por sí mismo, sólo puede funcionar en el contexto de un sistema operativo completo. Se usa normalmente en combinación con el sistema operativo GNU: el sistema completo es básicamente GNU con Linux, o GNU/Linux. Todas las distribuciones denominadas “Linux” son realmente 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 tipo Unix ya estaba disponible.

Lo que encontraron no fue una casualidad: era el sistema GNU parcialmente incompleto. El software libre disponible se agregó para completar un sistema en el cual el Proyecto GNU, para hacerlo, había estado trabajando desde 1984. En El Manifiesto 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. En el momento en el cual surgió Linux, el sistema 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 tipo Unix (Linux), Donald Knuth se propuso escribir un editor de texto (TeX) , Bob Scheifler se propuso desarrollar un sistema de ventanas (el sistema X de ventanas). Es natural valorar la contribución de esta clase de proyectos por 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 código fuente, y esto incluía a algunos de los componentes esenciales críticos sin los cuales no habría sistema. Linux en sí mismo representaba alrededor del 3%. (Las proporciones en el 2008 son similares: en el repositorio “principal”de gNewSense, Linux aporta 1,5% y los paquetes GNU, 15%.) Así que si usted fuera a escoger un nombre para el sistema, en función de quién escribió los programas, la opción única 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 desarrollamos uno. El proyecto GNU se propuso desarrollar un sistema operativo libre completo tipo Unix: GNU.

Mucha gente ha hecho importantes contribuciones al software libre en el 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 tener un sistema sin ellos. Algunos de nuestros componentes del sistema, las herramientas de programación, se volvieron populares por sí mismas entre los programadores, pero 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 falta un largo camino para que esté listo para ser usado por el público en general.

Afortunadamente, debido a Linux, no tuvimos que esperar a Hurd. Cuando Torvalds liberó Linux, se llenó el último hueco importante en el sistema GNU. La gente pudo combinar Linux con el sistema GNU para hacer una sistema libre completo: una versión del sistema GNU que también contenía Linux; es decir, el sistema GNU/Linux.

Lograr que ambos trabajasen correctamente no fue una tarea trivial. Algunos componentes de GNU (3) necesitaron cambios sustanciales para trabajar con Linux. Integrar un sistema completo como una distribución que funcionara sólo con “sacarla de la caja” también fue un extenso trabajo. Fue necesario abordar la cuestión de cómo instalar y arrancar el sistema, un problema que no habíamos atacado, porque no se había llegado todavía a ese punto. Por lo tanto, las personas que desarrollaron diversas distribuciones del sistema hicieron un trabajo enorme y esencial. Pero era un trabajo que, por su propia naturaleza, seguro que alguien lo hubiese 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 integrados y, los sistemas GNU/Linux más recientes, utiliza 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 de un sistema GNU/Linux (comunmente 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 dos de estas distribuciones, Ututo y 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 el sistema se inicia. Se incluyen como 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 el nombre “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. Cuando esté hablando acerca del sistema, por favor llámelo “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 una buena elección. Si menciona a Linux, el núcleo, y desea agregar un enlace para más información, http://foldoc.org/linuxes una dirección adecuada.

Apéndice: Además de GNU, otro proyecto ha producido de forma independiente un sistema operativo libre tipo Unix. Este sistema es conocido como BSD, y fue desarrollado en la Universidad de California Berkeley. No era libre en los años 80, pero se volvió libre a principios de los 90. Si un sistema operativo es libre hoy en día (4), casi seguro que sea una variante del sistema GNU, o de algún tipo de sistema BSD.

La gente pregunta a veces 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 su software de código 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, y 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, ambos son ahora parte del paquete Binutils de GNU , del tar de GNU y más.
  2. Por ejemplo, The 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, y GNU Chess.
  3. Por ejemplo, la biblioteca C de GNU.
  4. Desde que fue escrito, se desarrolló como un sistema casi-todo gratis-tipo-Windows, 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 quiso hacer un sistema libre, además de sustituir las partes que faltan del núcleo, también habría que haberlo puesto dentro de GNU o BSD.
  5. Por otra parte, en los años transcurridos desde que este artículo fue escrito, la biblioteca C de GNU ha sido portada a varias versiones del núcleo de BSD, lo que hacía fácil de combinarlo con el sistema GNU. Al igual que con GNU/Linux, estos sistemas son en realidad variantes de GNU, por lo que son llamados, por ejemplo, GNU/kFreeBSD y GNU/kNetBSD en función del núcleo del sistema. Los usuarios comunes de computadoras de escritorio 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