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

0

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

por John 27.05.2017 / 03:16

1 resposta

4

É 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.

    
por 27.05.2017 / 03:50

Tags