Udev
[Wikipedia|▼Menu]

udev開発元グレッグ・クロー=ハートマン(Greg Kroah-Hartman)、ケイ・シェバース(Kay Sievers)
初版2003年11月(16年前) (2003-11)
最新版246 - 2020年7月30日(2か月前) (2020-07-30)[1]
リポジトリgithub.com/systemd/systemd
プログラミング言語C言語
対応OSLinux
プラットフォームLinux
サポート状況開発中
種別デバイスノード
ライセンスGPL v2
公式サイト ⇒kernel.org/pub/.../hotplug/udev.html
テンプレートを表示

関連ポータルのリンク


ウィキポータル FLOSS

udevとは、Linuxカーネル用のデバイス管理ツールである。主に/devディレクトリ以下のデバイスノードを管理するために利用する。以前/devディレクトリの管理を担っていた"devfsd"(en)と、ホットスワップファームウェアのロードなどユーザー空間におけるデバイスのアクション全てを担っていた"hotplug"の後継ツールである。目次

1 歴史

2 概要

3 操作

4 アーキテクチャー

5 作者

6 脚注

7 外部リンク

歴史

udevはLinuxカーネルバージョン2.5にて初めて登場した。

カーネルバージョン2.6.13からはuevent(イベントの一種)インタフェースの新しい版が導入され、更新された。このため、比較的新しいバージョンのudevを使用するシステムでは、バージョン2.6.13より古いカーネルではもはや起動できない。古いカーネルにおいてはudevを無効化し、古めかしい静的な/devノードを使用する必要がある。
概要

/devディレクトリに静的にデバイスノードを作成する伝統的なUNIXシステムとは違い、Linuxのudevは実際にシステムに接続されているデバイスのノードのみを動的に供給する。devfsもかつて似たような機能を提供していたが、udevの支持者はdevfsよりも実装で優れているいくつかの理由[2]に言及している:

udevはあらゆるものに依存しない、例えばシステムに接続された順番などに依存しない永続的なデバイス名をサポートする。 デフォルトでは、記憶装置は永続的なデバイスファイル名で準備される。ハードディスクのいずれも、ファイルシステム固有のIDで識別され、さらにディスクの名称と接続されているハードウェア上の物理的な位置(ATAなどにおけるプライマリ/セカンダリ・マスタ/スレーブの違いなど)で認識される。


devfsがカーネル空間で実行されるのとは対照的に、udevの処理はユーザー空間で完結している。1つの結果として、udevはカーネルの外に命名規則を移動し、デバイスノードが生成される前に、デバイスの特性からデバイス名を構成するため、ある種のプログラムを走らせる。

操作

udevは一般的なカーネルデバイス管理ツールである。Linuxシステム上のデーモンとして動作する。新しいデバイスがシステムに装着され初期化された場合、またはデバイスがシステムから接続を解除された場合、カーネルはnetlink(英語版)ソケット経由でueventsをudevに送信し、udevはこれを受信する。システムはイベント条件と発見したデバイスの特性に対しマッチするルール一式(rulesファイル)を供給する。マッチングルールにより、うまくいけばデバイス名が決定され、デバイスノードが実際に作成される。そして、プログラムとデバイスのセットアップを行う。

udevのrulesファイルはカーネルサブシステム、カーネルデバイス名、デバイスの物理的配置、またはデバイスのシリアル番号のような特性などによるマッチングルールで構成される。また、rulesファイルにより、デバイス名を付けたり、またはシステムによって発見されたデバイスの順番を無視し、常に同一の名前になるよう特別なデバイス名を付ける目的で、外部のプログラムに情報を要求することも可能である。

かつて、Linuxシステムにおけるudevは通常、よりデバイス固有の処理を実行する目的で、ソケット経由でHALへイベントを送信する方法を採用していた(以前はDeviceKit(英語版)へもイベント送信可能であった)。例えば、HALはD-Bus IPCによるブロードキャストメッセージを関連するすべてのプロセスに送信することで、新しいハードウェアが装着されたことをシステムで稼働中の他のソフトウェアに通知する。この方法により、GNOMEKDEのようなデスクトップ環境では、システムに新たにUSBフラッシュドライブSDカードを装着すると、ファイルブラウズのためのソフトウェアが自動的に起動し、デバイスに存在するファイルをオープンすることができた[3]

2011年中盤頃から、とりわけKDE、GNOME[4]Xfce[5]各デスクトップ環境を採用しているLinuxディストリビューションはHALの採用を段階的に廃止しD-Busとの連携のみとなっている。以前から存在したHALの機能はudev自身への統合を進めており、一部は"udisks"や"upower"など別のソフトウェアに分離されている。
アーキテクチャー

udevは3つの部分から構成される:

ライブラリlibudevはデバイスの情報にアクセスするために利用される。

デーモンudevdはユーザー空間で動作し、仮想的な/devを管理する。

管理用コマンドudevadmは診断情報出力のために用いられる。

udevはnetlinkソケット経由でカーネルからの呼び出しを受ける。初期のバージョンでは、hotplugを使用し、その目的で/etc/hotplug.d/defaultにudev自身へのリンクを追加していた。
作者

udevはグレッグ・クロー=ハートマン(Greg Kroah-Hartman)とケイ・シェバース(Kay Sievers)によって開発され、その他多くの貢献者、中でもDan Stekloffによる多くの貢献が含まれている。
脚注^ “Releases”. GitHub. 2020年8月29日閲覧。
^ Greg Kroah-Hartman. “ ⇒udev and devfs - The final word (プレーンテキスト)”. 2008年1月24日閲覧。
^ “ ⇒Dynamic Device Management in Udev”. Linux Magazine (2006年10月1日). 2008年7月14日閲覧。
^ “ ⇒HALRemoval”. Debian. wiki.debian.org (2011年6月28日). 2011年9月13日閲覧。
^ “ ⇒Thunar-volman and the deprecation of HAL in Xfce” (2010年1月17日). 2011年9月13日閲覧。

外部リンク

kernel.orgに存在するudevの公式ページ

gitリポジトリ上の最新ソースコード

ケイ・シェバースによる近年のudev開発状況 (インターネットアーカイブ)

udevが使用するrulesファイルについて

udevのrulesファイルを作成するための簡単な紹介

udev ? グレッグ・クロー=ハートマンによる論文「devfsのユーザー空間における実装」

PySDM 記憶装置管理ツールとudevのrulesファイル作成ツール

デバイス管理入門

devtmpfsに関するLWN.netの記事

Gentoo udev ガイド Gentoo Linuxプロジェクト

Arch Linuxのドキュメント

SourceForge.JP Magazine に2003年から2005年にかけて掲載された記事

HotPlug

udevとdevfs

udevの概要

libsysfs

最近のudev事情

sysfs再び

この項目は、コンピュータに関連した書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めていますPJ:コンピュータ/P:コンピュータ)。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:14 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef