El caos de las distribuciones Linux
Este artículo es una crítica personal al mundo de las distribuciones o 'distros' de GNU/Linux
Personalmente creo que el término Distribución Linux, se ha corrompido con las cientos de distros existentes actuales, la existencia de tal cantidad de opciones a escoger es algo que en vez de beneficiar al mundo Linux, hace que cualquier usuario que quiera acercarse al mundo GNU/Linux no sepa ni por donde empezar.
Parece que hay personas y empresas que no entienden lo que es una distribución y creen que coger una distribución y cambiarle cuatro cosas, cambiar el escritorio por defecto o el fondo del mismo es una nueva distribución, cosa que no lo es.
Qué es una distribución
Una distribución de GNU/Linux está compuesta por los siguientes elementos:
- Kernel de Linux (el núcleo, desarrollado por Linus Torvalds).
- Un Gestor de Paquetes (y no todas las distribuciones dispone de él).
- Un grupo de Aplicaciones (de las cuales el Escritorio es una de ellas).
Cualquier "variación" sobre una distribución existente, es una mejora (o no) a esa distribución y debería llamarse derivación Linux (rama/fork), ya que parte de una distribución original aportando únicamente un grupo nuevo de paquetes.
Distribuciones de GNU/Linux y 'forks' de distribuciones
Os muestro un mapa, extraído de la Wikipedia en la que se pueden apreciar el inmenso número de las distribuciones que han existido y continúan existiendo a lo largo del tiempo:
Ubuntu contra Debian
El problema de cada nueva distribución, es básicamente que cada empresa evita que la paquetería que incluye sea compatible con la distribución de la que surgió.
Uno de los casos más sangrantes fue Ubuntu, que aprovechándose del trabajo de toda la comunidad que mantenía la distribución Debian (de la que deriva), copió sin pudor todo el código, modificó y lo hizo incompatible con Debian.
Cierto es que Ubuntu, incorporó en su momento un gestor de instalación más sencillo y visual (una aplicación) y dio visibilidad en su momento a Linux regalando miles de CDs y DVDs. Sin embargo todo ese trabajo realizado en una aplicación que mejoraba el proceso de instalación no era compatible con Debian y no lo revertió a la comunidad de Debian.
Hubo un momento en que todo el trabajo de la Comunidad de Debian, fue ocultado por esa 'nueva distro', y todo su trabajo era usado sin pudor por Ubuntu. Llegó incluso en aquellos años a pensarse desde dentro, que Debian podía desaparecer y se empezó a hablar del proyecto Utnubu, con el que pagar con la misma moneda a Ubuntu y reusar las aplicaciones existentes de Ubuntu para devolverlas al repositorio de Debian.
Afortunadamente Debian ha persistido, por meritos propios, simplemente por su gran seguridad, estabilidad y compromiso de la comunidad de desarrolladores de Debian.
Distribuciones 'base'
De lo que se puede apreciar de la imagen del árbol anterior, nos encontramos con las siguientes distribuciones base:
Slackware. De esta distribución surgió entre ellas SUSE Linux, que evolucionó posteriormente a OpenSUSE como distribución propia, ya que incorpora Yast, su propio gestor de paquetes, para gestionar la paquetería basada en ficheros .rpm
Otros derivados de esta distribución son Slax, Zenwalk y Absolute Linux.
Debian. Es el llamado 'Sistema Operativo Universal', su gran estabilidad y portabilidad, hace que lo puedes encontrar incluso embebido en dispositivos, incluso Microsoft lo usa como base para uso en algunas distros desarrolladas para su Nube.
Su gestor de paquetes es dpkg, se apoya en apt para poder instalar y resolver dependencias a la hora de instalar la paqueteria .deb
Basadas en Debian, nos encontramos con las siguientes derivaciones: Knoppix, Ubuntu, Linux Mint, Deepin, Zorin OS, ElementaryOS, KDE Neon y Pop!_OS, MX Linux, Trisquel, Devuan, Kali Linux.
Actualmente su instalación y uso es muy sencilla gracias a su instalador gráfico y soporta oficialmente cualquier tipo de Escritorio gráfico: Gnome, Mate, KDE Neon, LXDE, XFCE, LXQt, Deepin, Cinnamon, etc.
Puedes instalar Debian y posteriormente incluir cualquier tipo de escritorio y/o grupo de aplicaciones y verás que dispones de cualquier derivación de esta distribución, pero manteniendo la gran estabilidad que aporta Debian sobre otras 'distros' basadas en él.
RedHat. De esta distribución que utiliza paqueteria .rpm, han surgido multitud de derivaciones como: Conectiva Linux, Mandrake, Mandriva, OpenMandriva, CentOS, Fedora, Alma Linux, Rocky o Ultramarine.
Actualmente mantiene varios gestores de paquetes que conviven en las versiones actuales: rpm, yum y dnf
Quizás Red Hat Enterprise Linux, lo encuentres instalado en muchos servidores corporativos, no por su estabilidad, facilidad de uso o procesos de actualización, sino porque al ser una empresa tiene muchos convenios con fabricantes de hardware para dar soporte privativo a varios controladores (Cabinas de Disco, HBAs, Fiber Channel, etc). Actualmente ha sido comprada por IBM.
La gente la conoce como la "Microsoft de Linux".
Arch Linux. Esta distribución utiliza Pacman como gestor de paquetes, basados en ficheros .tar, ya sean de repositorios oficiales, como creados por los propios usuarios.
Es una distribución altamente flexible, potente y personalizable.
Se la considera una distribución para usuarios avanzados.
Cómo deberían ser las 'distribuciones' actuales
A mi entender lo que actualmente son nuevas distribuciones, deberían ser simplemente un grupo de meta-paquetes, con su propio repositorio de software, que usen la paquetería oficial de la distribución original y aporten nuevas características a ella.
De esta forma, un nuevo usuario únicamente debería escoger la distribución de la que partir e instalar el meta-paquete que desee para transformar o personalizar esa distro a la 'derivación' que desee.
Transformación de una Distribución
Os muestro un ejemplo sencillo de transformación de una distribución Debian en una derivación Debian Forense con un grupo de paquetes específicos para ello:
Distribución base: Debian.
Se instala el meta-paquete forensics-full que incluye además los siguientes meta-paquetes: forensics-all, forensics-all-gui, forensics-extra, forensics-extra-gui.
Además si deseamos un escritorio determinado podemos incluirlo también como meta-paquete. Por ejemplo para dejar Debian con el escritorio Cinnamon instalaríamos: cinnamon-core y cinnamon-desktop-environment
El resultado es una distribución Debian oficial, con escritorio Cinnamon y todo el software necesario para la realización informática de análisis forense.
De esta forma mantenemos la distribución original y no tendremos problemas con las actualizaciones o subidas de versión, en caso necesario de paquetes que no estén en el repositorio base oficial de Debian, se pueden incluir como repositorios extra.
Piensa en esta solución tan sencilla y si realmente necesitas que existan 'distribuciones extras' que hacen lo mismo y no tienen total compatibilidad...