GNU ( / ɡ n uː / )[3][4]es una extensa colección desoftware libre(394 paquetes a junio de 2024[5]), que puede usarse como sistema operativo o puede usarse en partes con otros sistemas operativos.[6][7][8]El uso de las herramientas GNU completadas condujo a la familia de sistemas operativos conocida popularmente comoLinux.[9]La mayor parte de GNU está licenciada bajo laGPLdelProyecto GNU.[actualizar]
GNU es también el proyecto en el que se originó el concepto de software libre . Richard Stallman , el fundador del proyecto, considera a GNU como un "medio técnico para un fin social". [10] En relación con esto, Lawrence Lessig afirma en su introducción a la segunda edición del libro de Stallman Free Software, Free Society que en él Stallman ha escrito sobre "los aspectos sociales del software y cómo el software libre puede crear comunidad y justicia social". [11]
GNU es un acrónimo recursivo de "GNU's Not Unix!", [6] [12] elegido porque el diseño de GNU es similar a Unix , pero se diferencia de Unix por ser software libre y no contener código Unix. [6] [13] [14] Stallman eligió el nombre usando varios juegos de palabras, incluida la canción The Gnu . [4] : 45:30
El desarrollo del sistema operativo GNU fue iniciado por Richard Stallman mientras trabajaba en el Laboratorio de Inteligencia Artificial del MIT . Se lo llamó Proyecto GNU y Stallman lo anunció públicamente el 27 de septiembre de 1983 en los grupos de noticias net.unix-wizards y net.usoft. [15] El desarrollo del software comenzó el 5 de enero de 1984, cuando Stallman renunció a su trabajo en el Laboratorio para que no pudieran reclamar la propiedad o interferir con la distribución de componentes GNU como software libre. [16]
El objetivo era crear un sistema operativo de software completamente libre. Stallman quería que los usuarios de ordenadores tuvieran libertad para estudiar el código fuente del software que utilizan, compartirlo con otras personas, modificar su comportamiento y publicar sus propias versiones modificadas del mismo. Esta filosofía se publicó como el Manifiesto GNU en marzo de 1985. [17]
La experiencia de Richard Stallman con el Incompatible Timesharing System (ITS), [16] un sistema operativo temprano escrito en lenguaje ensamblador que se volvió obsoleto debido a la discontinuación de PDP-10 , la arquitectura de computadora para la que fue escrito ITS, condujo a la decisión de que era necesario un sistema portable . [4] : 40:52 [18] Por lo tanto, se decidió que el desarrollo se iniciaría utilizando C y Lisp como lenguajes de programación del sistema, [19] y que GNU sería compatible con Unix. [20] En ese momento, Unix ya era un sistema operativo propietario popular . El diseño de Unix era modular, por lo que podía reimplementarse pieza por pieza. [18]
Gran parte del software necesario tuvo que escribirse desde cero, pero también se utilizaron componentes de software libre de terceros compatibles existentes, como el sistema de composición tipográfica TeX , el X Window System y el microkernel Mach que forma la base del núcleo Mach de GNU Hurd (el núcleo oficial de GNU). [21] Con la excepción de los componentes de terceros antes mencionados, la mayor parte de GNU ha sido escrita por voluntarios; algunos en su tiempo libre, algunos pagados por empresas, [22] instituciones educativas y otras organizaciones sin fines de lucro. En octubre de 1985, Stallman creó la Free Software Foundation (FSF). A fines de la década de 1980 y en la de 1990, la FSF contrató desarrolladores de software para escribir el software necesario para GNU. [23] [24]
A medida que GNU ganó prominencia, las empresas interesadas comenzaron a contribuir al desarrollo o venta de software GNU y soporte técnico. La más destacada y exitosa de ellas fue Cygnus Solutions [22] , ahora parte de Red Hat [25] .
Los componentes básicos del sistema incluyen la Colección de compiladores GNU (GCC), la biblioteca GNU C (glibc) y GNU Core Utilities (coreutils), [6] pero también el depurador GNU (GDB), las utilidades binarias GNU (binutils), [26] y el shell GNU Bash . [21] [27] [28] Los desarrolladores de GNU han contribuido a los puertos Linux de las aplicaciones y utilidades de GNU, que ahora también se usan ampliamente en otros sistemas operativos como las variantes de BSD , Solaris y macOS . [29] [ se necesita una mejor fuente ]
Muchos programas GNU han sido portados a otros sistemas operativos, incluidas plataformas propietarias como Microsoft Windows [30] y macOS. [31] Se ha demostrado que los programas GNU son más confiables que sus contrapartes propietarias de Unix. [32] [33]
En junio de 2024 [actualizar], hay un total de 467 paquetes GNU (incluidos los desmantelados, 394 excluidos) alojados en el sitio oficial de desarrollo de GNU. [34]
En su significado original , y todavía común en la ingeniería de hardware, el sistema operativo es un conjunto básico de funciones para controlar el hardware y administrar cosas como la programación de tareas y las llamadas al sistema . En la terminología moderna utilizada por los desarrolladores de software, la colección de estas funciones suele denominarse núcleo , mientras que se espera que un "sistema operativo" tenga un conjunto más amplio de programas. El proyecto GNU mantiene dos núcleos, lo que permite la creación de sistemas operativos GNU puros, pero la cadena de herramientas GNU también se usa con núcleos que no son GNU. Debido a las dos definiciones diferentes del término "sistema operativo", existe un debate en curso sobre la denominación de las distribuciones de paquetes GNU con un núcleo que no es GNU . (Véase más abajo.)
El núcleo original del Proyecto GNU es el GNU Hurd (junto con el microkernel GNU Mach ), que fue el foco original de la Free Software Foundation (FSF). [6] [35] [36] [37]
Con el lanzamiento el 30 de abril de 2015 de la distribución Debian GNU/Hurd 2015, [38] [39] GNU ahora proporciona todos los componentes necesarios para ensamblar un sistema operativo que los usuarios pueden instalar y usar en una computadora. [40] [41] [42]
Sin embargo, el núcleo Hurd aún no se considera listo para producción, sino más bien una base para un mayor desarrollo y uso en aplicaciones no críticas. [43] [40]
En 2012, una bifurcación del núcleo Linux se convirtió oficialmente en parte del Proyecto GNU en la forma de Linux-libre , una variante de Linux con todos los componentes propietarios eliminados. [44] El Proyecto GNU ha respaldado distribuciones Linux-libre, como Trisquel , Parabola GNU/Linux-libre , PureOS y GNU Guix System . [45]
Debido al estado de desarrollo de Hurd, GNU suele emparejarse con otros núcleos como Linux [46] [47] o FreeBSD . [48] Si la combinación de bibliotecas GNU con núcleos externos es un sistema operativo 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 si el núcleo es un sistema operativo en sí mismo con una capa GNU encima (es decir, Linux con GNU), porque el núcleo puede operar una máquina sin GNU, es un tema de debate en curso. La FSF mantiene que un sistema operativo creado utilizando el núcleo Linux y las herramientas y utilidades de GNU debe considerarse una variante de GNU , y promueve el término GNU/Linux para tales sistemas (lo que lleva a la controversia de nombres GNU/Linux ). Esta visión no es exclusiva de la FSF. [49] [50] [51] [52] [53] Cabe destacar que Debian , una de las distribuciones de Linux más grandes y antiguas, se autodenomina Debian GNU/Linux . [54]
El Proyecto GNU recomienda que los colaboradores asignen los derechos de autor de los paquetes GNU a la Free Software Foundation, [55] [56] aunque la Free Software Foundation considera aceptable publicar pequeños cambios en un proyecto existente en el dominio público . [57] Sin embargo, esto no es obligatorio; los mantenedores de paquetes pueden conservar los derechos de autor de los paquetes GNU que mantienen, aunque como sólo el titular de los derechos de autor puede hacer cumplir la licencia utilizada (como la GPL de GNU), en este caso el titular de los derechos de autor la hace cumplir en lugar de la Free Software Foundation. [58]
Para el desarrollo del software necesario, Stallman escribió una licencia llamada Licencia Pública General GNU (primero llamada Licencia Pública General Emacs), con el objetivo de garantizar a los usuarios la libertad de compartir y modificar el software libre. [59] Stallman escribió esta licencia después de su experiencia con James Gosling y un programa llamado UniPress, a raíz de una controversia en torno al uso de código de software en el programa GNU Emacs . [60] [61] Durante la mayor parte de los años 80, cada paquete GNU tenía su propia licencia: la Licencia Pública General Emacs, la Licencia Pública General GCC, etc. En 1989, la FSF publicó una única licencia que podían utilizar para todo su software, y que podía ser utilizada por proyectos no GNU: la Licencia Pública General GNU (GPL). [60] [62]
Esta licencia es utilizada actualmente por la mayor parte del software GNU, así como por un gran número de programas de software libre que no forman parte del Proyecto GNU; también ha sido históricamente la licencia de software libre más utilizada (aunque recientemente ha sido cuestionada por la licencia MIT ). [63] [64] Otorga a todos los destinatarios de un programa el derecho a ejecutarlo, copiarlo, modificarlo y distribuirlo, al tiempo que les prohíbe imponer restricciones adicionales a las copias que distribuyan. Esta idea a menudo se conoce como copyleft . [65]
En 1991, se redactó la Licencia Pública General Reducida de GNU (LGPL), conocida entonces como Licencia Pública General de Biblioteca, para la Biblioteca C de GNU con el fin de permitir que se la vinculara con software propietario. [66] En 1991 también se publicó la versión 2 de la GPL de GNU. En 2000 se publicó la Licencia de Documentación Libre de GNU (FDL), para documentación. [67] La GPL y la LGPL se revisaron a la versión 3 en 2007, y se añadieron cláusulas para proteger a los usuarios contra las restricciones de hardware que les impiden ejecutar software modificado en sus propios dispositivos. [68]
Además de los paquetes de GNU, las licencias del Proyecto GNU pueden [69] y son utilizadas por muchos proyectos no relacionados, como el núcleo Linux , que a menudo se utiliza con el software de GNU. La mayoría del software libre, como el sistema X Window, [70] está licenciado bajo licencias de software libre permisivas . [71]
El logotipo de GNU es una cabeza de ñu . Originalmente diseñado por Etienne Suvasa, ahora se prefiere una versión más simple y audaz diseñada por Aurelio Heckert. [72] [73] Aparece en el software de GNU y en la documentación impresa y electrónica del Proyecto GNU, y también se utiliza en los materiales de la Free Software Foundation.
También existe una versión modificada del logotipo oficial, creada por la Free Software Foundation en septiembre de 2013 para conmemorar el 30º aniversario del Proyecto GNU . [74]
nombre 'GNU' es un
acrónimo recursivo
de 'GNU's Not Unix' (GNU no es Unix); se pronuncia
g-noo
, como una sílaba sin sonido vocálico entre la
g
y la
n
.
Tanto C como Lisp estarán disponibles como lenguajes de programación del sistema.
{{cite web}}
: CS1 maint: URL no apta ( enlace )Casi veinte años después, HURD aún no ha alcanzado la madurez y nunca ha alcanzado la calidad de producción. ... Algunos de nosotros todavía deseamos y esperamos algo real, un sistema operativo GNU con un núcleo GNU.
Había mezclado todos los ingredientes necesarios para que un sistema operativo funcionara, pero le faltaba el núcleo.
La idea de RMS (que he escuchado de primera mano) es que los sistemas Linux deberían considerarse sistemas GNU con Linux como núcleo.
GNU es un sistema operativo que ofrece un conjunto de programas gratuitos de código abierto.
Las variantes del sistema operativo GNU, que utilizan el núcleo Linux, son ampliamente utilizadas en la actualidad; aunque a estos sistemas se los suele denominar «Linux», se los denomina con más precisión «sistemas GNU/Linux».