Fundamentos

Qué es Linux: núcleo, distribuciones y sistema de archivos explicados de forma sencilla

Actualizado: · Skillaria.Top

Linux es el núcleo de un sistema operativo de código abierto que gestiona el procesador, la memoria, los discos y la red; junto con utilidades, un gestor de paquetes y un sistema de inicio forma una distribución como Ubuntu, Debian o Fedora. Linux funciona en la mayoría de servidores, contenedores y máquinas en la nube, por eso saber trabajar con él es una habilidad básica para ingenieros DevOps y administradores de sistemas.

Linux es el núcleo de un sistema operativo de código abierto, alrededor del cual se construyen sistemas completos: servidores, equipos de escritorio y dispositivos embebidos. Cuando se habla de un «servidor Linux», no se refiere a un solo programa, sino a una distribución: el núcleo más utilidades, bibliotecas, un gestor de paquetes y un sistema de inicio. Veamos qué es realmente Linux, de qué se compone y por qué casi todo ingeniero DevOps lo utiliza.

Linux es el núcleo, no todo el sistema

Estrictamente hablando, Linux es solo el núcleo (kernel). Es el programa que arranca primero después del cargador de arranque y permanece en memoria mientras el equipo funciona. Reparte el tiempo de procesador entre los procesos, asigna memoria, trabaja con discos y tarjetas de red mediante controladores y vela por los permisos de acceso.

Los programas normales no tocan el hardware directamente. Cuando un editor guarda un archivo, hace una llamada al sistema (open, write, close), y es el núcleo quien decide en qué bloque del disco escribir y si el proceso tiene permiso para hacerlo. Esta separación hace que el sistema sea estable: un programa que falla no tumba todo el equipo.

La versión del núcleo se consulta con un solo comando:

$ uname -r
6.8.0-45-generic

Linus Torvalds creó el núcleo en 1991, y desde entonces se desarrolla de forma abierta: el código fuente se distribuye bajo la licencia GNU GPL versión 2, y cualquiera puede leerlo, modificarlo y redistribuirlo en las mismas condiciones.

Qué es una distribución de Linux

El núcleo por sí solo no basta: hace falta una shell para escribir comandos, herramientas para trabajar con archivos, bibliotecas y un instalador de programas. La mayoría de las herramientas básicas (ls, cp, bash, grep) proceden del proyecto GNU, por eso a veces el sistema se llama GNU/Linux. El núcleo junto con ese conjunto de software, ensamblado y probado como un todo, se llama distribución.

Las distribuciones se diferencian sobre todo por su gestor de paquetes, su política de actualizaciones y el público al que van dirigidas.

FamiliaEjemplosPaquetesDónde se encuentra
DebianDebian, Ubuntu, Linux Mint.deb, aptservidores, nubes, estaciones de trabajo
Red HatRHEL, Fedora, Rocky Linux, AlmaLinux.rpm, dnfservidores empresariales
AlpineAlpine Linuxapkimágenes Docker donde importa el tamaño
ArchArch Linux, Manjaropacmanentusiastas, versiones recientes de paquetes

Para saber qué distribución tiene delante, mire el archivo /etc/os-release:

$ cat /etc/os-release
PRETTY_NAME="Ubuntu 24.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
ID=ubuntu
ID_LIKE=debian

Para aprender y para servidores, lo más habitual es elegir Ubuntu LTS o Debian: tienen mucha documentación, y los comandos de las guías de internet casi siempre funcionan sin cambios.

Cómo está organizado el sistema: núcleo, shell, espacio de usuario

Conviene imaginar Linux en capas. Abajo está el hardware. Encima, el núcleo. Más arriba, el espacio de usuario con los servicios del sistema, las bibliotecas (por ejemplo glibc) y los programas. Entre usted y el sistema se encuentra la shell — normalmente bash —, que recibe los comandos y lanza los programas.

  • Núcleo — procesos, memoria, sistemas de archivos, red, controladores.
  • Sistema de inicio — el primer proceso, con PID 1; en la mayoría de distribuciones modernas es systemd. Arranca el resto de servicios.
  • Servicios (demonios) — servidor web, servidor SSH, cron, registro de eventos.
  • Shell y utilidades — con lo que trabaja en la terminal.

