GNU/Linux (pronunciado oficialmente como ñu linux o también ge-ene-u linux en español) es una familia de sistemas operativos tipo Unix compuesto por software libre y de código abierto. GNU/Linux surge de las contribuciones de varios proyectos de software, entre los cuales destacan GNU (iniciado por Richard Stallman en 1983) y el núcleo Linux (comenzado por Linus Torvalds en 1991).

A pesar de que comúnmente se llama Linux a todo el sistema operativo, Linux es solo el nombre del núcleo.«El sistema operativo interactúa directamente con el hardware, proporcionando servicios comunes a los programas y aislándolos de las idiosincrasias del hardware. Considerando el sistema como un conjunto de capas, el sistema operativo se denomina comúnmente núcleo del sistema, o simplemente núcleo, lo que enfatiza su aislamiento de los programas de usuario. Dado que los programas son independientes del hardware subyacente, es fácil transferirlos entre sistemas UNIX que se ejecutan en hardware diferente si los programas no hacen suposiciones sobre el hardware subyacente». Maurice J. Bach, The design of the unix operating system, Prentice/Hall, 1986, p. 4«Es importante tener en cuenta que estos programas no son parte del sistema operativo (...). El sistema operativo es la parte del software que se ejecuta en modo kernel (...). Una tendencia en los sistemas operativos modernos es llevar aún más lejos esta idea de mover el código a capas superiores y eliminar la mayor cantidad posible del sistema operativo, dejando un núcleo mínimo». Operating Systems Design & Implementation, Tanenbaum y Woodhull. Refiriéndose a un sistema micronúcleo basado en el modelo cliente-servidor. El autor indica repetidamente que es razonable argumentar que las funciones que pasan a ejecutarse en espacio de usuario siguen siendo parte del sistema operativo. Un sistema GNU/Linux completo incluye también el sistema operativo GNU.¿Cuál es la diferencia entre un sistema operativo y un núcleo? Existen derivados que usan el núcleo Linux sin GNU, como Android, y también existen derivados de GNU sin el núcleo Linux como GNU/Hurd.

Los sistemas GNU/Linux suelen presentarse como distribuciones o distros. Algunas de las más conocidas son Debian, Ubuntu, Arch, o Fedora. Existen distribuciones Linux con distintos propósitos, como distribuciones para computadoras de uso doméstico, empresariales, o para servidores. Estas distribuciones añaden otros componentes como un sistema de gestión de paquetes como APT o Pacman, paquetes de software como aplicaciones o códecs, y a menudo un entorno de escritorio como GNOME o Cinnamon.

Algunas de estas distribuciones son especialmente conocidas por su uso en servidores de Internet, en supercomputadoras, y en sistemas embebidos; mercados donde GNU/Linux tiene la mayor cuota de participación. El proyecto de ranking Top500.org informa que, desde 2017, las 500 supercomputadoras más potentes del mundo utilizan todas ellas alguna versión del sistema operativo GNU/Linux; y desde 2004 ya era el sistema dominante.Diversas encuestas lo han posicionado constantemente como el sistema operativo más popular para servidores web. En aplicaciones embebidas es común encontrar Linux instalado en routers, smart TV y relojes inteligentes, sistemas de entretenimiento de automóviles, y grabadoras de video digital. Aunque con menor participación, el sistema GNU/Linux también se usa en el segmento de las computadoras de escritorio, portátiles, dispositivos móviles, computadoras de bolsillo, videoconsolas y otros.

GNU/Linux es uno de los ejemplos más prominentes de software libre: todo su código fuente puede ser utilizado, modificado y redistribuido libremente por cualquier persona, empresa o institución, bajo los términos de la Licencia Pública General de GNU, así como de otra serie de licencias de derechos de autor.

Etimología

El acrónimo recursivo GNU, GNU's Not Unix (GNU no es Unix), proviene de las herramientas básicas de sistema operativo creadas por el proyecto GNU, iniciado por Richard Stallman en 1983 y mantenido por la Free Software Foundation. El nombre Linux viene del núcleo Linux, inicialmente escrito por Linus Torvalds en 1991.

La contribución del proyecto GNU al sistema es la razón por la que existe controversia a la hora de utilizar Linux o GNU/Linux para referirse al sistema operativo formado por el sistema GNU y el núcleo Linux en su conjunto.

El sistema operativo Unix fue concebido e implementado en 1969 en los laboratorios Bell de AT&T en los Estados Unidos por Ken Thompson, Dennis Ritchie, Douglas McIlroy, y Joe Ossanna.Ritchie, D.M. (Octubre 1984), "The UNIX System: The Evolution of the UNIX Time-sharing System", AT&T Bell Laboratories Technical Journal, 63 (8): 1577, Sin embargo, UNIX nació en 1969... Unix se escribió completamente en lenguaje ensamblador por primera vez en 1971, ya que era una práctica común en el momento. Más tarde, en 1973, en un enfoque innovador, se volvió a escribir en el lenguaje de programación C, por Dennis Ritchie (a excepción del núcleo y del sistema de entrada y salida de datos). La disponibilidad de un lenguaje de alto nivel para implementar Unix propició su portabilidad a diferentes plataformas de computación con mayor facilidad; ayudando así a su propagación.

Debido a un anterior caso antimonopolio que le prohibía entrar en el negocio de las computadoras, AT&T licenciaba gratuitamente el código fuente del sistema operativo Unix a cualquier persona que lo solicitara."Origins and History of Unix, 1969–1995" . Faqs.org. Consultado el 1 de abril del 2017. Como resultado, Unix creció rápidamente y llegó a ser ampliamente adoptado por las instituciones académicas y empresas. En 1984, AT&T se despojó de Bell Labs; quedando libre de la obligación legal que requería la concesión de dichas licencias.

