¿Es el directorio /dev el único lugar en Linux donde se pueden almacenar los archivos del dispositivo?

¿Es el directorio /dev el único lugar en Linux donde se pueden almacenar los archivos del dispositivo?

Sé que el /devdirectorio almacena archivos del dispositivo, pero ¿es el /devdirectorio el único lugar donde se pueden almacenar los archivos del dispositivo o es solo una convención almacenar archivos del dispositivo en el /devdirectorio?

Respuesta1

Es sólo una convención. De hecho, en un chrootentorno o contenedor (por ejemplo, ventana acoplable), las entradas de dispositivos pueden estar presentes en otros lugares.

Lo que hace que una entrada de dispositivo sea una entrada de dispositivo es latipode entrada, no su nombre

Así por ejemplo:

% ls -ld /dev/vda
brw-rw---- 1 root disk 253, 0 May 26 07:00 /dev/vda

La primera "b" significa que se trata de un dispositivo de bloque. El "253" es el número de dispositivo principal y el "0" es el número de dispositivo menor. En este caso

% grep virt /proc/devices
253 virtblk

Así, el dispositivo principal 253 está relacionado con la capa de bloque virtual.

¡Notarás que el nombre "vda" no es importante aquí!

yo podría

sudo mknod /tmp/foo b 253 0

Ahora /tmp/fooaccederá exactamente a los mismos datos:

% sudo dd if=/dev/vda bs=256b count=1 | sum
....
40545   128

% sudo dd if=/tmp/foo bs=256b count=1 | sum
....
40545   128

Los nombres comunes son importantes para los humanos y los archivos de configuración (por ejemplo, /dev/tty1es el nombre común para la primera consola virtual en una máquina Linux; /dev/ttyS0es el nombre común para el primer puerto serie), pero es el tipo (bloque/carácter) y el número mayor/menor. eso lo hace funcionar.

información relacionada