Количество файлов внутри каталога, где имена файлов могут содержать новые строки (или любой другой странный символ)

Последние три аргумента — тип, основной, второстепенный. Они определяют, что на самом деле представляет собой устройство; имя является условным, но не определяет функциональность. Если вы создадите его как /dev/wubbalubbadubdub, он все равно будет /dev/random, пока тип, мажор, минор говорит, что это так.

Тип cпредставляет собой символьное устройство (, а не блочное устройство ).

Старшие/младшие числа — это, по сути, магические числа. Нет никакого способа понять их, кроме как обратиться к соответствующей документации по ядру.

https://www.kernel.org/doc/Documentation/admin-guide/devices.txt

Итак, в вашем случае у вас есть символьное устройство, мажор 1, минор 8, которое задокументировано как таковое:

   1 char   Memory devices
   ⇑MAJOR ⇓MINOR = /dev/name
          1 = /dev/mem      Physical memory access
          2 = /dev/kmem     Kernel virtual memory access
          3 = /dev/null     Null device
          4 = /dev/port     I/O port access
          5 = /dev/zero     Null byte source
          6 = /dev/core     OBSOLETE - replaced by /proc/kcore
          7 = /dev/full     Returns ENOSPC on write
          8 = /dev/random   Nondeterministic random number gen.
          9 = /dev/urandom  Faster, less secure random number gen.
         10 = /dev/aio      Asynchronous I/O notification interface
         11 = /dev/kmsg     Writes to this come out as printk's, reads
                    export the buffered printk records.
         12 = /dev/oldmem   OBSOLETE - replaced by /proc/vmcore

Вот и все. Если вы хотите /dev/random, вы должны использовать c 1 8. Если вы хотите, чтобы это было /dev/urandom, это c 1 9. Вот как это исторически перечислялось в ядре.

В большинстве случаев вы просто используете узлы устройств, предоставленные ядром, devtmpfs, udev или статической структурой /dev вашего дистрибутива; вам редко приходится создавать их самостоятельно, и даже в этом случае для этого могут быть помощники, поэтому вам не нужно вычислять правильные магические числа самостоятельно.

Вы также можете использовать mknod для создания FIFO, но mkfifo для этого будет проще использовать.

0
19.10.2020, 16:34
0 ответов

Теги

Похожие вопросы