# GNU

GNU es un sistema operativo de tipo Unix, así como una gran colección de programas informáticos que componen al sistema, desarrollado por y para el Proyecto GNU y auspiciado por la Free Software Foundation. Está formado en su totalidad por software libre, mayoritariamente bajo términos de copyleft. GNU es el acrónimo recursivo de "GNU's Not Unix" (en español: GNU no es Unix), nombre elegido debido a que GNU sigue un diseño tipo Unix y se mantiene compatible con este, pero se distingue de Unix por ser software libre y por no contener código de Unix.
El ñu es el logo o mascota de este proyecto.
El desarrollo de GNU ha sido liderado desde su inicio en 1983 por Richard Stallman, auxiliado por un número de académicos, programadores voluntarios y formalmente empleados, con el objetivo de crear el primer sistema operativo completamente libre. A fecha de diciembre de 2013 todavía no hay un lanzamiento oficial del kernel GNU Hurd y desde 2012 el proyecto GNU usa como kernel oficial la versión libre de Linux llamada Linux-libre. El proyecto ha sido responsable por la creación de varios programas ampliamente utilizados; como los compiladores GCC, el intérprete de comandos Bash, el editor de texto Emacs e incluso el escritorio GNOME. La Free Software Foundation considera que el objetivo principal del Proyecto GNU ha sido alcanzado con la ayuda de otros programas de software libre que no forman parte oficial de GNU pero siguen la filosofía del proyecto y usan las licencias de GNU, por lo que el desarrollo de un sistema operativo puramente GNU se ha vuelto una tarea secundaria al crecimiento y manutención del sistema existente (GNU/Linux), y secundaria a la garantía de la libertad de sus usuarios y la promoción de tales ideas. Richard Stallman así como muchos otros partidarios del movimiento del software libre considera al sistema operativo GNU como «un medio técnico para un fin social».
El proyecto GNU originalmente pretendía reemplazar el núcleo de Unix con su propio núcleo llamado GNU Hurd, pero las implementaciones comunes de GNU siempre han usado Linux en lugar de Hurd; combinación a la cual se le llama GNU/Linux o simplemente Linux. Linux-libre se ha convertido en un paquete oficial de GNU, a la par de Hurd, con el afán de limpiar las partes privativas en el núcleo Linux genérico e incentivar a las distribuciones de GNU/Linux a que usen dicha versión. Nótese que el Proyecto GNU denomina a GNU como "sistema operativo" en el sentido coloquial del término (similar al de "distribución"), como sucede cuando se habla de sistemas operativos como Windows, Mac OS, Android e incluso Unix. Mientras tanto, en un sentido más técnico algunos programas particulares como Linux y GNU Hurd también son llamados sistemas operativos, pero en calidad de kernels o núcleos.

## Componentes

Artículo principal: Lista de paquetes GNU
Los componentes básicos del sistema incluyen el GNU Compiler Collection (GCC), la biblioteca glibc (GNU C library), y las utilidades del Core GNU (coreutils), además del depurador de GNU (GDB), las utilidades binarias de GNU (binutils) y el GNU Bash shell. Los desarrolladores del GNU han contribuido al proceso de adaptación del software de las aplicaciones y utilidades de GNU para Linux en entornos diferentes para los que fueron desarrolladas, que ahora son ampliamente utilizados por otros sistemas operativos así como las variantes BSD, Solaris y macOS.
Muchos programas GNU han sido traspasados a otros sistemas operativos, incluyendo plataformas de código cerrado como Microsoft Windows y Mac OS. Los programas GNU han mostrado que son más fiables que las contrapartes de código cerrado.
En noviembre de 2015, había un total de 466 paquetes de GNU (incluyendo paquetes obsoletos, sin incluirlos son 383 paquetes) alojados en el sitio oficial de desarrollo de GNU.

## GNU como sistema operativo

Artículo principal: Variantes GNU
En su sentido original, y del mismo modo que en ingeniería de hardware, el sistema operativo es un conjunto de funciones básicas en el control del hardware y gestión de procesos como la gestión de tareas y las llamadas al sistema. En terminología moderna, usada por desarrolladores software, el conjunto de estas funciones es referenciada normalmente como "kernel" o núcleo, mientras que de un 'sistema operativo' se espera una colección más extensa de programas. El proyecto GNU mantiene dos núcleos en sí mismo, permitiendo la creación de sistemas operativos GNU puros, aunque las herramientas GNU también se utilizan en núcleos de tipo No-GNU. Debido a estas dos definiciones diferentes del término 'sistema operativo', hay un debate en relación con el nombre que darle a las distribuciones de los paquetes GNU sin un núcleo de tipo GNU.

### Sistemas operativos con núcleos mantenidos por GNU y FSF
#### GNU Hurd