En un servidor normalmente no hay interfaz gráfica: el administrador se conecta por SSH y trabaja en la línea de comandos. Por eso aprender Linux es, ante todo, aprender a usar la terminal.

Sistema de archivos de Linux: todo parte de la raíz /

En Linux no existen unidades C: o D:. Hay un único árbol de directorios que empieza en la raíz, /. Todos los discos, memorias USB y carpetas de red se conectan (montan) a algún directorio de ese árbol. Otro principio: casi todo en Linux se representa como un archivo — archivos normales, directorios, dispositivos e incluso información sobre procesos.

$ ls /
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr

La disposición de los directorios la describe el estándar FHS (Filesystem Hierarchy Standard), por eso en cualquier distribución los archivos de configuración están más o menos en los mismos lugares.

DirectorioQué contiene
/etcconfiguración del sistema y de los servicios: /etc/passwd, /etc/ssh/sshd_config, /etc/fstab
/homedirectorios personales de los usuarios: /home/alice
/rootdirectorio personal del superusuario root
/vardatos variables: registros en /var/log, caché de paquetes, bases de datos, colas de correo
/usrprogramas y bibliotecas instalados: /usr/bin, /usr/lib
/bin, /sbincomandos básicos; en distribuciones modernas son enlaces a /usr/bin y /usr/sbin
/bootel núcleo (vmlinuz-*), initramfs y archivos del cargador de arranque
/devarchivos de dispositivos: /dev/sda, /dev/null
/proc, /syssistemas de archivos virtuales: el núcleo muestra a través de ellos procesos y ajustes
/tmparchivos temporales, a menudo borrados al reiniciar
/optsoftware de terceros que se entrega completo
/mnt, /mediapuntos de montaje de discos y soportes extraíbles

Rutas absolutas y relativas

Una ruta absoluta empieza por / y no depende del lugar donde esté: /var/log/syslog. Una ruta relativa se cuenta desde el directorio actual: ../logs/app.log. El punto . es el directorio actual, los dos puntos .. el directorio padre, y la tilde ~ su directorio personal.

$ pwd
/home/alice
$ cd /var/log
$ cd ..
$ pwd
/var
$ cd ~
$ pwd
/home/alice

/proc: el sistema como conjunto de archivos

El directorio /proc no se guarda en disco: lo genera el núcleo al vuelo. Por ejemplo, cat /proc/cpuinfo muestra los procesadores, cat /proc/meminfo la memoria, y cada proceso tiene un directorio /proc/<PID> con su línea de comandos y sus archivos abiertos. Muchas herramientas, como ps y top, simplemente leen estos archivos.

Montaje

El comando df -h muestra qué sistemas de archivos están montados dónde y cuánto espacio tienen:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2        40G   12G   26G  32% /
/dev/sda1       1.1G  6.1M  1.1G   1% /boot/efi
tmpfs           393M  1.2M  392M   1% /run

Los puntos de montaje permanentes se describen en /etc/fstab: el sistema lee este archivo al arrancar.

Cómo arranca Linux: desde que se enciende hasta la pantalla de inicio de sesión

Entender el arranque ayuda cuando un servidor «no levanta» tras un reinicio. De forma simplificada, la cadena es esta:

  1. Firmware (UEFI o BIOS) comprueba el hardware y encuentra el cargador de arranque.
  2. El cargador GRUB muestra el menú y carga en memoria el núcleo desde /boot y la imagen initramfs.
  3. El núcleo inicializa el hardware y, con ayuda de initramfs, localiza y monta el sistema de archivos raíz.
  4. systemd se inicia como proceso con PID 1 y arranca los servicios en el orden correcto: red, registro de eventos, SSH, cron y el resto.
  5. La pantalla de inicio de sesión aparece en la consola o por SSH.

Los mensajes del núcleo durante el arranque se consultan con sudo dmesg o journalctl -k, y el tiempo de cada etapa con systemd-analyze.

Usuarios y permisos: protección integrada

Linux es un sistema multiusuario desde su origen. Cada archivo tiene un propietario, un grupo y permisos de lectura, escritura y ejecución. Un usuario normal no puede dañar los archivos del sistema, y las acciones administrativas se realizan con sudo. El superusuario root puede hacerlo todo, por eso no es buena práctica trabajar siempre como root.

