O diretório /dev é o único local no Linux onde os arquivos do dispositivo podem ser armazenados?

O diretório /dev é o único local no Linux onde os arquivos do dispositivo podem ser armazenados?

Eu sei que o /devdiretório armazena arquivos de dispositivos, mas o /devdiretório é o único lugar onde os arquivos de dispositivos podem ser armazenados ou é apenas uma convenção para armazenar arquivos de dispositivos no /devdiretório?

Responder1

É apenas convenção. Na verdade, em um chrootambiente ou 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 é otipode 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 número principal do dispositivo e o “0” é o número secundário do dispositivo. Nesse caso

% grep virt /proc/devices
253 virtblk

Portanto, o dispositivo principal 253 está relacionado à camada de bloco virtual.

Você notará que o nome "vda" não é importante aqui!

eu poderia

sudo mknod /tmp/foo b 253 0

Agora /tmp/fooacessará 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 (bloco/char) e número maior/secundário isso faz funcionar.

informação relacionada