5

Я прочитал справочную страницу mknod , которая (насколько я могу судить) используется для создания символьного устройства, такого как /dev/zero , но я не понимаю, как вы могли бы получить его, чтобы получить бесконечный поток с нулем биты (или другой шаблон). Какова процедура создания таких символических устройств?

3 ответа3

3

Все, что делает mknod - это связывает файл устройства с драйвером устройства. Есть драйверы устройств, которые реализуют взаимодействие с реальными устройствами, и есть драйверы устройств, которые просто реагируют на запросы чтения-записи полезными способами. Если вы хотите, вы можете сесть и написать драйвер, который возвращает текст Star Spangeled Banner. Но это вопрос кодирования, а не поиска правильных аргументов для mknod .

3

mknod создает узел устройства, но VFS обнаруживает доступ к узлу устройства и перенаправляет их в соответствующий драйвер в ядре для обработки. Все узлы устройства, от /dev/null до /dev/sdX до /dev/ttyXX до /dev/videoX , обрабатываются таким образом.

0

Если вы просто хотите воссоздать способности /dev/zero но с символом, отличным от нуля / нуля, вы можете использовать tr чтобы изменить все нули ("\000" в восьмеричном) на что-то другое.

Например, чтобы выпустить бесконечный поток "а", вы можете сделать:

cat /dev/zero | tr "\000" "\141" | head -c 20
aaaaaaaaaaaaaaaaaaaa

Или пропустите кошку и выведите значение M (1024 * 1024) с

head -c 1M /dev/zero |tr "\000" "\141"

«\141» - символ "а".

Посетите этот сайт http://www.asciitable.com/ для краткой краткой страницы ASCII - восьмеричных кодов. Это на самом деле это изображение здесь:

(Я знаю, старый "решенный" вопрос, но я нашел его при поиске бесконечного потока разных символов, так что это "решает" проблему «как сделать /dev /one или /dev /[Different Character]»).)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .