udev

udev
udev
Тип

Device node

Разработчик

Greg Kroah-Hartman и Kay Sievers

Написана на

С

Операционная система

Linux (ядро)

Первый выпуск

ноябрь 2003 года

Последняя версия

184 (30 мая 2012 года)

Лицензия

GPL v2

Сайт

git.kernel.org/?p=linux/hotplug/udev.git

udev — менеджер устройств для новых версий ядра Linux, являющийся преемником devfs, hotplug и HAL. Его основная задача — обслуживание файлов устройств (англ. device nodes) в каталоге /dev и обработка всех действий, выполняемых в пространстве пользователя при добавлении/отключении внешних устройств, включая загрузку firmware.

Содержание

История

udev добавлен в Linux 2.5.

В ядро Linux 2.6.13 в веден и обновлен новый uevent интерфейс. Новый udev не будет работать на ядрах версией меньше чем 2.6.13.

В апреле 2012, исходный код udev слился с исходным кодом systemd.[1]

Официально стартовал проект eudev (форк udev от Gentoo) в качестве замены для Systemd-udevd

Описание

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

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

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

Принцип работы

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

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

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

Архитектура

udev разделен на три части:

  • Библиотека libudev, позволяющая получать доступ к информации об устройствах.
  • Демон udevd, работающий в пространстве пользователя и управляющий содержимым /dev.
  • Программа udevadm, используемая для отладки и диагностики.

udev получает события от ядра через netlink-сокет. Ранние версии использовали hotplug, добавляясь в /etc/hotplug.d/default.

Примечания

  1. Sievers, Kay, «Commit importing udev into systemd», <http://cgit.freedesktop.org/systemd/systemd/commit/?id=19c5f19d69bb5f520fa7213239490c55de06d99d>. Проверено 25 мая 2012. 
  2. http://kernel.org/pub/linux/utils/kernel/hotplug/udev_vs_devfs

См. также

Ссылки



Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Полезное


Смотреть что такое "udev" в других словарях:

  • Udev — Entwickler: Greg Kroah Hartman, Kay Sievers, Dan Stekloff u. v. a Aktuelle Version: 141 (8. April 2009) …   Deutsch Wikipedia

  • Udev — Saltar a navegación, búsqueda udev es el gestor de dispositivos que usa el kernel Linux en su versión 2.6. Su función es controlar los ficheros de dispositivo en /dev. Es el sucesor de devfs. Contenido 1 Motivación 2 Características …   Wikipedia Español

  • udev — Entwickler Greg Kroah Hartman, Kay Sievers, Dan Stekloff u. v. a Aktuelle Version 175 (07. November 2011) …   Deutsch Wikipedia

  • udev — es el gestor de dispositivos que usa el kernel Linux en su versión 2.6. Su función es controlar los ficheros de dispositivo en /dev. Es el sucesor de devfs y de hotplug, lo que significa que maneja el directorio /dev y todas las acciones del… …   Wikipedia Español

  • Udev — est un gestionnaire de périphériques remplaçant Devfs sur les noyaux Linux de la série 2.6. Sa fonction principale est de gérer les périphériques dans le répertoire /dev. udev s exécute en mode utilisateur et dialogue avec hotplug qui lui s… …   Wikipédia en Français

  • udev — Développeur Greg Kroah Hartman et Kay Sievers Première version …   Wikipédia en Français

  • Udev — Infobox Software name = udev caption = developer = Greg Kroah Hartman and Kay Sievers latest release version = 128 latest release date = September 11, 2008 operating system = Linux kernel genre = device node license = website = [http://www.kernel …   Wikipedia

  • HAL (software) — HAL Stable release 0.5.14 / November 30, 2009; 23 months ago (2009 11 30) Development status Deprecated; functionality merged with udev Operating system …   Wikipedia

  • HAL (freedesktop.org) — У этого термина существуют и другие значения, см. HAL. HAL Тип Системное ПО Операционная система Linux, FreeBSD, NetBSD, OpenSolaris, Solaris Аппаратная платформа UNIX Последняя версия …   Википедия

  • /dev — Gerätedatei (von engl. device file) sind spezielle Dateien, die unter fast allen Unix Derivaten und vielen anderen Betriebssystemen genutzt werden. Sie ermöglichen eine einfache Kommunikation zwischen Userspace, zum Beispiel gewöhnlichen… …   Deutsch Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»