miniaturadeimagen|Collage de logotipos de algunas de las distribuciones Linux más conocidas Una distribución Linux (a menudo abreviado como distro) es un sistema operativo basado en el núcleo Linux, que a menudo incluye muchos otros componentes como las utilidades del sistema GNU (en cuyo caso se denomina distribución GNU/Linux), un sistema de gestión de paquetes como APT o Pacman, paquetes de software como aplicaciones o códecs, y comúnmente un entorno de escritorio como GNOME o Cinnamon.
Existen distrubciones Linux con distintos propósitos, como distribuciones para casos de uso doméstico, empresariales, y para servidores.
Por lo general, las distribuciones Linux están compuestas, total o mayoritariamente, de software libre, aunque a menudo incorporan aplicaciones o controladores propietarios.
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.
Historia thumb|Cronología del desarrollo de las principales distribuciones GNU/Linux 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 thumb|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's Boot-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. TAMU Linux: Lanzada en mayo de 1992 por entusiastas de la Universidad de Texas A&M, al mismo tiempo que SLS, se distribuía una serie de disquetes de 3.25 y 5.25, siendo la primera en contar con entorno gráfico de usuario, X Windows System. Softlanding Linux System (SLS): Que derivaba de MCC Interim Linux, incluía el Sistema de ventanas X y fue la distribución más completa durante un corto tiempo (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.Patrick J. Volkerding. Slackware 1.0 Release Announcement Slackware Linux, Inc. (en inglés) Esta es la distribución más antigua que está en desarrollo activo. Debian: De forma similar, debido a la frustración de Ian Murdock con SLS lo condujo a crear el Proyecto Debian.
Los usuarios vieron en Linux una alternativa a los sistemas operativos DOS, 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.
Componentes Típicamente, una distribución Linux agrupa el núcleo Linux, las utilidades del proyecto GNU, un sistema de gestión de paquetes como APT o Pacman, paquetes de software como aplicaciones o códecs, y comúnmente un entorno de escritorio como GNOME o Cinnamonn.
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. Algunas 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.
Gestión de paquetes
Las distribuciones contienen paquetes de software, 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 Fedora 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úcleo Linux 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.
Tipos y tendencias
En general, las distribuciones Linux pueden ser:
Comerciales o no comerciales. Ser completamente libres o incluir software propietario. Diseñadas para uso personal o empresarial. Diseñadas para servidores, computadoras personales, o sistemas embebidos. De uso general o para dispositivos altamente especializados, como un cortafuegos, un rúter o un clúster computacional. Diseñadas e incluso certificadas para un hardware o arquitectura específicos. miniaturadeimagen|Tux, la mascota del Kernel Linux.Orientadas hacia grupos en específico, por ejemplo a través de la internacionalización y localización del lenguaje, o por la inclusión de varios paquetes para la producción musical o para computación científica. 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.
Distribuciones de lanzamiento continuo Las distribuciones de lanzamiento continuo, rolling release , 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.