Sé que el /dev
directorio almacena archivos del dispositivo, pero ¿es el /dev
directorio el único lugar donde se pueden almacenar los archivos del dispositivo o es solo una convención almacenar archivos del dispositivo en el /dev
directorio?
Respuesta1
Es sólo una convención. De hecho, en un chroot
entorno 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/foo
accederá 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/tty1
es el nombre común para la primera consola virtual en una máquina Linux; /dev/ttyS0
es 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.