Creación El proyecto GNU, iniciado en 1983 por Richard Stallman, tiene el objetivo de crear un «sistema de software compatible con Unix, compuesto enteramente de software libre». El trabajo comenzó en el año 1984. Más tarde, en 1985, Stallman fundó la Free Software Foundation para financiar el desarrollo de GNU, y redactó la Licencia Pública General de GNU en 1989. A principios de la década de 1990, muchos de los programas que se requieren en un sistema operativo (como bibliotecas, compiladores, editores de texto, un shell Unix y un sistema de ventanas) ya se habían conseguido desarrollar y estaban operativos en el proyecto GNU. Sin embargo, otros elementos, como los controladores de dispositivos y los daemons, estaban todavía en desarrollo e incompletos.

En retrospectiva, Linus Torvalds declaró que si el núcleo del proyecto GNU hubiera estado disponible en 1991, no se habría decidido a desarrollar su propio núcleo."Linus vs. Tanenbaum debate". Archivado desde el original el 3 de octubre del 2012. Consultado el 1 de abril del 2017. Asimismo, también declaró que si el núcleo 386BSD (del cual NetBSD, OpenBSD y FreeBSD descienden), cuyo desarrollo es anterior al núcleo Linux y que no se liberó hasta 1992 por temas legales, hubiera estado disponible probablemente tampoco lo habría desarrollado.

En 1991, cuando Torvalds asistía a la Universidad de Helsinki y era usuario del sistema operativo MINIX, creado en 1987 por Andrew S. Tanenbaum, y de los programas provenientes del proyecto GNU, estaba muy interesado por el funcionamiento de los sistemas operativos.Torvalds, Linus. "What would you like to see most in minix?". Newsgroup: comp.os.minix. Consultado el 1 de abril del 2017. Frustrado por la concesión de licencias de uso que utilizaba MINIX, que en ese momento se limitaba a uso educativo, ese mismo año decidió comenzar a desarrollar su propio núcleoMINIX está disponible bajo la licencia BSD", 9 de abril de 2000, minix1.woodhull.com adoptando la estructura y código del núcleo de MINIX.

Hacia 1992, Torvalds había trabajado tanto en el desarrollo del núcleo Linux que llegó a superar a otros núcleos que se encontraban también en desarrollo en ese momento. Las aplicaciones GNU también se fueron desarrollando de modo que reemplazaron todos los componentes de MINIX, porque era más ventajoso utilizar el código libre del proyecto GNU con el nuevo sistema operativo. El código GNU con licencia bajo la GPL puede ser reutilizado en otros programas de computadora, siempre y cuando también se liberen bajo la misma licencia o una licencia compatible. Posteriormente Torvalds inició un cambio de su licencia original, la cual prohibía la redistribución comercial, y lo difundió bajo la licencia GPL.Los derechos de autor de Linux cambiarán: He tenido un par de peticiones para hacerlo compatible con el copyleft de GNU, eliminando la condición "no puedes distribuirlo por dinero". Estoy de acuerdo. Propongo que se modifique el copyright para que confirme a GNU - pendiente de aprobación de las personas que han ayudado a escribir código. Supongo que esto no va a ser un problema para nadie: Si tiene quejas ("Escribí ese código suponiendo que los derechos de autor permanecerían iguales") envíeme un correo. De lo contrario El copyleft GNU entrará en vigor desde el primero de febrero. Si no conoce la esencia de los derechos de autor de GNU, léalo. Los desarrolladores de ambas partes trabajaron para integrar componentes de GNU con el núcleo Linux, consiguiendo un sistema operativo completamente funcional.

Diseño Muchos desarrolladores de código abierto están de acuerdo en que el núcleo Linux no fue diseñado, sino que evolucionó a través de una forma de «selección natural». Torvalds considera que, aunque el diseño de Unix sirvió como andamiaje, «Linux creció con muchas mutaciones, y debido a que las mutaciones eran menos que aleatorias, eran más rápidas y más dirigidas que las partículas alfa en el ADN». Raymond considera que los aspectos revolucionarios de Linux son sociales, no técnicos, antes de que el software complejo de Linux fuera diseñado cuidadosamente por grupos pequeños, pero «Linux evolucionó de una manera completamente diferente. Desde casi el principio, fue pirateado de manera bastante casual por un gran número de voluntarios coordinando solo a través de Internet. La calidad se mantuvo no por estándares rígidos o autocracia, sino por la estrategia ingenuamente simple de publicar cada semana y obtener comentarios de cientos de usuarios en unos días, creando una especie de selección darwiniana rápida sobre las mutaciones introducidas por los desarrolladores». Bryan Cantrill, un ingeniero de un sistema operativo de la competencia, está de acuerdo en que «Linux no se diseñó, evolucionó», pero considera que esto es una limitación, y propone que algunas características, especialmente las relacionadas con la seguridad, no se pueden convertir en, «este no es un sistema biológico al final del día, es un sistema de software». Un sistema basado en Linux es un sistema operativo modular tipo Unix, que deriva gran parte de su diseño básico de los principios establecidos en Unix durante las décadas de 1970 y 1980. Dicho sistema utiliza un núcleo monolítico, el núcleo Linux, que maneja el control de procesos, las redes, el acceso a los periféricos y los sistemas de archivos. Los controladores de dispositivos se integran directamente con el núcleo o se agregan como módulos que se cargan mientras el sistema está en ejecución.