. 1 3 4 5 6 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z А Б В Г Д Е З И К Л М Н О П Р С Т У Х Ц Ч

UDEV

udev (от англ. “user device”) – это подсистема в ядре Linux, которая отслеживает подключение и отключение устройств в системе и автоматически обрабатывает изменения в их состоянии. Udev отвечает за создание устройств в файловой системе (/dev), присваивание им уникальных идентификаторов (например, уникальных имён устройств вида /dev/sda для жесткого диска) и запуск соответствующих скриптов и служб при подключении или отключении устройств.
Udev также позволяет настраивать правила для обработки конкретных устройств или типов устройств, он является преемником devfs, hotplug и HAL. Его основная задача — обслуживание файлов устройств в каталоге /dev и обработка всех действий, выполняемых в пространстве пользователя при добавлении/отключении внешних устройств, включая загрузку firmware. Правила могут определяться на основе различных атрибутов устройств, таких как их идентификаторы (vendor id, product id), серийные номера, пути к устройствам и т. д. Благодаря этим правилам можно настраивать автоматическую загрузку модулей ядра, монтирование файловых систем и запуск нужных служб при подключении определенного устройства.
Udev является важной составляющей современных дистрибутивов Linux, так как позволяет обеспечить гибкое и автоматизированное управление устройствами в системе.

Благодаря udev в каталоге /dev находятся файлы только тех устройств, которые в настоящий момент подключены к системе. Каждое устройство имеет свой соответствующий файл. Если устройство отключается от системы, то данный файл удаляется. Содержимое каталога /dev хранится на виртуальной файловой системе, и все файлы, находящиеся в нём, создаются при каждом запуске системы. Модифицированные или созданные вручную файлы не сохраняются после перезагрузки. Файлы и каталоги, которые необходимо сохранить или которые всегда должны присутствовать в каталоге /dev, независимо от состояния соответствующего устройства, необходимо помещать в каталог /lib/udev/devices. При запуске системы содержимое данного каталога копируется в /dev как есть (с теми же правами доступа).

Таким образом, в отличие от традиционной для Unix схемы управления каталогом /dev, где его содержимое было неизменным набором файлов, udev обеспечивает динамическое управление устройствами, действительно находящимися в системе. Хотя раньше подобная функциональность обеспечивалась devfs, сторонники udev выделяют следующие преимущества своего решения;

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

udev запускается как демон и принимает через сокет netlink события uevents от ядра, которые генерируются при инициализации или удалении устройства из системы. Задаваемые пользователем (системой) правила сверяются со свойствами события и соответствующего устройства, и совпавшее правило (которых может быть несколько) может назвать и создать соответствующий файл устройств, а также выполнить другие программы для инициализации и конфигурации устройства. Например, таким образом можно реализовать автоматическое монтирование внешних накопителей при их подключении.

Правила могут сверяться по таким свойствам, как конкретная ядерная подсистема, имя устройства в ядре, физическое расположение устройства, либо по серийному номеру устройства. Правила также могут запрашивать информацию при помощи других программ или указать, что имя устройства всегда будет одним и тем же, вне зависимости от порядка обнаружения устройств системой. Правила задаются в файле с произвольным именем, но с суффиксом .rules и находятся в /etc/udev/rules.d/

Типичный способ использования udev на Linux-системе — позволить посылать события HAL или DeviceKit, чтобы они произвели последующие зависящие от устройств действия. Например, HAL/DeviceKit может уведомить остальные программы о новом устройстве при помощи широковещательного сообщения в D-Bus. Таким образом, рабочие среды типа GNOME или KDE могут автоматически смонтировать USB-накопитель и открыть файловый менеджер для просмотра его содержимого.

ACPI (Advanced Configuration and Power Interface) и Udev (Userspace Device Manager) являются двумя различными компонентами Linux, которые взаимодействуют между собой. ACPI отвечает за управление энергопотреблением, горячим подключением устройств и другими функциями аппаратного обеспечения компьютера, в то время как Udev отвечает за управление устройствами и их обнаружение в пользовательском пространстве.
ACPI используется для определения и управления аппаратными ресурсами и функциями компьютера, такими как питание, переход в спящий режим, управление температурой и т. д. Udev, с другой стороны, служит для определения и управления устройствами, подключенными к компьютеру, и автоматического присвоения им имен устройств (например, `/dev/sda` для жесткого диска).
Udev использует информацию о устройствах, предоставленную ACPI, чтобы определить их тип, подключить к ним соответствующие устройства ввода-вывода и выполнить необходимые действия при обнаружении нового устройства. Таким образом, ACPI и Udev работают вместе для обеспечения правильного функционирования и управления устройствами в Linux-системе.

Обсуждение закрыто.