Является ли каталог /dev единственным местом в Linux, где можно хранить файлы устройств?

Является ли каталог /dev единственным местом в Linux, где можно хранить файлы устройств?

Я знаю, что в /devкаталоге хранятся файлы устройств, но является ли этот /devкаталог единственным местом, где могут храниться файлы устройств, или это просто соглашение хранить файлы устройств в каталоге /dev?

решение1

Это просто соглашение. Действительно, в chrootсреде или контейнере (например, docker) записи устройств могут присутствовать в другом месте.

То, что делает запись об устройстве записью об устройстве, этотипзаписи, а не ее название

Так, например:

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

Первая "b" означает, что это блочное устройство. "253" — это старший номер устройства, а "0" — младший номер устройства. В этом случае

% grep virt /proc/devices
253 virtblk

Таким образом, основное устройство 253 относится к слою виртуальных блоков.

Обратите внимание, что имя «vda» здесь не имеет значения!

Я действительно мог бы

sudo mknod /tmp/foo b 253 0

Теперь /tmp/fooполучим доступ к тем же самым данным:

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

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

Общие имена важны для людей и файлов конфигурации (например, /dev/tty1— это общее имя для первой виртуальной консоли на машине Linux; /dev/ttyS0— это общее имя для первого последовательного порта), но именно тип (блок/символ) и старший/младший номер делают это работающим.

Связанный контент