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 escribió 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 basada en Linux del sistema GNU, el sistema GNU/Linux para abreviar.
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.es.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.doc.ic.ac.uk/foldoc/foldoc.cgi?Linux es una dirección adecuada.