Esta es una traduccin de la pgina original en ingls.

Linux y el sistema GNU

por Richard Stallman

Muchos usuarios de ordenadores ejecutan a diario, sin saberlo, una versin modificada del sistema GNU. Debido a un peculiar giro de los acontecimientos, a la versin de GNU ampliamente utilizada hoy en da se la llama a menudo Linux, y muchos de quienes la usan no se dan cuenta de que bsicamente se trata del sistema GNU, desarrollado por el proyecto GNU.

Efectivamente existe un Linux, y estas personas lo usan, pero constituye solo una parte del sistema que utilizan. Linux es el ncleo: el programa del sistema que se encarga de asignar los recursos de la mquina a los dems programas que el usuario ejecuta. El ncleo es una parte esencial de un sistema operativo, pero intil por s mismo, slo puede funcionar en el marco de un sistema operativo completo. Linux se utiliza normalmente en combinacin con el sistema operativo GNU: el sistema completo es bsicamente GNU al que se le ha aadido Linux, es decir, GNU/Linux. Todas las distribuciones denominadas Linux son en realidad distribuciones GNU/Linux.

Muchos usuarios no entienden la diferencia entre el ncleo, que es Linux, y el sistema completo, al que tambin llaman Linux. El uso ambiguo del nombre no ayuda a comprender la cuestin. Estos usuarios suelen pensar que Linus Torvalds, con un poco de ayuda, desarroll el sistema operativo completo en 1991.

Los programadores generalmente saben que Linux es un ncleo, pero como habitualmente han odo llamar Linux al sistema completo, con frecuencia imaginan alguna historia que justifique dar al sistema completo el nombre del ncleo. Por ejemplo, muchos creen que una vez que Linus Torvalds termin de escribir Linux, el ncleo, los usuarios buscaron ms software libre para completarlo, y descubrieron que (por ninguna razn en particular) casi todo lo necesario para hacer un sistema operativo similar a Unix ya estaba disponible.

Lo que descubrieron no era una casualidad: se trataba del sistema GNU, no del todo completo. El software libre disponible dio como resultado un sistema completo porque el Proyecto GNU haba 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 tambin 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 mayora de los proyectos de software libre es desarrollar un programa particular para cubrir una necesidad particular. Por ejemplo, Linus Torvalds 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 X Window System). Es natural medir la contribucin de este tipo de proyectos en funcin de los programas especficos que aportan.

Si tratramos de medir la contribucin del Proyecto GNU de esta manera, a qu conclusin llegaramos? Un vendedor de CD-ROM constat que en su distribucin Linux el software de GNU constitua el mayor contingente, con alrededor del 28% del total del cdigo fuente, y esto inclua algunos de los principales componentes esenciales, sin los cuales no habra sistema. Linux representaba alrededor del 3%. (En 2008, las proporciones son similares: en el repositorio principal de gNewSense, Linux representa el 1,5% y los paquetes de GNU el 15%). As que si hubiera que escoger un solo nombre entre Linux y GNU para el sistema, en funcin de quin escribi los programas, la opcin ms adecuada sera GNU.

Pero esa manera de examinar el asunto deja de lado una cuestin fundamental. El Proyecto GNU no era, ni es, un proyecto para desarrollar paquetes de software especficos. 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 trabajo, pero la razn por la que es un sistema integrado, y no slo una coleccin de programas tiles, es que el proyecto GNU se propuso que as fuera. Elaboramos una lista de los programas necesarios para hacer un sistema libre completo y sistemticamente recopilamos, escribimos o buscamos gente para escribir todo lo que haba en esa lista. Escribimos ciertos componentes esenciales pero aburridos [1], ya que no se puede obtener un sistema sin ellos. Algunos de nuestros componentes para el sistema, las herramientas de programacin, se volvieron populares por s mismas entre los programadores, pero adems escribimos muchos componentes que no son herramientas  [2]. Incluso desarrollamos un juego de ajedrez, GNU Chess, porque un sistema completo tambin necesita juegos.

A principios de los aos noventa ya tenamos listo todo el sistema salvo el ncleo. Habamos comenzado a trabajar tambin en un ncleo, el Hurd de GNU, que se ejecutaba sobre Mach. Desarrollar ese ncleo ha sido mucho ms difcil de lo esperado. El Hurd de GNU empez a funcionar de forma fiable en 2001, pero an falta mucho para que pueda ser utilizado por el pblico en general.