$ ls -l /etc/passwd
-rw-r--r-- 1 root root 2847 Oct  1 10:12 /etc/passwd

Lectura de esta línea: un archivo normal; el propietario, root, puede leerlo y escribirlo; los demás solo pueden leerlo.

Por qué un ingeniero DevOps necesita Linux

Para un ingeniero DevOps, Linux no es un tema más, sino el entorno en el que transcurre casi todo el trabajo. Así se encuentra con él cada día:

  • Servidores. Los servidores web, las bases de datos y las colas funcionan en su gran mayoría sobre Linux.
  • Contenedores. Docker usa mecanismos del núcleo de Linux: espacios de nombres (namespaces) y cgroups. Un contenedor es un proceso de Linux aislado, y una imagen se basa en una distribución como Debian o Alpine.
  • Nubes y Kubernetes. Las máquinas virtuales en la nube y los nodos de los clústeres también son Linux.
  • CI/CD. Las compilaciones de los pipelines se ejecutan en runners de Linux, y los scripts de construcción se escriben en bash.
  • Diagnóstico. Cuando un servicio falla, la respuesta está en journalctl, top, ss, df: sin conocer estas herramientas, es imposible analizar un incidente.

El mínimo de conocimientos: moverse con soltura por el sistema de archivos, entender los permisos, instalar paquetes, gestionar servicios con systemctl, leer registros, trabajar con procesos, red y SSH, y escribir scripts bash sencillos.

Cómo empezar a aprender Linux

No hace falta reemplazar su sistema principal por Linux. Hay varias formas seguras de probarlo:

  • Máquina virtual (VirtualBox, VMware) con Ubuntu Server: puede romperla y restaurarla desde una instantánea.
  • WSL en Windows — un entorno Ubuntu completo en la terminal de Windows: wsl --install.
  • Servidor en la nube — la opción más cercana al trabajo real, con conexión por SSH.
  • Contenedor Docker — docker run -it --rm ubuntu bash le da una shell en segundos.

Empiece por la navegación (pwd, ls, cd), después los archivos y los permisos, luego los paquetes, los procesos y los servicios. La ayuda integrada siempre está a mano: man ls o ls --help.

Resumen

Linux es el núcleo, y una distribución es el núcleo junto con utilidades, bibliotecas, gestor de paquetes y systemd. Todo el sistema es un árbol de directorios desde la raíz /, donde la configuración está en /etc, los registros en /var/log y los programas en /usr. Entender qué es Linux y cómo arranca le da la base para trabajar con servidores, contenedores y nubes. El sistema de archivos, el arranque y la administración se explican paso a paso y con práctica en nuestro curso de Linux.

Preguntas frecuentes

¿Linux es un sistema operativo o un núcleo?

Formalmente, Linux es el núcleo; el sistema operativo es la distribución: el núcleo más las utilidades GNU, las bibliotecas, el gestor de paquetes y el sistema de inicio. En el lenguaje cotidiano, «Linux» suele referirse a todo el sistema.

¿Linux es gratuito?

El núcleo y la mayoría de distribuciones (Ubuntu, Debian, Fedora) son gratuitos bajo licencias libres. Son de pago las suscripciones de soporte, por ejemplo las de Red Hat Enterprise Linux.

¿Qué distribución de Linux debe elegir un principiante?

Para servidores y para aprender administración, son cómodas Ubuntu LTS y Debian: tienen versiones estables y mucha documentación. Los conocimientos se transfieren entre distribuciones; las diferencias están sobre todo en los gestores de paquetes.

¿Hace falta saber Linux para trabajar con Docker?

Sí, al menos lo básico. Los contenedores se construyen sobre mecanismos del núcleo de Linux, las imágenes contienen distribuciones y la depuración se hace con comandos de shell.

¿En qué se diferencia Linux de Unix?

Unix es una familia de sistemas que apareció en los años setenta, mientras que Linux es un núcleo escrito de forma independiente que repite las ideas e interfaces de Unix (estándar POSIX). Por eso los comandos y los principios de trabajo son muy similares.

Aprende este tema en vídeo

Este tema se explica a fondo y con práctica en el curso «Linux: с нуля до уверенного администрирования».

Ir al curso