Qué son Linux, GNU y el Software Libre

Este es un blog con información sobre soluciones de Business Intelligence open source, de software libre, como Pentaho o Palo, proyectos de ETL como Talend o Kettle, o tendencias para la gestión de Big Data como Apache Hadoop, Spark, Hive y otros proyectos relacionados.

Todos estos proyectos tienen en común que han sido desarrollados bajo los términos de licencias de código abierto, y pueden ser utilizados libremente, y se puede acceder a su código fuente e incluso modificarlo para adaptarlo a necesidades particulares, o para mejorarlo, siempre siguiendo los términos de las licencias Open Source a los que esté ligado cada proyecto.

Para comenzar, y hacer honor al título del blog, y conocer más acerca del open source, recogemos de la wikipedia un artículo que explica la historia del primer gran proyecto de software libre, que es el desarrollo del sistema operativo Linux, y las diferentes distribuciones de Linux que han ido surgiendo después:

GNU/Linux es uno de los términos empleados para referirse a la combinación del núcleo okernel libre similar a Unix denominado Linux con el sistema operativo GNU. Su desarrollo es uno de los ejemplos más prominentes de software libre; todo su código fuente puede ser utilizado, modificado y redistribuido libremente por cualquiera bajo los términos de la GPL (Licencia Pública General de GNU, en inglés: General Public License) y otra serie de licencias libres.

A pesar de que “Linux” se denomina en la jerga cotidiana al sistema operativo, éste es en realidad sólo el Kernel (núcleo) del sistema. La verdadera denominación del sistema operativo es “GNU/Linux” debido a que el resto del sistema (la parte fundamental de la interacción entre el hardware y el usuario) se maneja con las herramientas del proyecto GNU (www.gnu.org) y con entornos de escritorio (como GNOME), que también forma parte del proyecto GNU aunque tuvo un origen independiente.

Como el Proyecto GNU destaca, GNU es una distribución, usándose el término sistema operativo en el sentido empleado en el ecosistema Unix, lo que en cualquier caso significa que Linux es solo una pieza más dentro de GNU/Linux. Sin embargo, una parte significativa de la comunidad, así como muchos medios generales y especializados, prefieren utilizar el término Linux para referirse a la unión de ambos proyectos.

A las variantes de esta unión de programas y tecnologías, a las que se les adicionan diversos programas de aplicación de propósitos específicos o generales se las denomina distribuciones. Su objetivo consiste en ofrecer ediciones que cumplan con las necesidades de un determinado grupo de usuarios. Algunas de ellas son especialmente conocidas por su uso en servidores y supercomputadoras, donde tiene la cuota más importante del mercado.

Según un informe de IDC, GNU/Linux es utilizado por el 78% de los principales 500 servidores del mundo, otro informe le da una cuota de mercado de 89% en los 500 mayores supercomputadores. Con menor cuota de mercado el sistema GNU/Linux también es usado en el segmento de las computadoras de escritorio, portátiles,computadoras de bolsillo, teléfonos móviles, sistemas embebidos, videoconsolas y otros dispositivos.

Etimología de GNU

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 FSF. El nombre Linux viene del núcleo Linux, inicialmente escrito por Linus Torvalds en 1991.

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

Historia de GNU/Linux

 

Richard Matthew Stallman, Fundador del Movimiento del software libre, de la FSF y del Proyecto GNU.

 

Linus Torvalds, creador del núcleo Linux.

El proyecto GNU, que se inició en 1983 por Richard Stallman tiene como objetivo el desarrollo de un sistema operativo Unix completo y compuesto enteramente de software libre. La historia del núcleo Linuxestá fuertemente vinculada a la del proyecto GNU. En 1991 Linus Torvalds empezó a trabajar en un reemplazo no comercial para MINIX12 que más adelante acabaría siendo Linux.

Cuando Torvalds liberó la primera versión de Linux en 1992, el proyecto GNU ya había producido varias de las herramientas fundamentales para el manejo del sistema operativo, incluyendo un intérprete de comandos, una biblioteca C y un compilador, pero como el proyecto contaba con una infraestructura para crear su propio núcleo (o kernel), el llamado Hurd, y este aún no era lo suficiente maduro para usarse, comenzaron a usar a Linux a modo de continuar desarrollando el proyecto GNU, siguiendo la tradicional filosofía de mantener cooperatividad entre desarrolladores. El día en que se estime que Hurd es suficiente maduro y estable, será llamado a reemplazar a Linux.

Entonces, el núcleo creado por Linus Torvalds, quien se encontraba por entonces estudiando la carrera deIngeniería Informática en la Universidad de Helsinki, llenó el “espacio” final que había en el sistema operativo de GNU.

