Как создать файлы устройств в Linux с помощью команды mknod

[ad_1]

В линукс, все это файл, даже физические устройства, такие как дисководы, CD/DVD ROM и дискеты, представлены с помощью файлов. Однако эти файлы не являются обычными файлами данных. Вместо этого эти специальные файлы называются файлами устройств, и они могут генерировать или получать данные.

Обычно все специальные файлы находятся в /dev каталог. Некоторые из распространенных примеров специальных файлов: /dev/ноль, /dev/ноль, /dev/полныйи /dev/sr0.

Специальные файлы могут быть символьного или блочного типа. Как следует из названия, файлы символов обрабатывают по одному символу за раз, тогда как файлы блоков обрабатывают несколько символов за раз.

В этом расширенном руководстве мы обсудим, как создать файл устройства с помощью мкнод команда. Следуя этому руководству, пользователи Linux смогут уверенно работать с различными типами файлов устройств.

Синтаксис команды mknod

Синтаксис мкнод команда немного отличается от другие команды Linux. Основное отличие состоит в том, что нам нужно указать старший и младший номера при создании файлов персонажа и блочного устройства:

$ mknod [OPTIONS]   [MAJOR] [MINOR] ...

В приведенном выше синтаксисе квадратные скобки ([]) представляют необязательные аргументы, тогда как угловые скобки (<>) представляют обязательные аргументы.

В Linux старший номер используется для указания используемого драйвера устройства. Этот номер присваивается при регистрации драйвера устройства.

Аналогичным образом младший номер используется для указания фактического устройства. Мы можем найти зарезервированные старшие и младшие числа в Документация ядра Linux.

1. Создайте безымянный канал в Linux

В Linux мы используем каналы для обеспечения связи между процессами. В Shell труба представлена ​​вертикальной линией. (|). Он считывает выходные данные предыдущего процесса и отправляет их в качестве входных данных следующему процессу.

Давайте разберемся с этим на простом примере:

$ echo "tecmint.com" | wc -c

В этом примере мы используем конвейер для чтения вывода эхо-команда и отправить его в качестве входных данных в команда туалета для дальнейшей обработки.

Здесь мы использовали вертикальную линию (|) для создания трубы. Однако при этом создается безымянный канал, и его область действия ограничивается только текущей командой. В следующем примере мы увидим, как создать именованный канал.

2. Создайте именованный канал в Linux

Мы можем использовать мкнод Команда для создания именованного канала. Именованный канал находится в файловой системе, как и любой другой обычный файл. Однако его основная цель — обеспечить межпроцессное взаимодействие между несвязанными процессами.

Во-первых, давайте укажем тип устройства как p для создания именованного канала:

$ mknod /tmp/named-pipe p
$ ls -l /tmp/named-pipe 

Теперь попробуем прочитать файл:

$ cat /tmp/named-pipe

Здесь мы можем видеть, что кошачья команда ждет бесконечно:

Чтение файла именованного канала
Чтение файла именованного канала

Далее, давайте откроем другой терминал и запишем некоторые данные в /tmp/именованный канал файл:

$ echo "tecmint.com" > /tmp/named-pipe

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

Просмотр файла именованного канала
Просмотр файла именованного канала

Здесь мы можем видеть, что эхо и кот команды могут обмениваться данными, используя именованный канал.

3. Создайте файл символьного устройства в Linux

Аналогичным образом мы можем использовать тип устройства как c для создания символьного устройства. Однако мы должны использовать старшие и младшие числа при создании символьного устройства.

Давайте использовать лс команда найти старшие и младшие числа /dev/полный устройство:

$ ls -l /dev/full
Найти основной и младший номер файла
Найти основной и младший номер файла

В приведенном выше выводе пара чисел, разделенных запятыми, т.е. 1, 7 обозначают соответственно старшие и младшие числа.

