回答:
/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