Componentes de GNU/Linux

Entorno gráfico de Linux

GNU/Linux puede funcionar tanto en entorno gráfico como en modo consola. La consola es común en distribuciones para servidores, mientras que la interfaz gráfica está orientada al usuario final tanto de hogar como empresarial. Asimismo, también existen los entornos de escritorio, que son un conjunto de programas conformado por ventanas, iconos y muchas aplicaciones que facilitan la utilización del computador. Los escritorios más populares en GNU/Linux son: GNOME, KDE SC, LXDE y Xfce. Endispositivos móviles se encuentra Android, que funciona sobre el núcleo Linux, pero no usa las herramientas GNU. Intel anunció productos de consumo basados en MeeGo para mediados del 2011, por lo que es probable que este entorno tenga también una creciente importancia en los próximos años.

Como sistema de programación

La colección de utilidades para la programación de GNU es con diferencia la familia de compiladores más utilizada en este sistema operativo. Tiene capacidad para compilar C, C++, Java, Ada, Pascal, entre otros muchos lenguajes. Además soporta diversas arquitecturas mediante la compilación cruzada, lo que hace que sea un entorno adecuado para desarrollos heterogéneos.

Hay varios entornos de desarrollo integrados disponibles para GNU/Linux incluyendo, Anjuta, KDevelop, Lazarus, Ultimate++, Code::Blocks, NetBeans IDE y Eclipse. También existen editores extensibles como Emacs o Vim. GNU/Linux también dispone de capacidades para lenguajes de guion (script), aparte de los clásicos lenguajes de programación de shell, o el de procesado de textos por patrones y expresiones regulares conocido como awk, la mayoría de las distribuciones tienen instalado Python, Perl, PHP y Ruby.

Aplicaciones de usuario para Linux

Las aplicaciones para GNU/Linux se distribuyen principalmente en los formatos .deb y .rpm, los cuales fueron creados por los desarrolladores de Debian y Red Hat respectivamente. También existe la posibilidad de instalar aplicaciones a partir de código fuente en todas las distribuciones.

Software de código cerrado para GNU/Linux

Durante la etapa temprana había pocas aplicaciones de código cerrado para GNU/Linux. Con el tiempo se fueron portando programas no libres al sistema GNU/Linux, entre ellos Adobe Reader, Adobe Flash, Opera, entre otros.

Empresas que patrocinan el uso de Linux

Con la adopción por numerosas empresas fabricantes, un buen número de computadoras se venden con distribuciones preinstaladas, y GNU/Linux ha comenzado a tomar su lugar en el vasto mercado de las computadoras de escritorio.

Algunas de las empresas que colaboran en la difusión de este sistema operativo ya sea trabajando en el núcleo Linux, proporcionando soluciones de software o preinstalando el sistema operativo, son: Intel , Google, IBM, AMD, Sun Microsystems, Dell, Lenovo, Asus, Hewlett-Packard (HP), Silicon Graphics International (SGI), Renesas Technology, Fujitsu, Analog Devices, Freescale, VIA Technologies, Oracle, Novell y RedHat, entre otras.

El respaldo de compañías de software también está presente, ya que, entre otras aplicaciones, Nero, Java, Google Earth, Google Desktop,Adobe Reader, Adobe Flash, RealPlayer y Yahoo! Messenger están disponibles para GNU/Linux. Al haber software equivalente, es innecesario instalar los precisamente mencionados con anterioridad.

Cuota de mercado de Linux

IBM Roadrunner, la supercomputadora más potente de 2008, funciona bajo una distribución GNU/Linux Red Hat Enterprise Linux.

Numerosos estudios cuantitativos sobre software de código abierto están orientados a temas como la cuota de mercado y la fiabilidad, y ciertamente muchos de estos estudios examinan específicamente a GNU/Linux.

La medición “cuota de mercado” puede resultar inservible ya que es un concepto basado en ventas comerciales (unidades materiales vendidas). Por otro lado Linux es utilizado frecuentemente en servidores con acceso público desde Internet por lo que la cuota de mercado es extremadamente inferior a la cuota de uso. Baste notar, p.ej, que Facebook, Gmail, LinkedIn o Yahoo funcionan sobre servidores GNU/Linux, de forma que aún cuando estemos accediendo desde un navegador ejecutándose en Windows/Mac, la aplicación real se está ejecutando en servidores Linux y los datos están almacenándose igualmente en dichos servidores.

Hay varias empresas que comercializan soluciones basadas en GNU/Linux: IBM, Novell (SuSE),Red Hat (RHEL), Mandriva (Mandriva Linux), Rxart, Canonical Ltd. (Ubuntu), así como miles de PYMES que ofrecen productos o servicios basados en esta tecnología.