В Linux /dev/полный устройство всегда возвращает На устройстве не осталось места ошибка. Чтобы понять это, давайте запишем некоторые данные в это устройство:

$ echo "tecmint.com" > /dev/full
Запись данных в файл устройства
Запись данных в файл устройства

Теперь воспользуемся мкнод команда для создания нового устройства, которое ведет себя так же, как /dev/полный устройство:

$ sudo mknod /tmp/full-device c 1 7

Далее изменим права доступа к файлу:

$ sudo chmod 666 /tmp/full-device 
$ ls -l /tmp/full-device

Наконец, запишите некоторые данные во вновь созданное устройство:

$ echo "tecmint" > /tmp/full-device
Создать новый файл устройства
Создать новый файл устройства

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

4. Создайте файл блочного устройства в Linux

В дополнение к этому мы можем указать тип устройства как b для создания блочного устройства. Чтобы создать блочное устройство, мы должны использовать старший и младший номера.

В Linux, /dev/sr0 представляет CD/DVD-ROM устройство. Теперь давайте создадим новое блочное устройство, которое ведет себя так же, как /dev/sr0.

Во-первых, давайте узнаем старшие и младшие числа /dev/sr0:

$ ls -l /dev/sr0
Проверьте основные и второстепенные номера файлов устройств
Проверьте основные и второстепенные номера файлов устройств

В приведенном выше выводе мы видим, что его старший и младший номера равны 11 и 0 соответственно.

Теперь давайте создадим новое блочное устройство с такими же старшим и младшим номерами:

$ sudo mknod /tmp/dvd-rom b 11 0
$ ls -l /tmp/dvd-rom 
Создать новое блочное устройство
Создать новое блочное устройство

Далее смонтируем образ ISO с CD/DVD ROM на диск. /млн каталог и убедитесь, что операция монтирования прошла успешно:

$ sudo mount /tmp/dvd-rom /mnt/
$ ls -1 /mnt/
Смонтировать новое блочное устройство
Смонтировать новое блочное устройство

В этом примере мы видим, что /tmp/DVD-ROM блочное устройство может получить доступ к ISO-образу с CD/DVD-ROM.

5. Создайте файл устройства с разрешениями

Иногда нам нужно изменить права доступа к файлу устройства перед его использованием. В таких случаях мы должны использовать chmod команда. Однако мы можем добиться того же результата, используя мкнод вместо использования двух отдельных команд.

Чтобы понять это, воспользуемся -m возможность установить права доступа при создании именованного канала:

$ sudo mknod -m 444 /tmp/pipe-with-permissions p

Теперь давайте проверим правильность установки разрешений:

$ ls -l /tmp/pipe-with-permissions
Создать файл устройства с разрешениями
Создать файл устройства с разрешениями

В этом примере мы использовали -m вариант с именованным каналом. Однако мы можем использовать его и с символьными и блочными устройствами.

Знаете ли вы какой-либо другой лучший пример мкнод команда в линуксе? Сообщите нам свое мнение в комментариях ниже.

[ad_2]

Related Posts

Leave a comment

You must login to add a new comment.

[wpqa_login]
افلام سكس مصرى hd pornoarabi.com نيك مزدوج رقص سكسى tropsha.com نيك م نيك السكرتيره freearabianporn.com سكس ام مع صبي air hostess x videos pakistanipornx.net kanada six video xxx in kannada originalhindiporn.mobi bf film bf video
indian xxxx video chupaporn.com bengoli panu سكس مخنسات porndot.info نيك مصرى مجانى soushisouai note nisatsume streamhentai.net alicization hentai kenshin hentai nicehentai.com pizza and the little bully nude sunny leone waplo.info nesa porn.com
pure sexy film ganstagirls.info bulu film open ying hentai stophentai.com ayase eli hentai سكس سعودية ufym.info مقاطع سكس اون لاين indain sexy movie porngugu.mobi yoga teacher xnxx xvideos collage indiansextube.org bengali sex scandals