# Distribución Linux

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.
En el caso de incluir paquetes de código del proyecto GNU, se denomina distribución GNU/Linux.
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

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, 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. 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

El conjunto típico de una distribución Linux contiene un núcleo, herramientas y bibliotecas, software adicional, documentación, un sistema de ventanas, un administrador de ventanas y un entorno de escritorio, este suele ser GNOME o KDE. Gran parte del software incluido es de fuente abierta o 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 privativo, no disponible en forma de código fuente.
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.

### Gestión de paquetes

Las distribuciones están divididas en «paquetes». Cada paquete contiene una aplicación específica o un servicio. Ejemplos de paquetes son una biblioteca para manejar el formato de imagen PNG, una colección de tipografías o un navegador web.
El paquete es generalmente distribuido en su versión compilada y la instalación y desinstalación de los paquetes es controlada por un sistema de gestión de paquetes en lugar de un simple gestor de archivos.En este caso Cada paquete elaborado para ese sistema de paquetes contiene meta-información tal como fecha de creación, descripción del paquete y sus dependencias. El sistema de paquetes analiza esta información para permitir la búsqueda de paquetes, actualizar las librerías y aplicaciones instaladas, revisar que todas las dependencias se cumplan y obtenerlas si no se cuenta con ellas de manera automática.
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ú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 privativo.
* Diseñadas para uso en el hogar o en las empresas.
* Diseñadas para servidores, escritorios o dispositivos empotrados.
* Orientadas a usuarios regulares o usuarios avanzados.
* De uso general o para dispositivos altamente especializados, como un cortafuegos, un enrutador o un clúster computacional.
* Diseñadas e incluso certificadas para un hardware o arquitectura específicos.
* 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 (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. Tienen pseudo-lanzamientos y medios de instalación que son simplemente instantáneas, snapshots (en inglés), de la distribución en el momento del lanzamiento de la imagen de instalación. 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 versiones estándar requieren un esfuerzo de desarrollo significativo para mantener las versiones antiguas actualizadas al propagar las correcciones de errores a la rama más nueva, en lugar de centrarse en la rama de desarrollo más reciente. Además, a diferencia de las versiones de lanzamiento continua, las versiones estándar requieren más de una rama de código para desarrollarse y mantenerse, lo que aumenta las cargas de trabajo de los desarrolladores y mantenedores de software.
Por otro lado, las características del software y la planificación de la tecnología son más sencillas en las versiones estándar debido a una mejor comprensión de las próximas características en la(s) siguiente(s) versión(es). Los ciclos de lanzamiento de software también se pueden sincronizar con los de los principales proyectos de software anteriores (upstream), como los entornos de escritorio.
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. 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.

### Distribuciones que no requieren instalación (Live CD)

Una distribución live o Live CD o Live DVD, más genéricamente Live Distro, (traducido en ocasiones como CD vivo o CD autónomo), es una distribución almacenada en un medio extraíble, tradicionalmente un CD o un DVD (de ahí sus nombres), que puede ejecutarse desde este sin necesidad de instalarlo en el disco duro de una computadora, para lo cual usa la memoria RAM como disco duro virtual y el propio medio como sistema de archivos.
Cuando el sistema operativo es ejecutado por un dispositivo de solo lectura como un CD o DVD, el usuario necesita utilizar una memoria USB o un disco duro instalado en la máquina para conservar su información entre sesiones. La información del sistema operativo es usualmente cargada en la memoria RAM.
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 CD/DVD autónomo o «vivo».

### Distribuciones para hardware especializado

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:
* OpenWrt, distribución orientada a routers
* μClinux orientada a Microcontroladores, normalmente sin una memory management unit (MMU)
* Raspberry Pi OS para la Raspberry Pi
* SteamOS, distribución orientada a juegos y plataformas de juegos.
* Tizen, distribución orientada a smart-TVs.
* LineageOS, orientada a teléfonos móviles

## Desarrollo
### Comunidad

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.

### Escala de desarrollo

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.
La mayor parte de su código (71%) pertenecía al lenguaje C, pero fueron utilizados muchos otros lenguajes para su desarrollo, incluyendo C++, Bash, Lisp, Ensamblador, Perl, Fortran y Python.
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 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.

## Distribuciones Linux (basadas o independientes)
### Distribuciones 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.
* Knoppix, fue la primera distribución live en correr completamente desde un medio extraíble. Está basada en Debian.
* Kubuntu, la versión en KDE Plasma de Ubuntu.
* Linux Mint, una popular distribución derivada de Ubuntu.
* Manjaro Linux, es una distribución rápida, fácil de usar y orientada al escritorio, basada en Arch Linux.
* Mageia, creada por ex trabajadores de Mandriva, muy parecida a su precursor.
* Mandriva, mantenida por la compañía francesa del mismo nombre, fue un sistema popular en Francia y Brasil. Estuvo basada en Red Hat.
* openSUSE, originalmente basada en Slackware es patrocinada actualmente por la compañía SUSE (Micro Focus International).
* 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.
* Slax, es un sistema Linux pequeño, moderno, rápido y portable orientado a la modularidad. Está basado en Slackware.
* 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.
* Void Linux, una floreciente distribución creada desde cero que usa Runit como sistema init.
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.

### Distribuciones especializadas

Otras distribuciones se especializan en grupos específicos:
* 64 Studio, una distribución basada en Debian diseñada para la edición multimedia.
* ABC GNU/Linux, distribución para la construcción de clusters Beowulf desarrollado por Iker Castaños Chavarri, Universidad del País Vasco.
* Kali Linux, distribución basada en Debian y especializada en seguridad de red.
* BackTrack, fue una distribución basada en Ubuntu y especializada en seguridad de red.
* WiFiSlax, distribución basada en Slackware y especializada en seguridad de red.
* Wifiway, distribución basada en Ubuntu y especializada en seguridad de red.
* Debian Med, Debian Med es una distro orientada a la práctica médica y a la investigación bio-médica.
* Edubuntu, un sistema del proyecto Ubuntu diseñado para entornos educativos.
* Emmabuntüs, es diseñada para facilitar el reacondicionamiento de computadores donados a comunidades Emaús.
* Fedora Electronic Lab, distribución basada en Fedora y especializada en el desarrollo electrónico.
* GeeXbox, distribución rápida y ligera orientada a los centros multimedia.
* ICABIAN, en formato Live USB está pensada para usuarios técnicos ya que contiene una gran variedad de programas para la ciencia e ingeniería.
* LULA, distribución académica para universidades. Proyecto LULA.
* mkLinux, Yellow Dog Linux o Black Lab Linux, orientadas a usuarios de Macintosh y de la plataforma PowerPC.
* Musix, fue una distribución de Argentina destinada a los músicos.
* MythTV, orientada para equipos multimedia o grabadores de vídeo digital.
* OpenWrt, diseñada para ser empotrada en dispositivos enrutadores.
* Scientific Linux, distribución para desarrollo científico basada en Red Hat.
* UberStudent, distribución dedicada a la educación y basada en Ubuntu.
* Huayra GNU/Linux es una distribución orientada al sistema educativo y desarrollada en Argentina.

## Galería

* Cronología Linux: Línea del tiempo representando el desarrollo de varias distribuciones Linux
* Debian GNU/Linux 6.0.2.1 «Squeeze»
* Fedora 16 «Verne»
* Gentoo Linux 10.0
* Mandriva Linux 2010.0 «Adelie»
* openSUSE 12.1
* Ubuntu 13.04 «Raring Ringtail»
* Sabayon Linux 7.0
* Puppy Linux 4.3
* SLAX 6.0.7
* Linux Mint 14 «Nadia»
* PCLinuxOS 2009.2
* Linux Mint 21 "Vanessa" (Cinnamon).
* BunsenLabs Linux Lithium 2.1
* Slackware 15.0