Каталог /dev
100%

Устройства · Урок 1

Каталог /dev

Узнайте, как Linux предоставляет интерфейсы устройств и псевдоустройства через узлы в `/dev`.

Linux предоставляет многие интерфейсы устройств ядра через специальные объекты файловой системы — узлы устройств. Обычно они находятся в /dev вместе с полезными символическими ссылками и конечными точками связи. Открытие узла соединяет приложение с драйвером ядра, а не с байтами обычного файла.

Исследование `/dev`

Просмотрите каталог, не разыменовывая и не читая устройства:

$ ls -l /dev

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

Первый символ длинного списка указывает тип объекта. Символьные и блочные узлы обозначаются c и b; далее рассматриваются их major- и minor-номера.

Что происходит, когда программа открывает узел устройства в /dev?

Псевдоустройства

Некоторые узлы предоставляют службы ядра без физического оборудования. /dev/null принимает и отбрасывает записанные данные:

$ command > /dev/null

Другие примеры: /dev/zero выдаёт нулевые байты, а /dev/urandom — случайные байты подсистемы ядра. У каждого своя семантика, которую нельзя выводить лишь из имени.

Что /dev/null делает с записанными данными?

Динамическое управление устройствами

В современных Linux ядровая devtmpfs создаёт базовые узлы при появлении устройств. Пользовательский менеджер вроде udev обрабатывает события, назначает разрешения и владельцев и создаёт ссылки или имена по правилам. Точное разделение обязанностей зависит от системы.

Постоянные ссылки /dev/disk/by-id/ или /dev/disk/by-uuid/ безопаснее в конфигурации, чем имена порядка обнаружения вроде /dev/sda, способные измениться с топологией и порядком устройств.

Почему в конфигурации могут предпочесть /dev/disk/by-id/... вместо /dev/sda?

Безопасное взаимодействие

Стандартные инструменты умеют открывать узлы, но произвольные чтения и записи от этого не становятся безопасными. Чтение может раскрыть ввод или данные, а запись на диск, терминал или в прошивку — повредить данные или нарушить работу. Поэтому доступ ограничивают разрешения, группы, ACL, capabilities и службы-посредники.

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

Почему нельзя записывать произвольные данные в незнакомый узел?

Урок завершён

Вы завершили Каталог /dev

Теперь вы умеете описывать /dev как набор живых интерфейсов к ядру.

  • Отличать узлы устройств от обычных файлов.

  • Распознавать псевдоустройства вроде /dev/null.

  • Связывать динамические узлы и постоянные ссылки с управлением устройствами.

  • Считать прямой доступ специфичным для интерфейса и потенциально разрушительным.

Сохраните прогресс

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

Создать бесплатный аккаунт
Следующий Урок
Назад к Устройства