Distribuciones Linux
Antes de adentrarnos en los detalles a continuación, es crucial comprender qué es el Kernel de Linux y el concepto de distribución Linux.
El Kernel es esencialmente el núcleo de Linux, siendo responsable de diversas operaciones vitales, como:
- Gestión de memoria
- Inicialización del sistema (boot)
- Gestión de disco
- Control de procesos
- Gestión de controladores (módulos)
- Y otras funciones fundamentales.
Por su parte, una distribución Linux consiste en la combinación de un Kernel con un conjunto específico de software, optimizaciones del Kernel y personalizaciones, que pueden ser desarrolladas por la comunidad o por empresas. Cada distribución puede contener conjuntos de software diferentes. Para ilustrar, es similar al sistema Android: existe el Android de Samsung (One UI), con las personalizaciones de Samsung, y el Android de Xiaomi (MIUI), con las características distintivas de Xiaomi.
El ecosistema Linux alberga una amplia variedad de distribuciones, cada cual con sus propósitos específicos.
Un usuario que frecuentemente alterna entre distribuciones es comúnmente llamado "distro hopper". Aunque personalmente no he enfrentado esta situación, es bastante común entre aquellos que están explorando este universo en busca de la distribución ideal. Conocer diversas distribuciones, sus ideas, arquitecturas y entornos puede ser enriquecedor, sin embargo, llega un momento en que se busca estabilidad y consistencia.
Echa un vistazo a la imagen a continuación para tener una idea de la diversidad de distribuciones:
Es importante observar que muchas de esas líneas (es decir, distribuciones) no prosperaron y se convirtieron en proyectos abandonados. Por lo tanto, debemos concentrar nuestra atención en las distribuciones que continuaron hasta el final, eliminando así algunas opciones. Vale destacar que aún existen innumerables otras distribuciones no representadas en esta imagen.
Analizando la historia, percibimos que muchas distribuciones tienen orígenes en proyectos fundamentales, como Debian, Slackware, Arch y Red Hat, algunas siendo derivadas de estas. También existen aquellas independientes, naciendo como proyectos completamente nuevos. Las distribuciones raíz tienden a permanecer activas, demostrando su solidez y reputación.
Ubuntu, por ejemplo, surgió de Debian, y a partir de él fueron desarrolladas muchas otras distribuciones, lo que evidencia su importancia e influencia en el escenario Linux.
Además de las derivadas, existen las distribuciones independientes, creadas con propósitos específicos. Por ejemplo, Alpine es una distribución extremadamente ligera, enfocada en el minimalismo y ampliamente utilizada en contenedores para instalar solo los componentes necesarios para una aplicación. NixOS prioriza la inmutabilidad, mientras que OpenWRT está diseñado para dispositivos de red.
Al elegir una distribución, es esencial considerar la solidez del proyecto. Optar por distribuciones con bases sólidas, respaldadas por empresas o comunidades activas, es fundamental. Entre ellas están ZorinOS, Pop OS, Manjaro, Fedora y Ubuntu, que cuentan con soporte confiable.
A veces, incluso sin el respaldo de una empresa, una comunidad dedicada puede mantener la distribución, como es el caso de Arch, Mint, MX Linux y Void.
Principales aspectos a considerar en la elección de una distribución:
- Estabilidad
- Actividad y soporte de la comunidad o mantenedores
- Calidad de la documentación
- Disponibilidad y calidad de los repositorios de software
- Política de actualizaciones y tiempo de soporte
- Adecuación para el entorno de uso (escritorio, servidor, contenedores, etc.)
Escritorio
Cuando se trata de nuestra estación de trabajo para fines profesionales, hay una serie de consideraciones adicionales a tener en cuenta, como la elección del entorno gráfico. Opciones populares incluyen GNOME, KDE, Cinnamon, XFCE, Mate, Deepin, entre otros. En mi caso, tengo preferencia por GNOME, pues estoy habituado a él y me siento más productivo. Con esta preferencia, consigo eliminar varias distribuciones o "flavors" de ellas, aunque reconozco que esta es una elección personal.
El término "flavors" es comúnmente utilizado para referirse a distribuciones que comparten la misma base y paquetes esenciales, pero poseen entornos gráficos diferentes. Por ejemplo, Fedora utiliza el término "skins" para describir esta variedad. Ubuntu estándar adopta GNOME, mientras que Kubuntu trae KDE Plasma, Xubuntu utiliza XFCE, y Ubuntu Budgie trae Budgie, y así sucesivamente. Al final, todas son variantes de Ubuntu, ofreciendo diferentes experiencias de escritorio.
Considero importante destacar que no creo que los lectores de este texto estén utilizando una máquina con menos de 8GB de RAM para tareas de desarrollo y operaciones (DevOps). Por lo tanto, no consideraremos limitaciones de hardware al elegir una distribución Linux como sistema operativo.
La preferencia por el gestor de paquetes puede ser una cuestión personal. En la práctica, la manera de instalar un paquete puede no hacer mucha diferencia, pues hay amplia documentación disponible en Internet para cualquiera de los gestores.
Ahora, vamos a mis experiencias personales.
Las opiniones a continuación tienen en cuenta un entorno profesional y de estudio. Entorno para quien desarrolla o trabajará con Linux. ¡La mejor distribución es aquella que funciona en tu Hardware!
Ubuntu
Ubuntu, mantenido por Canonical, es la base para muchas distribuciones y posee una variedad de "flavors". Cada dos años, en abril, se lanza una versión LTS (Long-Term Support) que recibe soporte y actualizaciones de seguridad durante cinco años, proporcionando estabilidad a largo plazo y evitando la necesidad constante de reinstalar el sistema operativo.
Para aquellos que prefieren estar más actualizados, cada seis meses hay un nuevo lanzamiento, en abril y octubre.
Particularmente, aprecio usar Ubuntu y personalizarlo con extensiones de GNOME. Además, la mayoría de los servidores en la nube utilizan Ubuntu Server, volviéndose crucial estar familiarizado con esta distribución o alguna basada en ella.
Vale destacar que al buscar en Internet dudas sobre Linux, como "Cómo instalar VSCode en Linux", los tutoriales más comunes son para Ubuntu. La estructura de carpetas y directorios de Ubuntu es familiar y es una excelente base para estudiar para exámenes de certificación.
Las versiones LTS ofrecen soporte extendido, pudiendo ser aún más prolongado hasta 10 años a través de Ubuntu Pro. Estas versiones son rigurosamente probadas, garantizando un sistema altamente estable en tu máquina hasta el próximo lanzamiento LTS.
Los repositorios de Ubuntu son completos y bien mantenidos, convirtiéndose en el segundo mayor repositorio de paquetes, solo detrás de Arch Linux, y ofreciendo una amplia gama de software disponible.
Desde el punto de vista profesional, considero Ubuntu como la distribución más importante, especialmente la versión original. Canonical posee diversas alianzas con otras empresas, fortaleciendo aún más el proyecto. Un ejemplo de esto es cuando instalamos WSL en Windows. ¿Qué Linux vendrá? Ubuntu.
Así como otras distribuciones, Ubuntu personaliza el entorno GNOME con su identidad visual característica, generalmente asociada al color naranja. Sin embargo, esta personalización es flexible, especialmente al utilizar las extensiones de GNOME mencionadas anteriormente.
Creo que la frase que resume las versiones LTS es: Deja que los peones vayan adelante.
Pop! OS y ZorinOS
Tengo una gran afinidad con estas distribuciones. Pop!_OS, mantenido por System76, y Zorin OS, por Zorin Group, son ejemplos de distros Linux sólidas, respaldadas por empresas dedicadas. Ambas se basan en la más reciente versión LTS de Ubuntu, garantizando estabilidad y soporte a largo plazo.
Es interesante notar que los tutoriales desarrollados para Ubuntu son igualmente aplicables a cualquier distribución basada en él, facilitando la experiencia del usuario.
Estas distros están cuidadosamente personalizadas para ofrecer una experiencia de escritorio moderna y acogedora, ideales para entornos de trabajo. A pesar de ya venir listas para usar, permiten personalizaciones adicionales, si se desea.
Zorin OS, en particular, se destaca como una excelente opción para quien está migrando de Windows a Linux, debido a su interfaz familiar. De la misma forma, Linux Mint es frecuentemente citado para esta transición, aunque no tengo experiencia personal con esta distribución.
Fedora
Para quien prefiere una distribución con base en Red Hat (RHEL), Fedora es una excelente opción para uso en entornos de escritorio. Una de las ventajas de utilizar un sistema Linux basado en RHEL es la familiaridad con diversas distribuciones utilizadas por grandes empresas, como Amazon Linux, Rocky Linux, Oracle Linux, entre otras.
Fedora se destaca por ser considerado el "parque de diversiones" de Red Hat, con lanzamientos cada seis meses. Diferentemente de Ubuntu, no posee una versión LTS, y el soporte para cada versión es de 13 meses.
Una característica notable de Fedora es la activación por defecto del soporte a Flatpaks, en vez del formato Snap, incentivado por Ubuntu. Esto significa que en la tienda de aplicaciones, los software serán instalados en formato Flatpak, conocido por su rapidez. Sin embargo, tanto los Flatpaks pueden ser activados en Ubuntu como los Snaps en Fedora.
Fedora generalmente adopta kernels más recientes, convirtiéndose en una gran elección para máquinas modernas.
Sería interesante dedicar al menos un año al uso de una distribución basada en RHEL en el día a día, como forma de mejorar el aprendizaje y profundizar el conocimiento en sistemas Linux.
Arch Linux
Arch Linux es una distribución notable y, personalmente, una de mis favoritas. Se destaca por su excelente rendimiento y por el modelo rolling release, lo que significa actualizaciones continuas. Es una elección fantástica para máquinas personales, pero tal vez no sea la mejor opción para entornos de trabajo, donde la estabilidad es crucial para mantener la productividad.
Aunque sea altamente personalizable y permita a los usuarios construir sus sistemas conforme sus preferencias, Arch Linux viene con lo mínimo necesario instalado. Esto requiere un poco más de conocimiento en Linux para configurar el sistema de acuerdo con las necesidades individuales.
Arch Linux posee el Arch User Repository (AUR), el mayor repositorio de todos, que contiene una vasta colección de paquetes mantenidos por la comunidad. Aunque ofrezca acceso a una amplia variedad de software, existe el riesgo de descargar paquetes con bugs no probados. Esto ocurre debido a la velocidad de lanzamiento de los paquetes.
La comunidad de Arch Linux es increíblemente comprometida y ofrece una vasta documentación, tal vez una de las mayores actualmente. Esto lo convierte en una excelente elección para aprender más sobre Linux, aunque la instalación pueda haber sido considerada complicada en el pasado, hoy en día disponemos de scripts de instalación que facilitan este proceso.
Para aquellos que aprecian las características de Arch Linux, pero desean un enfoque un poco más conservador para el entorno de trabajo, Manjaro es una excelente alternativa. Basado en Arch, Manjaro ofrece una versión más estable de los paquetes, generalmente un poco detrás de la versión más reciente, garantizando una experiencia más sólida y probada.
Kali
Kali Linux es una distribución enfocada en pruebas de penetración y seguridad, ofreciendo una variedad de recursos preinstalados para estos fines específicos. Sin embargo, personalmente, no recomiendo utilizar esta distribución en estaciones de trabajo del día a día. Prefiero instalarla en una máquina virtual para fines específicos, cuando sea necesario, manteniendo así un número menor de paquetes instalados en mi estación de trabajo principal.
Este enfoque permite que mantenga mi estación de trabajo más limpia y enfocada en tareas cotidianas, mientras aún tengo acceso a los recursos avanzados de seguridad ofrecidos por Kali Linux cuando sea necesario, a través de una máquina virtual dedicada.
Servidores
Lo que tengo experiencia y puedo recomendar son:
- Ubuntu Server cuando quieras una distro basada en Debian
- Debian Extremadamente estable y muy bueno para servidores que no sufren muchas actualizaciones para hardware más nuevos.
- Rocky Linux cuando necesites una distro basada en Red Hat pero no quieres utilizar directamente RHEL y no necesitas el soporte.
- BottleRocket: Distro enfocada en ejecutar contenedores, muy bueno para nodos de Kubernetes.
- Proxmox: Enfocada en virtualización de nivel 1.
- RaspberryPI OS: Distro usada para raspberry PI.
- Alpine: Distro minimalista muy usada como base para contenedores.
Con base en mi experiencia, puedo recomendar las siguientes distribuciones para diferentes propósitos:
- Ubuntu Server: Excelente elección cuando se desea una distribución basada en Debian para servidores. Ofrece una amplia gama de recursos y está bien soportado por la comunidad.
- Debian: Reconocido por su extrema estabilidad, Debian es una gran opción para servidores que no necesitan actualizaciones frecuentes para hardware más reciente. Es una elección sólida y confiable para infraestructuras críticas.
- Rocky Linux: Si necesitas una distribución basada en Red Hat Enterprise Linux (RHEL), pero prefieres evitar el uso directo de RHEL y no necesitas soporte comercial, Rocky Linux es una excelente alternativa. Ofrece compatibilidad y estabilidad similares a RHEL.
- BottleRocket: Enfocado en ejecutar contenedores, BottleRocket es una elección ideal para nodos de Kubernetes. Su optimización para entornos de contenedores ofrece rendimiento y eficiencia.
- Proxmox: Proxmox es una solución de virtualización de nivel 1 que ofrece una plataforma abierta y poderosa para virtualización y gestión de máquinas virtuales y contenedores. Es una opción robusta para entornos de virtualización.
- RaspberryPI OS: Diseñado específicamente para uso con Raspberry Pi, esta distribución ofrece un sistema operativo optimizado para el hardware del Raspberry Pi. Es ideal para proyectos de IoT y computación de bajo costo.
- Alpine: Conocido por su minimalismo y seguridad, Alpine Linux es ampliamente utilizado como base para contenedores debido a su tamaño compacto y eficiencia. Es una elección popular para entornos de contenedores que priorizan la seguridad y la eficiencia de recursos.
No existe una distro mejor o peor, depende del propósito.
Vale la pena seguir el sitio DistroWatch que ofrece una amplia variedad de recursos, incluyendo análisis, rankings y tendencias de las distribuciones Linux más populares y también de las más recientes.
A través de DistroWatch, es posible descubrir nuevos proyectos interesantes, seguir las actualizaciones de las distribuciones existentes y entender las preferencias y tendencias de la comunidad Linux.
Es importante no dejarse llevar solo por la popularidad de una distribución. Cada distribución tiene sus propias características, comunidad y flujo de trabajo, y puede no ser la mejor opción para todos los casos de uso. Explorar las distribuciones es una gran manera de expandir tu conocimiento y entender diferentes enfoques y filosofías.