El núcleo original del proyecto GNU es el "GNU Hurd microkernel", que era el foco central de la Free Software Foundation (FSF).
El 30 de abril de 2015, se lanzó el Debian GNU/Hurd 2015 distro, y ahora GNU ofrece todos los componentes requeridos para montar un sistema operativo que los usuarios puedan instalar y utilizar en un ordenador.
De todos modos, el núcleo Hurd no es aún considerado un producto listo para el mercado, pero si una base para conseguir un desarrollo mayor y uso de aplicaciones no tan críticas como las gestionadas por Hurd.

#### Linux-libre

En 2012, una rama del núcleo de Linux se convirtió oficialmente en parte del proyecto GNU en la forma de Linux-libre, una variante de Linux donde todos sus componentes de código cerrado habían sido eliminados. El proyecto GNU avala las distribuciones de Linux-libre, así como gNewSense, Trisquel y Parabola GNU/Linux-libre.

### Sistemas operativos sin núcleos de tipo GNU

A causa del estado en desarrollo de Hurd, GNU es usualmente acompañado de otros núcleos como Linux o FreeBSD. Si la combinación de librerías GNU con núcleos externos es un sistema operativo de tipo GNU con un núcleo (por ejemplo, GNU con Linux), porque la colección GNU convierte el núcleo en un sistema operativo utilizable como se entiende en el desarrollo de software moderno, o bien el núcleo es un sistema operativo en sí mismo con una capa GNU sobre él (por ejemplo, Linux con GNU) porque el núcleo puede operar en una máquina sin GNU, es aún materia de debate. La FSF mantiene que un sistema operativo construido utilizando el núcleo de Linux y las herramientas GNU debería ser una variante de GNU, y promociona el término GNU/Linux para esos sistemas (llevando a la controversia del nombre GNU/Linux). Este punto de vista no es exclusivo de la FSF. De forma notoria, Debian es una de las mayores y más antiguas distribuciones de Linux, que se refiere a sí misma como Debian GNU/Linux.

## Copyright, licencias GNU y administración

El proyecto GNU recomienda a los contribuyentes asignar el copyright de los paquetes GNU a la Free Software Foundation, a pesar de que la FSF considera aceptable publicar pequeños cambios a un proyecto de dominio público. De cualquier forma, esto no es un requisito; los encargados del mantenimiento pueden mantener el copyright de los paquetes GNU que ellos mismos mantienen, aunque solo el titular de los derechos de autor puede hacer cumplir la licencia utilizada (como, por ejemplo, la licencia GPL de GNU), en este caso en propietario de los derechos de autor se encarga de ello en lugar de la Free Software Foundation.
Para el desarrollo de software necesario, Stallman escribió una licencia denominada Licencia Pública General GNU (GNU General Public License, originalmente denominado Emacs General Public License), con el objetivo de garantizar libertad a los usuarios de compartir y modificar el software libre. Stallman escribió esta licencia después de su experiencia con James Gosling y un programa denominado UniPress, con la controversia en torno al código software utilizado en los programas GNU Emacs. Durante la mayoría de los años 80, cada paquete GNU tenía su propia licencia: la Licencia Pública General Emacs, la Licencia General Pública GCC, etc. En 1989, la FSF publicó una única licencia que podían utilizar en todo su software, la cual podría ser utilizada en proyectos No-GNU: la GNU General Public License o Licencia Pública General GNU (GPL).
Esta licencia es ahora utilizada por la mayoría de software GNU, así como una gran cantidad de programas de software libre que no son partes del proyecto GNU; históricamente, ha sido la licencia más utilizada (aunque recientemente ha sido desafiada por la licencia MIT).
Otorga a todos los destinatarios de un programa el derecho de ejecutarlo, copiarlo, modificarlo y distribuirlo, mientras que les prohíbe imponer restricciones adicionales a las copias que distribuyen. Esta idea a menudo se denomina copyleft.
En 1991, la GNU Lesser General Public License (LGPL), por aquel entonces conocida como Library General Public License o Licencia General Pública de Librería, fue escrita por la Librería C de GNU para permitir su vinculación con software de código cerrado. En 1991 también se lanzó la segunda versión de la licencia GNU GPL. La Licencia de Documentación Libre de GNU (FDL), para documentación, apareció en el año 2000. Tanto GPL como LGPL fueron revisadas y se lanzó su tercera versión en 2007, añadiendo cláusulas para proteger a los usuarios de restricciones software que evitaban que los usuarios modificaran software en sus propios dispositivos.
Además de los paquetes de GNU, las licencias del Proyecto GNU son utilizadas por muchos proyectos no relacionados, como el núcleo de Linux, que a menudo se utiliza con el software GNU. Una minoría del software utilizado por la mayoría de las distribuciones de Linux, como el sistema X Window, tiene licencia de software libre permisivo.