Una distribución Linux (GNU/Linux) (coloquial y abreviadamente llamada distro) es una distribución de software basada en el núcleo Linux, y a menudo, un sistema de gestión de paquetes que incluye determinados paquetes de software, para satisfacer las necesidades de un grupo específico de usuarios, dando así origen a ediciones domésticas, empresariales y para servidores. Por lo general están compuestas, total o mayoritariamente, de software libre, aunque a menudo incorporan aplicaciones o controladores propietarios.
Además del núcleo Linux, las distribuciones incluyen habitualmente las bibliotecas y herramientas del proyecto GNU y el sistema de ventanas X Window System. Dependiendo del tipo de usuarios a los que la distribución esté dirigida se incluye también otro tipo de software como procesadores de texto, hoja de cálculo, reproductores multimedia, herramientas administrativas, etc.
Existen distribuciones que están soportadas comercialmente, como Fedora (Red Hat), openSUSE (SUSE) y Ubuntu (Canonical Ltd.); distribuciones mantenidas por la comunidad, como Debian, Arch Linux y Gentoo; y distribuciones que no están relacionadas con ninguna empresa o comunidad, como es el caso de Slackware.
Antes de que surgieran las primeras distribuciones, un usuario de Linux debía ser algo experto en Unix; no solo debía conocer qué bibliotecas y ejecutables necesitaba para iniciar el sistema y que funcionase, sino también los detalles importantes que se requieren en la instalación y configuración de los archivos en el sistema.
Linus Torvalds desarrolló el kernel Linux y distribuyó su primera versión, 0.01, en 1991. Inicialmente, Linux se distribuyó solo como código fuente y luego como un par de imágenes de disquete descargables: una de arranque y que contenía el propio kernel Linux, y la otra con un conjunto de utilidades y herramientas GNU para configurar un sistema de archivos. Dado que el procedimiento de instalación era complicado, especialmente ante la creciente cantidad de software disponible, surgieron distribuciones para simplificarlo.
Las distribuciones Linux comenzaron a surgir poco después de que el núcleo Linux fuera utilizado por otros programadores además de los creadores originales. Existía mayor interés en desarrollar un sistema operativo que en desarrollar aplicaciones, interfaces para los usuarios o un paquete de software conveniente.
Las primeras distribuciones fueron:
1992
Linux 0.12, un disquetes de 5,25 pulgadas con una versión temprana de Linux (Linux 0.12 Boot-root)
Linux 0.12, o HJ Lu'sBoot-root: Dos disquetes de 5,25 pulgadas denominados Boot-root, con el núcleo y un mínimo de herramientas para utilizar.
MCC Interim Linux: Fue la primera distribución de Linux creada para usuarios de ordenadores que no eran expertos en Unix y contaba con un instalador basado en menús que instalaba tanto el núcleo como un conjunto de herramientas de usuario final y de programación, que se podía descargar en un servidor público FTP de la Universidad de Mánchester en febrero de 1992.
Yggdrasil Linux: Creó el primer CD-ROM de una distribución Linux, siendo una distribución comercial (diciembre de 1992).
1993
Slackware: SLS no estuvo bien mantenida; así pues, Patrick Volkerding lanzó una distribución basada en SLS a la que llamó Slackware; lanzada el 16 de julio de 1993.[1] Esta es la distribución más antigua que está en desarrollo activo.
Los usuarios vieron en Linux una alternativa a los sistemas operativosDOS, Microsoft Windows en la plataforma PC, Mac OS en Apple Macintosh y las versiones de uso bajo licencia (de pago) de UNIX. La mayoría de estos primeros usuarios se habían familiarizado con el entorno UNIX en sus trabajos o centros de estudios. Estos adoptaron GNU/Linux por su estabilidad, reducido (o nulo) coste y por la disponibilidad del código fuente del software incluido.
Las distribuciones eran originalmente una cuestión de comodidad para el usuario medio, evitándole la instalación (y en muchos casos compilación) por separado de paquetes de uso común, pero hoy se han popularizado incluso entre los expertos en este tipo de sistemas operativos (UNIX/Linux). Si bien, históricamente, Linux estuvo mejor posicionado en el mercado de los servidores, distribuciones centradas en la facilidad de instalación y uso, tales como Fedora, Mandriva, OpenSuSE, Knoppix y Ubuntu, entre otras, han logrado una mayor aceptación en el mercado doméstico.
El conjunto típico de una distribución Linux contiene un núcleo, herramientas y bibliotecas, software adicional, documentación, un gestor de ventanas como Wayland o X11, y un entorno de escritorio como GNOME o KDE. Gran parte del software incluido es software libre y distribuido por sus desarrolladores tanto en binario compilado como en forma de código fuente, permitiendo a sus usuarios modificar o compilar el código fuente original si lo desean. Muchas distribuciones incorporan software propietario.
Muchas distribuciones proveen un sistema de instalación gráfica como lo hacen otros sistemas operativos modernos. Distribuciones independientes como Gentoo Linux, T2 y Linux From Scratch proveen el código fuente de todo el software y solo incluyen los binarios del núcleo, herramientas de compilación y de un instalador; el instalador compila todo el software para el CPU específico de la PC del usuario.
Las distribuciones contienen «paquetes», los paquetes contienen alguna aplicación o servicio específico, como una biblioteca con códecs para reproducir archivos de vídeo tipo .mkv, una colección de tipografías, o aplicaciones de escritorio como un navegador web.
Las distribuciones Linux suelen tener algún sistema de gestión de paquetes como Pacman o APT, que se encargan de actualizar estos paquetes, instalarlos, desinstalarlos, y gestionar sus dependencias.
Algunos de los sistemas de paquetes más usados son:
RPM, creado por Red Hat y usado por un gran número de distribuciones de Linux, es el formato de paquetes del Linux Standard Base. Originalmente introducido por Red Hat, pero ahora se usa en muchas distribuciones, como por ejemplo Mandriva.
Deb, paquetes Debian, originalmente introducidos por Debian, pero también utilizados por otros como Knoppix y Ubuntu.
.tgz, usado por Slackware, empaqueta el software usando tar y gzip. Pero, además, hay algunas herramientas de más alto nivel para tratar con este formato: slapt-get, slackpkg y swaret.
Ebuilds, archivo que contiene información acerca de cómo obtener, compilar e instalar un paquete en el sistema Portage de Gentoo Linux con el comando emerge. Generalmente, estas instalaciones se basan en la compilación de fuentes, aunque algunos paquetes binarios se pueden instalar de esta manera.
Pacman, para Arch Linux, usa binarios precompilados distribuidos en un fichero .pkg.tar.gz o .pkg.tar.xz.
PET, utilizado por Puppy Linux, sus derivados y Quirky, su proyecto hermano.
Aunque las distribuciones casi siempre vienen con mucha mayor cantidad de software que los sistemas propietarios, en ocasiones algunos usuarios pueden instalar software que no fue incluido en la distribución. Un ejemplo podría ser el instalar una versión experimental de alguna de las aplicaciones de la distribución o alguna alternativa (como podría ser utilizar una aplicación de KDE dentro de GNOME o viceversa). Si el software es distribuido solo en forma de código fuente, requerirá ser compilado por el ordenador. Sin embargo, si el programa es compilado, el paquete no será registrado por el gestor de paquetes y por lo tanto no podrá ser controlado por él. Esto significa que el administrador del equipo tendrá que tomar medidas adicionales para mantener el software actualizado. El gestor de paquetes no lo podrá hacer automáticamente.
La mayor parte de las distribuciones instalan los paquetes, incluyendo el núcleoLinux y otras piezas fundamentales del sistema operativo con una configuración preestablecida. Esto hace la instalación más sencilla, especialmente para los usuarios nuevos, pero no es siempre aceptable, pues hay programas que deben ser cuidadosamente configurados para que sean funcionales, para que operen correctamente con otra aplicación o para que su seguridad sea robusta. En estos casos, los administradores se ven obligados a invertir tiempo reconfigurando y revisando software soportado por la distribución.
En otras distribuciones la instalación puede llegar a ser muy lenta, pues es posible ajustar y configurar la mayor parte o la totalidad del software incluido en la distribución. No todas lo hacen. Algunas ofrecen herramientas de configuración para ayudar en el proceso.
Es también posible armar un sistema a la medida en su totalidad, descartando incluso el uso de una distribución. Lo primero que hay que hacer es generar un sistema base que permita conseguir, compilar, configurar e instalar el código fuente. Generar los binarios de este sistema base requerirá de otra máquina que sea capaz de generar los binarios para el dispositivo deseado, esto puede ser alcanzado por medio de una compilación cruzada. Ver por ejemplo Linux from Scratch.
Configuradas especialmente para ser más seguras, completas, portables o fáciles de usar.
Soportadas bajo distintos tipos de hardware.
La diversidad de las distribuciones Linux es debido a cuestiones técnicas, de organización y de puntos de vista diferentes entre usuarios y proveedores. El modo de licenciamiento del software libre permite que cualquier usuario con los conocimientos e interés suficiente pueda adaptar o diseñar una distribución de acuerdo a sus necesidades.
Las distribuciones de lanzamiento continuo, rolling release(en inglés), como por ejemplo Arch Linux, se mantienen actualizadas mediante pequeñas y frecuentes actualizaciones.
Los repositorios de distribuciones de lanzamiento continua suelen contener lanzamientos de software muy recientes, a menudo las últimas versiones estables disponibles. Por lo general, un sistema operativo de lanzamiento continuo instalado desde un medio de instalación anterior se puede actualizar por completo después de instalarlo.
En términos del proceso de desarrollo de software, las distribuciones de lanzamiento continuo requieren menos esfuerzos de desarrollo ya que los desarrolladores no tienen que mantener versiones antiguas actualizadas, lo que les permite centrarse en la rama de desarrollo más reciente.
En cuanto a la experiencia de usuario, las versiones estándar a menudo se consideran más estables y libres de errores, ya que los conflictos de software se pueden abordar más fácilmente y la pila de software se prueba y evalúa más a fondo durante el ciclo de desarrollo del software.[3] Por esta razón, tienden a ser la opción preferida en entornos empresariales y tareas de misión crítica.
Sin embargo, las versiones de lanzamiento continuo ofrecen software más actual que también puede proporcionar una mayor estabilidad y menos errores de software junto con los beneficios adicionales de nuevas características, mayor funcionalidad, velocidades de ejecución más rápidas y seguridad mejorada del sistema y la aplicación. Con respecto a la seguridad del software, el modelo de lanzamiento continuo puede tener ventajas en las actualizaciones de seguridad oportunas, la corrección de errores y vulnerabilidades de seguridad del sistema o de la aplicación, que los lanzamientos estándar pueden tener que esperar hasta el próximo lanzamiento o parchear en varias versiones. En una distribución de lanzamiento continuo, donde el usuario ha elegido ejecutarlo como un sistema altamente dinámico, el flujo constante de paquetes de software puede introducir nuevas vulnerabilidades no deseadas.
Cuando el sistema operativo es ejecutado por un dispositivo de solo lectura como un CD o un DVD, el usuario necesita utilizar una memoria no volátil como un disco duro instalado en la máquina, para conservar su información entre sesiones.
La portabilidad de este tipo de distribuciones las hace ideales para ser utilizadas en demostraciones, operaciones de recuperación, cuando se utiliza una máquina ajena o como medio de instalación para una distribución estándar. Actualmente, casi todas las distribuciones tienen una versión live.
Algunas distribuciones están específicamente orientadas a un nicho de mercado concreto, a veces usando sólo el kernel linux sin software GNU, como por ejemplo:
La mayoría de las distribuciones están, en mayor o menor medida, desarrolladas y dirigidas por sus comunidades de desarrolladores y usuarios. En algunos casos están dirigidas y financiadas completamente por la comunidad, como ocurre con Debian GNU/Linux, mientras que otras mantienen una distribución comercial y una versión de la comunidad, como hace RedHat con Fedora, o SuSE con OpenSuSE.
En muchas ciudades y regiones, asociaciones locales conocidas como grupos de usuarios promueven este sistema operativo y el software libre. Suelen ofrecer conferencias, talleres o soporte técnico de forma gratuita o introducción a la instalación de Linux para nuevos usuarios.
En las distribuciones y otros proyectos de software libre y código abierto son muy comunes las salas de chat IRC y grupos de noticias. Los foros también son comunes, sobre todo en el soporte a usuarios, y las listas de correo suelen ser el medio principal para discutir sobre el desarrollo, aunque también se utilizan como medio de soporte al usuario.
Un estudio sobre la distribución Red Hat 7.1 reveló que está en particular posee más de 30 millones de líneas de código real. Utilizando el modelo de cálculo de costos COCOMO, puede estimarse que esta distribución requeriría 8000 programadores por año para su desarrollo. De haber sido desarrollado por medios convencionales de código cerrado, hubiera costado más de mil millones de dólares en los Estados Unidos.[4]
Además, la licencia predominante en alrededor de la mitad de su código total (contado en líneas de código) fue la GPL en su versión 2.
El núcleo Linux contenía entonces 2,4 millones de líneas de código, lo que representaba el 8% del total.
En un estudio posterior[5] se realizó el mismo análisis para Debian GNU/Linux versión 2.2. Esta distribución contenía más de 55 millones de líneas de código fuente, y habría costado 1900 millones de dólares (año 2000) el desarrollo por medios convencionales (no libres); el núcleo Linux en octubre de 2003 tiene unas 5,5 millones de líneas más.
Ubuntu, una de las distribuciones Linux de escritorio más populares
Entre las distribuciones Linux más populares se incluyen:
Arch Linux, una distribución basada en el principio KISS, con un sistema de desarrollo continuo entre cada versión (no es necesario volver a instalar todo el sistema para actualizarlo).
CentOS, una distribución creada a partir del mismo código del sistema Red Hat pero mantenida por una comunidad de desarrolladores voluntarios.
Debian, una distribución mantenida por una red de desarrolladores voluntarios con un gran compromiso por los principios del software libre.
Dragora y Trisquel, que van adquiriendo importancia entre las distribuciones que solo contienen software libre.
Elementary OS Es una distribución Linux basada en Ubuntu 12.04
Fedora, una distribución lanzada por Red Hat para la comunidad.
Gentoo, una distribución orientada a usuarios avanzados, conocida por la similitud en su sistema de paquetes con el FreeBSD Ports, un sistema que automatiza la compilación de aplicaciones desde su código fuente.
PCLinuxOS, derivada de Mandriva, pasó de ser un pequeño proyecto a una popular distribución con una gran comunidad de desarrolladores.
Puppy Linux, versión para equipos antiguos o con pocos recursos que pesa unos 130 MiB.
Red Hat Enterprise Linux, derivada de Fedora, es mantenida y soportada comercialmente por Red Hat.
Slackware, una de las primeras distribuciones Linux y la más antigua en funcionamiento. Fue fundada en 1993 y desde entonces ha sido mantenida activamente por Patrick J. Volkerding.
Ubuntu, una popular distribución para escritorio basada en Debian y mantenida por Canonical.
Zorin OS, distribución basada en Ubuntu y orientada a los usuarios de Windows que quieren pasar a Linux de la forma más fácil y sencilla posible.
El sitio web DistroWatch ofrece una lista de las distribuciones más populares; la lista está basada principalmente en el número de visitas, por lo que no ofrece resultados muy confiables acerca de la popularidad de las distribuciones.