Pixelaula.
Linux por dentro · Lección 4 de 5

Todo es un archivo

El kernel se deja leer como si fuera una carpeta. Al terminar sabrás espiar cualquier proceso y dispositivo con cat y ls.

⏱ 25–35 min▶ Video de 75 s🧪 Laboratorio con 4 misiones
00 · En 75 segundos

Primero, la idea completa

Mira el video entero o salta a la parte que quieras repasar. Después, cada idea tiene su propia escena para tocarla.

    01 · El kernel disfrazado de carpetas

    Pseudo sistemas de archivos

    Un pseudo sistema de archivos no guarda nada en disco: expone interfaces del kernel con forma de archivos y carpetas. Cada vez que lees uno de esos archivos, el kernel genera el contenido en ese momento. Por eso se exploran con las herramientas de siempre: ls, cd y cat.

    Exponen, por ejemplo, información de los procesos, la forma de hablar con dispositivos como el teclado y utilidades como dispositivos especiales. Los tres principales son /proc, /sys y /dev.

    02 · Una carpeta por proceso

    procfs: /proc

    Linux heredó /proc de Unix. Su función original era publicar la información de los procesos para que la leyeran herramientas como ps y free: ps no tiene magia, lee /proc. Es de solo lectura y tiene pocas reglas de estructura, pero casi siempre hay:

    • Una carpeta /proc/ID por cada proceso, donde ID es su PID.
    • Información general: montajes, red, memoria (/proc/meminfo), versión del kernel (/proc/version) y tiempo encendido (/proc/uptime).
    Escena 1

    Elige un proceso y una entrada de su carpeta en /proc. Es lo mismo que verías con cat o ls.

    03 · Los dispositivos, ordenados

    sysfs: /sys

    /sys es propio de Linux: una forma estructurada en la que el kernel expone información, sobre todo de dispositivos, con una organización estándar. Parte de lo que hay en /sys también está en /proc, pero hay cosas que solo están en /proc, como la información de memoria. La raíz de /sys está bien documentada; las carpetas de adentro no siempre.

    Escena 2

    Recorre la raíz de /sys. Toca una carpeta para ver qué guarda y un ejemplo de lo que hay adentro.

    04 · Archivos que son aparatos

    devfs: /dev

    En /dev están los archivos especiales de los dispositivos. Hay de tres clases:

    • De bloques (b en ls -l): manejan los datos en bloques, como los discos. /dev/sda es un disco y /dev/sda1, /dev/sda2 sus particiones.
    • De caracteres (c): manejan los datos carácter por carácter, como una terminal, un teclado o un ratón.
    • Especiales: generan datos o permiten manipularlos, como /dev/null (todo lo que se escribe desaparece) o /dev/random (números aleatorios).

    ampliación Los dos números que muestra ls -l en lugar del tamaño son el número mayor (qué controlador lo atiende) y el menor (cuál de sus dispositivos).

    Escena 3

    Escribe o lee en un dispositivo y mira qué hace el kernel con los datos.

    05 · Viven en memoria

    Otros sistemas de archivos en memoria

    • tmpfs: de propósito general, guarda los archivos en las cachés del kernel. Es rápido pero no persiste: al apagar se pierde todo. Se usa en /tmp y /run.
    • debugfs: para depurar; suele montarse con mount -t debugfs none /sys/kernel/debug.
    • pipefs: el que hace posibles las tuberías (|).
    • sockfs: hace que los sockets de red parezcan archivos, entre las llamadas al sistema y los sockets.
    • swapfs: se usa para el intercambio a disco; no se puede montar.
    • loop: permite usar un archivo como si fuera un dispositivo de bloques.

    Con mount se ve cada sistema de archivos montado y su tipo.

    06 · Predice

    Antes de leer la respuesta

    Laboratorio

    Tu turno: lee el kernel

    En esta máquina corre un programa en Python con PID 1234. Sin usar ps, descubre qué ejecuta y qué archivos tiene abiertos. Luego identifica los tipos de dispositivo y encuentra la dirección física de la tarjeta de red.

    Repaso

    Comprueba lo que entendiste

    Cada respuesta incorrecta explica por qué parece correcta y en qué falla.