É apenas uma convenção. De fato, em um ambiente chroot
ou em um contêiner (por exemplo, docker), as entradas do dispositivo podem estar presentes em outro lugar.
O que torna uma entrada de dispositivo uma entrada de dispositivo é o tipo de entrada, não é o nome
Então, por exemplo:
% ls -ld /dev/vda
brw-rw---- 1 root disk 253, 0 May 26 07:00 /dev/vda
O primeiro "b" significa que este é um dispositivo de bloco. O "253" é o maior número de dispositivo, e o "0" é o menor número de dispositivo. Neste caso,
% grep virt /proc/devices
253 virtblk
Portanto, o principal dispositivo 253 está relacionado à camada de bloqueio virtual.
Você notará que o nome "vda" não é importante aqui!
Eu posso
sudo mknod /tmp/foo b 253 0
Agora, /tmp/foo
acessará exatamente os mesmos dados:
% sudo dd if=/dev/vda bs=256b count=1 | sum
....
40545 128
% sudo dd if=/tmp/foo bs=256b count=1 | sum
....
40545 128
Nomes comuns são importantes para humanos e arquivos de configuração (por exemplo, /dev/tty1
é o nome comum para o primeiro console virtual em uma máquina Linux; /dev/ttyS0
é o nome comum para a primeira porta serial), mas é o tipo ( block / char) e número maior / menor que faz com que funcione.