Afortunadamente no tuvimos que esperar hasta que Hurd estuviera listo, porque Linux ya estaba disponible. 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 versin del sistema GNU que tambin contena 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 integracin de un sistema completo para obtener una distribucin lista para usar requiri tambin de mucho trabajo. Fue necesario abordar la cuestin de cmo instalar y arrancar el sistema, un asunto del que no nos habamos ocupado porque no se haba llegado todava a ese punto. As, las personas que desarrollaron las diversas distribuciones del sistema realizaron una labor enorme y esencial, pero era una labor que, de todas maneras, seguramente alguien habra 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 de la biblioteca C de GNU relacionadas con Linux, por lo que ahora estn bien integradas y los sistemas GNU/Linux ms recientes utilizan la versin actual de la biblioteca sin modificaciones. La FSF tambin financi las etapas iniciales del desarrollo de Debian GNU/Linux.

Hoy en da existen muchas variantes diferentes del sistema GNU/Linux, comnmente llamadas distribuciones. La mayora de ellas incluyen programas que no son libres, ya que sus desarrolladores siguen la filosofa cdigo abierto asociada con Linux en lugar de la filosofa del software libre de GNU. Pero tambin existen distribuciones GNU/Linux completamente libres. La FSF proporciona asistencia informtica para algunas de ellas.

Hacer una distribucin GNU/Linux libre no consiste solamente en eliminar los programas que no sean libres. Hoy en da, las versiones habituales de Linux contienen tambin programas que no son libres. Estos programas estn pensados para ser cargados en los dispositivos de entrada/salida cuando se inicia el sistema, y estn incluidos en el cdigo fuente de Linux en forma de una larga serie de nmeros. Por lo tanto, el mantenimiento de las distribuciones GNU/Linux ahora supone mantener adems una versin libre de Linux.

Ya sea que usted use GNU/Linux o no, por favor no siembre confusin empleando la denominacin Linux de manera ambigua. Linux es el ncleo, uno de los principales componentes esenciales del sistema. El sistema como un todo es bsicamente el sistema GNU al que se le ha aadido Linux. Cuando se refiera a esta combinacin, por favor emplee la expresin GNU/Linux.

Si desea proporcionar enlaces como referencia para la cuestin del nombre GNU/Linux, esta misma pgina y https://www.gnu.org/gnu/thegnuproject.html son buenas opciones. Si menciona Linux, el ncleo, y desea agregar un enlace para ms informacin, https://foldoc.org/linux es una pgina adecuada.

Post scrptum

Adems de GNU, existe otro proyecto que ha producido de forma independiente un sistema operativo libre de tipo Unix. Ese sistema se conoce como BSD y se desarroll en la Universidad de California, en Berkeley. En los aos ochenta no era libre, pero se liber a principios de los noventa. Los sistemas operativos libres que existen hoy en da [4], casi con seguridad son una variante del sistema GNU o algn tipo de sistema BSD.

La gente a veces pregunta si tambin BSD es una versin de GNU, como GNU/Linux. Los desarrolladores de BSD se inspiraron en el Proyecto GNU para hacer que su cdigo fuera software libre, y hubo peticiones explcitas de activistas de GNU que ayudaron a persuadirlos, pero su cdigo tena poco en comn con GNU. Los sistemas BSD actuales usan algunos programas de 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 ncleo y lo aadieron al sistema GNU, por lo que un nombre como GNU/BSD no se ajustara en esta situacin.  [5]

Notas

  1. Estos componentes aburridos 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 ms.
  2. Por ejemplo, la Bourne Again SHell (BASH), el intrprete PostScript Ghostscript, y la biblioteca C de GNU no son herramientas de programacin. Tampoco lo son otros tiles paquetes como GNUCash, GNOME o GNU Chess.
  3. Por ejemplo, la biblioteca C de GNU.
  4. Despus de haber escrito eso, se desarroll un sistema de tipo Windows casi libre, pero tcnicamente no es en absoluto como GNU o Unix, por lo que en realidad no afecta a esta cuestin. La mayor parte del ncleo de Solaris se ha liberado, pero si se quisiera obtener un sistema libre a partir de l, adems de sustituir las partes que faltan del ncleo, tambin habra que integrarlo a GNU o BSD.
  5. Por otra parte, en los aos transcurridos desde que se escribi este artculo, la biblioteca C de GNU ha sido portada a varias versiones del ncleo de BSD, lo que ha facilitado la combinacin del sistema GNU con este ncleo. Al igual que GNU/Linux, estos sistemas son en realidad variantes de GNU, por lo que se llaman, por ejemplo, GNU/kFreeBSD y GNU/kNetBSD en funcin del ncleo del sistema. El usuario corriente apenas puede distinguir entre GNU/Linux y GNU/*BSD.