El Linux moderno es muy fácil de usar, pero para desbloquear todo su potencial, es necesario familiarizarse con algunos conceptos avanzados.
Echemos un vistazo a siete temas clave para elevarlo de un usuario ocasional de Linux a un usuario avanzado.
Shell, bash y scripts
Un shell se define como un intérprete de línea de comandos. Es el programa que toma los comandos que escribes en una terminal/consola, los convierte en instrucciones que el kernel puede procesar y luego envía la salida a la terminal/consola.
La mayoría de los sistemas Linux usan Bash (Bourne Again SHell) como shell predeterminado porque es versátil y suficiente para uso casual. Sin embargo, hay otras conchas disponibles, como Zsh, Ksh, fish y Tcsh.
Para comprobar qué shell está ejecutando, escriba «echo $SHELL» en el terminal.
Ahora, un script de shell es un archivo que contiene una serie de comandos. Estos comandos se ejecutan en secuencia cuando se ejecuta el script desde el terminal.
Esta puede ser una poderosa herramienta de automatización en Linux, lo que le permite agrupar tareas complejas en un solo comando.
X11, Wayland y XWayland
X11 ha sido el protocolo de sistema de ventanas predeterminado para Linux y sistemas operativos similares a Unix desde que se introdujo a mediados de los años 80. Utiliza un modelo cliente-servidor.
Las ventanas de aplicaciones con las que interactúa se denominan «clientes». El «servidor», también conocido como servidor X, procesa los eventos de entrada de estos clientes, por ejemplo, los movimientos de las ventanas, y luego muestra cómo debe responder el cliente.
X11 es el protocolo del sistema de ventanas que transporta la entrada del usuario desde el cliente hasta el servidor X y la salida de vuelta a los clientes.
Ahora, Wayland es un protocolo de servidor de visualización más moderno (desarrollado en 2008 por Red Hat). Simplifica la arquitectura cliente-servidor, mejorando la seguridad y el rendimiento.
Permite que la ventana de la aplicación se comunique directamente con el compositor (más sobre esto en la siguiente sección) lo que reduce la sobrecarga y la latencia. La arquitectura simplificada también está preparada para mejorar la seguridad.
Ahora, Wayland es un protocolo de servidor de visualización más moderno (desarrollado en 2008 por Red Hat). Simplifica la arquitectura cliente-servidor, mejorando la seguridad y el rendimiento.
Permite que la ventana de la aplicación se comunique directamente con el compositor (más sobre esto en la siguiente sección), lo que reduce la sobrecarga y la latencia. La arquitectura simplificada también está preparada para mejorar la seguridad.
Para comprobar si su sistema está utilizando Wayland o X11, introduzca el siguiente comando en su terminal:
echo $XDG_SESSION_TYPE
Gestores de ventanas y compositores
¿Alguna vez ha movido la ventana de una aplicación en Linux, solo para encontrar que los bordes de la ventana se mueven mientras el interior permanece vacío y tarda unos segundos en renderizarse?
Esto sucede cuando los bordes de la ventana se comportan según lo esperado, pero los objetos visuales dentro de la ventana tardan demasiado en representarse.
Verá, los bordes de la ventana y las imágenes dentro de la ventana se pueden controlar mediante dos sistemas separados, especialmente en los sistemas X11.
Para controlar la ubicación y la apariencia de las ventanas en la pantalla, tiene administradores de ventanas. Le permiten mover, cambiar el tamaño, minimizar y maximizar las ventanas, así como mostrar los bordes de las ventanas y las barras de título.
Por otro lado, tenemos a los compositores. Son responsables de renderizar el contenido dentro de cada ventana. Un comistor combina la imagen final renderizada de la aplicación con efectos gráficos como transparencias, sombras y animaciones para crear una sola imagen que se muestra dentro de las ventanas.
En los entornos X11 tradicionales, el gestor de ventanas y el compositor suelen ser componentes separados. Este enfoque modular ofrece flexibilidad, pero también puede conducir a una mayor complejidad y a una posible inestabilidad del sistema, como en el ejemplo que compartí anteriormente.
Para solucionar esto, Wayland combinó el administrador de ventanas y el compositor en un solo componente: El compositor de Wayland.
Esto simplifica la arquitectura, lo que puede conducir a un mejor rendimiento y seguridad. Algunos ejemplos de compositores de Wayland que vemos en las distribuciones regulares que ejecutan Wayland son:
- Sway: Un gestor de ventanas en mosaico diseñado para ser un sustituto directo del gestor de ventanas i3 basado en X11, pero para Wayland.
- Mutter (inicialmente diseñado para X11): El gestor de ventanas por defecto para GNOME.
- KWin (inicialmente diseñado para X11): El gestor de ventanas por defecto para KDE Plasma.
Kernels de Linux personalizados
A menudo nos referimos a Linux como un sistema operativo, pero en realidad es el nombre del kernel que alimenta el sistema operativo. Un kernel es básicamente el núcleo del sistema operativo que une el hardware y el software.
El kernel oficial de Linux es mantenido por Linux Torvalds y la comunidad Linux. Sin embargo, en el verdadero espíritu de Linux, la gente ha modificado el kernel oficial para incluir optimizaciones de rendimiento, soporte de hardware mejorado o características adicionales.
Potencialmente, puede reemplazar el kernel oficial de Linux en su sistema con uno de estos kernels personalizados para obtener un mejor rendimiento.
La mayoría de las distribuciones requieren que compiles manualmente el kernel personalizado y lo instales en tu distribución. Sin embargo, algunas distribuciones avanzadas como Manjaro y Garuda le brindan una aplicación GUI para reemplazar el kernel predeterminado por uno personalizado.
Estos son algunos de los kernels personalizados de Linux más populares:
- Kernel Zen: Agrega mejoras en el programador y optimizaciones de administración de memoria para mejorar el rendimiento de las aplicaciones multimedia y de juegos. Diseñado para uso general de escritorio, ofrece una experiencia estable y confiable.
- Kernel de Liquorix: Incorpora un programador personalizado MuQSS y optimizaciones priorizando la baja latencia y la capacidad de respuesta. Es ideal para jugadores y usuarios intensivos de computadoras de escritorio que buscan maximizar el rendimiento, aunque puede ser un poco inestable según el hardware.
- Kernel de XanMod: Incluye parches para una programación de tareas más rápida y una latencia de entrada/salida reducida para mejorar el rendimiento general del sistema. Una opción relativamente estable para los usuarios que priorizan el rendimiento bruto para cargas de trabajo de uso general.
- Borrar el kernel de Linux: Desarrollado por Intel, este kernel incluye varios parches y configuraciones para mejorar el rendimiento de la CPU y la memoria de Intel, lo que lo convierte en una buena opción para los usuarios con procesadores Intel.
Puede ser un proceso de prueba y error determinar qué kernel de Linux personalizado funciona mejor con su configuración de hardware específica. Es útil probar diferentes opciones y ver cómo funciona su sistema, quedándose con la que produce los mejores resultados.
Es posible que los kernels personalizados no reciban actualizaciones con tanta frecuencia como el kernel principal, lo que podría afectar la seguridad y la compatibilidad con el tiempo.
Inicios de Systemd y SysV
Cuando arranca su sistema Linux, el primer proceso que se inicia es el sistema de inicio, que tiene el ID de proceso (PID) de #1.
La mayoría de las distribuciones modernas de Linux utilizan principalmente uno de los dos sistemas de inicio: SystemD o SysV Init. Puedes comprobar qué sistema de inicio está utilizando tu distribución ejecutando este comando en tu terminal:
ps -p 1
Si la salida muestra «systemd», está utilizando SystemD. Mientras que, si muestra «init», está utilizando SysV Init.
SystemD es el sistema de inicio más nuevo y común utilizado por todas las distribuciones populares, incluidas Ubuntu, Fedora y Arch Linux.
Está diseñado para ser más rápido y eficiente. Mi sistema actual que ejecuta Garuda Linux, también usa SystemD. Sin embargo, tiene algunos problemas técnicos que lo hacen divisivo en la comunidad de Linux
Como resultado, algunas distribuciones de Linux evitan SystemD y utilizan un sistema de inicio más antiguo: SysV Init.
Otros sistemas de inicio populares incluyen runit, OpenRC y Upstart. Cada uno tiene su propio enfoque único para administrar los servicios y la inicialización del sistema.
Saber qué sistema de inicio está utilizando es crucial si desea iniciar (o detener) un servicio en particular durante el arranque del sistema. Por ejemplo, me encontré con un problema en el que UFW (Firewall sin complicaciones) se desactivaba automáticamente después de reiniciar.
Para resolver esto, necesité usar el sistema de inicio para iniciar automáticamente UFW durante el arranque del sistema. Como estaba usando SystemD, usé el comando systemctl.
Si estuviera usando SysV, habría necesitado el comando de servicio.
Tipos de sistemas de archivos
A medida que se familiarice con Linux, descubrirá que admite una amplia variedad de sistemas de archivos, a diferencia de Windows, que utiliza principalmente NTFS para su sistema de archivos principal y FAT o exFAT para el almacenamiento externo.
La mayoría de los sistemas Linux usan ext4 de forma predeterminada, pero hay otras opciones populares.
- Ext4: Una opción fiable para la mayoría de los casos de uso.
- ZFS: Desarrollado por Sun Microsystems, ZFS ofrece comprobación de la integridad de los datos, RAID integrado e instantáneas. Está disponible para Ubuntu como una función opcional y se puede instalar en otras distribuciones.
- XFS: El sistema de archivos predeterminado en las distribuciones de Red Hat Enterprise Linux como Fedora, conocido por su escalabilidad y resistencia a la fragmentación.
- Btrfs: se centra en la integridad de los datos, la tolerancia a fallos y la facilidad de administración con funciones como instantáneas y RAID integrado. Es el sistema de archivos predeterminado en Garuda Linux.
Linux también utiliza sistemas de archivos secundarios para fines específicos, como tmpfs para archivos temporales en memoria y vfat para particiones de arranque o compatibilidad con Windows.
Para verificar los sistemas de archivos que está utilizando su distribución de Linux, escriba df -T en una terminal y presione Enter.
Si desea cambiar los sistemas de archivos en un sistema Linux existente, deberá hacer una copia de seguridad de sus datos y luego formatear las particiones al tipo de sistema de archivos deseado.
SELinux y AppArmor
Linux es famoso por su seguridad, pero no es invulnerable. Si tiene archivos y datos importantes en su PC con Linux, debe desempeñar un papel activo para asegurarse de que esté configurado para que sea lo más seguro posible. Para hacer esto, necesita aprender sobre SELinux y AppArmor.
Ambos son módulos de seguridad del kernel de Linux que agregan una capa adicional de seguridad al restringir lo que pueden hacer las aplicaciones, lo que reduce el riesgo de explotación de vulnerabilidades de seguridad.
SELinux se obtiene de forma predeterminada en Fedora y Red Hat Enterprise Linux (RHEL). Sin embargo, también puede instalarlo y configurarlo para que se ejecute en otra distribución.
Este modelo de seguridad del kernel fue desarrollado por la NSA y ofrece un control detallado sobre el acceso de las aplicaciones a los recursos mediante controles de acceso obligatorios (MAC). Es complejo, pero ofrece una seguridad integral, lo que lo hace adecuado para entornos de alta seguridad.
A continuación, tenemos AppArmor. Ofrece un enfoque de seguridad más sencillo y basado en rutas, lo que facilita su configuración y al mismo tiempo, proporciona una protección eficaz. AppArmor es el valor predeterminado en Ubuntu y SUSE Linux Enterprise Server (SLES).
Dicho esto, si está utilizando una distribución diferente, AppArmor está disponible en todos los principales repositorios de Linux y puede instalarlo fácilmente en cualquier distribución de Linux que desee.
Para utilizar estos módulos de seguridad de forma eficaz, deberá configurar políticas de seguridad que definan las acciones permitidas para las aplicaciones. Esta comparación de AppArmor y SELinux debería ayudarlo a decidir cuál es el adecuado para sus necesidades y requisitos.
Comprender estos conceptos avanzados de Linux es crucial para cualquiera que busque mejorar sus habilidades de un usuario ocasional a un usuario avanzado.
Al explorar las complejidades de los shells, los sistemas de ventanas, los kernels personalizados, la inicialización del sistema, los sistemas de archivos y los módulos de seguridad, obtendrá una apreciación más profunda de la flexibilidad y el poder de Linux.
Más Comandos de Linux que Deberías Conocer
- Guía Completa sobre Linux
- La Chuleta de Comandos de Linux Definitiva
- 22 Comandos de red básicos de Linux
- 5 Comandos de Linux que necesitas para Recopilar información del Sistema
- 18 Comandos de Linux que todo Programador debería Conocer
- 15 Ejemplos Básicos de Comandos LS en Linux
- Comandos de Bash Linux en una Sola Línea
- Comandos para el ajuste de arranque de Linux
- Comando Tail en Linux
- ¿Cómo crear una copia de seguridad de Linux?
- ¿Cómo usar el comando Watch en Linux?
- 5 ejemplos de comando date en Linux
- 10 Mejores distribuciones de Linux para instalar en una USB
- ¿Cómo Dividir archivos TAR en Múltiples partes de tamaño?
- ¿Cuál es la diferencia entre el comando update vs upgrade?
- 7 mejores distribuciones de Linux para programar
- ¿Cómo configurar la IP en Ubuntu?
- ¿Por qué usar EXA en lugar de LS en Linux?
- 7 Mejores terminales Linux y editores Bash
- 11 mejores emuladores de terminal para Linux
- 10 ejemplos prácticos de comandos Grep para Devs en Linux
- Kali Linux para principiantes, ¿Qué es, cómo instalarlo y para qué sirve?
- 33 Aplicaciones / Software usados en la Serie de Mr. Robot
- 11 Mejores Sistemas Operativos para Hackear
- Guía completa de una Instalación SSH
- ¿Qué es OpenSSH y cómo usarlo?
- Descubre qué es el Shell de Linux
Artículos Relacionados
Descubre más desde CIBERED
Suscríbete y recibe las últimas entradas en tu correo electrónico.


