Linux expone muchas interfaces de dispositivos del kernel mediante objetos especiales del sistema de archivos llamados nodos de dispositivo. Normalmente aparecen bajo /dev, junto con enlaces simbólicos útiles y puntos de comunicación. Abrir un nodo de dispositivo conecta una aplicación con un controlador del kernel, no con bytes almacenados en un archivo ordinario.
Dispositivos · Lección 1
Directorio /dev
Aprende cómo Linux expone interfaces de dispositivos y seudodispositivos mediante nodos bajo `/dev`.
Explorar `/dev`
Muestra el directorio sin seguir los enlaces ni leer los dispositivos:
$ ls -l /dev
Las entradas pueden representar almacenamiento físico, terminales, interfaces de entrada, dispositivos lógicos o seudodispositivos proporcionados por el kernel. No todos los componentes de hardware necesitan un nodo visible para el usuario y un dispositivo puede estar representado mediante varios enlaces o interfaces.
El primer carácter de un listado largo identifica el tipo de objeto del sistema de archivos. Los nodos de dispositivos de caracteres y de bloques aparecen como c y b; lecciones posteriores examinan estos tipos y sus números mayor y menor.
¿Qué ocurre cuando un programa abre un nodo de dispositivo bajo /dev?
Seudodispositivos
Algunos nodos proporcionan servicios del kernel sin corresponder a hardware físico. /dev/null acepta y descarta los datos escritos:
$ command > /dev/null
Otros ejemplos conocidos son /dev/zero, que produce bytes con valor cero, y /dev/urandom, que proporciona bytes aleatorios mediante el subsistema de aleatoriedad del kernel. Cada uno tiene una semántica específica; no deduzcas su comportamiento únicamente del nombre.
¿Qué hace /dev/null con los datos que se escriben en él?
Gestión dinámica de dispositivos
En los sistemas Linux modernos, devtmpfs, respaldado por el kernel, puede crear los nodos de dispositivo básicos a medida que aparecen los dispositivos. Un gestor de dispositivos en el espacio de usuario, como udev, procesa sucesos, aplica permisos y propiedad, y crea enlaces simbólicos útiles o nombres basados en políticas. Las responsabilidades exactas varían según el sistema.
Los enlaces estables, como las entradas bajo /dev/disk/by-id/ o /dev/disk/by-uuid/, pueden ser más seguros en la configuración que los nombres basados en el orden de detección, como /dev/sda, que pueden cambiar al modificarse la topología del hardware o el orden de descubrimiento.
¿Por qué puede preferir un administrador /dev/disk/by-id/... a /dev/sda en una configuración?
Interactuar de forma segura
Las herramientas estándar pueden abrir nodos de dispositivo, pero eso no convierte las lecturas y escrituras arbitrarias en operaciones seguras. Leer puede exponer entradas o almacenamiento confidenciales; escribir en un disco, una terminal o una interfaz de firmware puede corromper datos o molestar a los usuarios. Por esa razón, los permisos, grupos, ACL, capacidades y servicios intermediarios restringen el acceso a los nodos.
Utiliza primero herramientas de descubrimiento de solo lectura, confirma el nodo exacto y la identidad del dispositivo, y sigue la documentación específica del dispositivo. Nunca experimentes redirigiendo datos a una entrada desconocida de /dev en un sistema que te importe.
¿Por qué debes evitar escribir datos arbitrarios en un nodo de dispositivo desconocido?
Utiliza Explorar dispositivos de hardware en Linux para realizar una inspección de solo lectura en un entorno controlado.
Lección completada
Has completado Directorio /dev
Ahora puedes describir /dev como un conjunto de interfaces activas orientadas al kernel.
Distingue los nodos de dispositivo de los archivos ordinarios.
Reconoce seudodispositivos como
/dev/null.Relaciona los nodos dinámicos y los enlaces persistentes con la gestión de dispositivos.
Trata el acceso directo a dispositivos como algo específico de cada interfaz y potencialmente destructivo.
Guarda tu progreso
Crea una cuenta gratuita para guardar esta lección y continuar en cualquier dispositivo.
Crear una cuenta gratuita