回答:
/dev
ツリーには含まれていデバイスノード与え、ユーザ空間へのアクセスをデバイスドライバ持ってお使いのOSの実行中kernel.¹すべてのPOSIXタイプのOSで/dev
ツリーを。
/proc
ツリーには、それだけで使用して、実行中の各プロセスについての情報を与えたのSystem VのUnix、発祥の/proc/$PID/stuff
スキームを。Linuxはそれを大幅に拡張し、実行中のカーネルのステータスに関するあらゆる種類の情報を追加しました。これらの読み取り専用情報ファイルに加えて、Linux /proc
には実行中のカーネルの状態を変更できる書き込み可能な仮想ファイルもあります。BSDタイプのOSは一般にまったく持っていない/proc
ので、ここにあるものの多くは移植性がありません。
Linuxでのこの混乱の解決策/proc
は/sys
です。理想的には、/proc
ツリーに表示されたすべての非プロセス情報は/sys
今までに移動しているはずですが、歴史的な慣性により多くのものがに保持されてい/proc
ます。多くの場合、実行中のカーネルを変更するには2つの方法があります。/proc
下位互換性のために保持されている古い方法と、現在使用/sys
しているはずの新しい方法です。²
脚注:
そこいくつかでもある/dev
ようなハードウェアデバイスに対応していないエントリは、/dev/null
、/dev/random
、と/dev/tty
。これらは仮想デバイスであり、ユーザー空間プログラムが実行中のドライバー以外のカーネルの他の部分とデバイスのように通信できるようにします。
原則として、はシステムのリソースを管理する内部カーネルデータ構造をミラー/sys
化するので/proc
、より厳密に整理される傾向がありますが、長年にわたって有機的に成長し、古いインターフェイスを使用するプログラムがあるため、古い疑わしい設計決定は現在変更できません。はより明確なデザインから始まり、ほど歴史的な手荷物を引きずる必要はありません。/sys
/proc
/sys
/proc