Hoy en día es muy común oir hablar de Linux, pero ¿a qué nos estamos refiriendo cuando utilizamos dicho vocablo?
Lo más usual es que cuando oimos a alguien comentar que tiene un Linux en su ordenador lo que realmente nos está diciendo es que tiene un ordenador funcionando bajo un sistema operativo que utiliza un kernel diseñado por Linus Torvalds y su equipo de desarrolladores. Los sistemas operativos son programas que tienen, en esencia, tres tipos de aplicaciones en su interior: un kernel o núcleo del sistema, un conjunto de aplicaciones (programas) y una terminal o shell que permite interactuar al kernel y a las aplicaciones entre si. El kernel realiza las funciones básicas para que todo lo demás funcione, es decir, es capaz, por ejemplo, de enviar una señal que provoque una reacción en un dispositivo de hardware al recibir una instrucción de un programa o aplicación.
Linux en si es un programa-kernel que no funciona solo. Necesita de aplicaciones con las que interacturar. Por lo tanto, en un principio fue un error hablar de Linux a secas, pero hoy en día dicho error se ha extendido tanto que ha dado un nuevo significado para la palabra. Hoy en día puede valer decir «linux» para referirnos a un sistema operativo que funciona bajo el kernel Linux.
Cuando hablamos de Linux hay otro concepto que debemos tener en cuenta para poder entender su estructura y su funcionamiento. Linux no se podría haber desarrollado sin la influencia de los sistemas UNIX, y la división que se produce en el software al surgir el software propietario (o reestrictivo) y el software libre. Durante los años 70, las instituciones/empresas que desarrollaron el sistema UNIX decidieron poner fin al clima de intercambio libre que existía entre las comunidades académicas a la hora de compartir UNIX y trabajar en su constante mejora (a medida que pasaba por más manos, más ideas iban surgiendo para mejorar el código). Un grupo de desarrolladores se opusieron a esta nueva concepción del software como un elemento sujeto a la propiedad intelectual de concepción clásica. La idea fue desarrollar ellos mismos los programas que ya funcionaban en UNIX pero escribiéndolos desde 0. Se trataba de suplantar UNIX entero por un software alternativo pero igualmente válido. Como ellos mismos serían los autores, podrían crear una licencia de derechos de autor que no fuera tan restrictiva como la del software propietario. El trabajo de estos desarrolladores es altruista, y se nutre de miles de usuario de la comunidad que comparten su trabajo no remunierado, que compaginan con trabajos remunerados. Se pude afirmar que estos primeros desarrolladores, pioneros de lo que hoy en día entendemos como un sistema operativo con Linux, se dejaron las pestañas «por amor al arte». El proyecto de liberar UNIX se materializó con GNU (que significa GNU is not UNIX). Crearon la licencia GNU como una manera de garantizar la libertad de su trabajo, para que siguiera desarrollandose en manos de la comunidad.
A principios de los años 90 el proyecto GNU prácticamente tenía realizadas todas las aplicaciones que necesitaba un sistema operativo para funcionar. Pero les faltaba la pieza clave, el kernel. Por motivos de elección el proyecto de GNU para un kernel (se llama Hurt) no estaba acabado. Explica Stallman que optaron por un código innovador en vez de intentar hacer un kernel al estilo tradicional, y tuvieron muchísimas dificultades. En esa misma época, un estudiante finlandés, Linus, desarrolló por su cuenta un kernel que unido a todas las aplicaciones «liberadas» por GNU permitían el funcionamiento más o menos estable de un sistema operativo. Había nacido GNU/Linux, y pronto comenzó su expansión por los círculos universitarios y profesionales.
A partir de entonces surgen muchos proyectos que deciden publicar su trabajo con licencias abiertas. Distintos proyectos ofrecerán conjuntos de programas que funcionan con Linux. Son las distribuciones.
Hoy en día hay muchas distribuciones Linux. Cada una de ellas puede incluir cualquier cantidad de software adicional (libre o no), como algunos que facilitan la instalación del sistema y una enorme variedad de aplicaciones, entre ellos, entornos gráficos, suites ofimáticas, servidores web, servidores de correo, servidores FTP, etcétera.
La base de cada distribución incluye el núcleo Linux, con las bibliotecas y herramientas del proyecto GNU y de muchos otros proyectos/grupos de software, como BSD, Xorg, Apache, MySQL, PostgreSQL, Perl, Python, PHP y KDE.
Usualmente se utiliza la plataforma XFree86 o la X.Org para sostener interfaces gráficas.
Más o menos creo que esto explica muy por encima lo que significa Linux. Probablemente he cometido errores, así que tampoco te fies mucho y si los detectas, por favor, háganmelo saber.
PD: Hay dos conceptos que no he explicado pero que resultan muy interesantes.
– Los sistemas basados en Linux comenzaron a popularizarse con la entrada en escena del proyecto Apache, el cual desarrollo un servidor http que hoy en día es el mayoritario de los servidores web a nivel mundial. Resulto de lejos la mejor opción para configurar un servidor multiusuario. La expansión de Internet provocaría su rapidísimo ascenso y su posterior salto a los sistemas operativos domésticos.
– El término Open Source nace cuando se pretende obtener aplicaciones comerciales para el software libre. Puesto a que no pueden obligar a pagar por el código, ofrecen asesoramiento y mantenimiento de sistemas. A la hora de llamar la atención de los inversores, el nombre de software libre (free software) no resultaba atractivo, por lo que se buscó un término alternativo que permitiera ofrecer a los inversores conceptos que no tuvieran nada que ver con «free». La realidad no enseña que el concepto «free» significa en inglás tanto «libre» como «gratis». Con el fin de eliminar toda referencia a «gratis», se creo el concepto de Código Abierto (Open Source). Así otorgaron cobertura legal a aquellos programas que optaran por una licencia Open Source frente a una de software libre.
Definición de software libre (FSF)