私は読んでいたウデブ。 「概要」セクションでは、Wikipediaは、「/ devディレクトリのデバイスノードが静的ファイルセットである既存のUnixシステムとは異なり、Linux udevデバイスマネージャは、デバイスに実際に存在するノードのみを動的に提供します。システム」。
「静的ファイルセット」とはどういう意味ですか?これは常にファイルがありますが、必ずしも/dev
実際のデバイスを指しているわけではありませんか?
ベストアンサー1
私はあなたがこの段落に言及していると仮定します。
/ devディレクトリのデバイスノードが静的ファイルセットである既存のUnixシステムとは異なり、Linux udevデバイスマネージャは、システムに実際に存在するデバイスに対してのみ動的にノードを提供します。 devfsはかつて同様の機能を提供しましたが、Greg Kroah-Hartmanはいくつかの理由を引用しています。サムdevfsと比較して実装を好みます。
/dev
最初の文では、デバイスが静的に作成され、再起動後も持続する他のUnixシステムを参照します。以前のバージョンのLinux(2.4カーネルなど)はこのように動作しましたが、最新バージョンではこれ以上機能しません。他のUnixには通常、インストール中に共通のデバイスファイルセットが含まれているため、追加のファイルを手動で作成する必要はほとんどありません。
2.4では、このmknod
コマンドを使用して必要なデバイスファイルを手動で生成できます。たとえば、
$ mknod ./dev/random b 12 5
メモ:これは、/dev/random
ファイル記述子をメジャー番号12とマイナー番号5のブロックデバイスとして生成することを意味します。
/ devの下のデバイスファイル
OPはディレクトリの全体的な機能について次の質問をしました/dev
。彼の質問は次のとおりです。
再起動後にデバイスファイルを保存する技術的な方法に関する詳細を追加できますか?ディスクに物理的にどのように保存されますか?特別なファイルシステムサポートが必要ですか?
この問題を調査しながら、次から始めるべきだと思いました。最初からLinuxプロジェクト/dev
最新バージョンのLinuxカーネルで管理する方法の基本概念を学びます。以前は(カーネルバージョン2.4以前を考えてみてください)、/dev
ディレクトリは実際にはHDDのスペースを占める静的ファイルのセットでしたが、Linuxの出現によりもはやそうではudev
ありませsysfs
んでした。
従来、これらの特殊ファイルは、インストール中にコマンドを使用して展開によって生成されますmknod
。近年、Linuxシステムは実行時にudev
これらのファイルを管理し始めました/dev
。たとえば、udev
デバイスが検出されるとノードが作成され、デバイスが削除されると削除されます(実行時にホットプラグデバイスを含む)。これにより、/dev
ディレクトリ(ほとんど)には、存在できるデバイスではなく、現在のシステムに実際に存在するデバイスのエントリのみが含まれます。
心配しないでください/dev
。ディレクトリは再起動udev
と再起動によって完全に管理されますsysfs
。