Aplicaciones de Linux

Supercomputadoras

Dentro del segmento de supercomputadoras, a noviembre de 2012, el uso de este sistema ascendió al 93,8% de las computadoras más potentes del mundo por su confiabilidad, seguridad y libertad para modificar el código. De acuerdo con TOP500.org, que lleva estadísticas sobre las 500 principales supercomputadoras del mundo, a noviembre de 2012: 469 usaban una distribución basada en GNU/Linux, 20 Unix, 7 mezclas, 1 BSD y 3 Windows.

Las primeras 37 supercomputadoras, incluidas la número 1, la Titan – Cray XK7 con 560.640 procesadores, utilizan distribuciones basadas en GNU/Linux.

GNU/Linux, además de liderar el mercado de servidores de Internet debido, entre otras cosas, a la gran cantidad de soluciones que tiene para este segmento, tiene un crecimiento progresivo en computadoras de escritorio y portátiles. Además, es el sistema base que se ha elegido para el proyecto OLPC: One Laptop Per Child.

Linux en los Teléfonos inteligentes y las tablets

Linux tiene un papel imprescindible en el territorio de los teléfonos inteligentes debido a que Android y meego lo utilizan. ActualmenteAndroid es el sistema operativo predominante en los nuevos teléfonos inteligentes y su cuota de mercado mundial supera a iOS de Apple.

Linux en la Administración Pública

Hay una serie de administraciones públicas que han mostrado su apoyo al software libre, sea migrando total o parcialmente sus servidores y sistemas de escritorio, sea subvencionándolo. Como ejemplos se tiene a Alemania, Argentina, Australia, Brasil, España, Chile, China,Cuba, México, Perú, República Dominicana, Ecuador, El Salvador, Uruguay y Venezuela.

Linux en las Fuerzas Armadas

El sistema operativo del General Atomics MQ-1 Predator está basado en GNU/Linux, así como el del Boeing P-8 Poseidon.

La Denominación GNU/Linux

La denominación GNU/Linux

 Evolución de los sistemas UNIX

Parte de la comunidad y numerosos medios prefieren denominar a esta combinación como Linux, aunque GNU/Linux (con las variantes GNU con Linux y GNU+Linux) es la denominación defendida por el Proyecto GNU y la FSF junto con otros  desarrolladores y usuarios para el conjunto que utiliza el sistema operativo Linux en conjunto con las aplicaciones de sistema creadas por elproyecto GNU y por muchos otros proyectos de software.

Desde 1984, Richard Stallman y muchos voluntarios están intentando crear un sistema operativolibre con un funcionamiento similar al UNIX, recreando todos los componentes necesarios para tener un sistema operativo funcional. A comienzos de los años 90, unos seis años desde el inicio del proyecto, GNU tenía muchas herramientas importantes listas, como editores de texto,compiladores, depuradores, intérpretes de comandos de órdenes etc., excepto por el componente central: el núcleo.

GNU tiene su propio proyecto de núcleo, llamado Hurd. Sin embargo, su desarrollo no continuó como se esperaba al aparecer el núcleo Linux. De esta forma se completaron los requisitos mínimos y surgió el sistema operativo GNU que utilizaba el núcleo Linux.

El principal argumento de los defensores de la denominación GNU/Linux es resolver la posible confusión que se puede dar entre el núcleo (Linux) y gran parte de las herramientas básicas del resto del sistema operativo (GNU), y del sistema completo que usualmente se usa como combinación de GNU, Linux, y otros proyectos de software. Además, también se espera que con el uso del nombre GNU, se dé alproyecto GNU el reconocimiento por haber creado las herramientas de sistema imprescindibles para ser un sistema operativo compatible con UNIX, y se destaque la cualidad de estar compuesto sólo por software libre. La primera distribución que incluyó el GNU en su nombre fue Yggdrasyl en 1992, donde aparecía como Linux/GNU/X. La FSF denominó a este sistema “Linux” hasta al menos junio de 199450 y recién a partir de enero de 1995 empezó a llamarlo “GNU/Linux” (también GNU+Linux y lignux, términos que han caído en desuso a instancias del propio Stallman).

GNU / Linux
GNU + Linux

Algunas distribuciones apoyan esta denominación, e incluyen GNU/Linux en sus nombres, como Debian GNU/Linux o GNU/LinEx, mientras que otras, como Slackware, Gentoo o Ubuntu, eligen denominarsebasadas en Linux.

En ocasiones, el proyecto KDE ha utilizado una tercera denominación: GNU/Linux/X para enfatizar los tres proyectos sobre los que se apoya su entorno de escritorio.