procfsとsysfsの違いは何ですか?

procfsとsysfsの違いは何ですか?

procfsとsysfsの違いは何ですか?なぜファイルシステムで作られたのですか?私が理解したのは、procはシステムで実行されているプロセスに関する即時情報を保存することだけです。

ベストアンサー1

最初(UNIX時)に、プログラムがシステムで実行されているプロセスを見つける方法は、カーネルメモリから直接プロセス構造を読み取ることでした(/dev/memを開き、生データを直接解釈する)。これが最初の「ps」コマンドがどのように機能するかです。時間が経つにつれて、いくつかの情報はシステムコールを介して提供されます。

しかし、/dev/memを介してシステムデータをユーザー空間に直接公開するのは悪い形式です。されたデータにアクセスします。プロセス属性を理解します。これは/ procファイルシステムです。 /proc を使用すると、カーネルの基本データ構造が変更されても、インタフェースと構造 (ディレクトリとファイル) を同じに保つことができます。以前のシステムよりも脆弱性がはるかに低く、スケーラビリティに優れています。

/ procファイルシステムは、元のプロセス情報と「ps」、「top」、「free」などのシステムユーティリティに必要ないくつかの主要なシステムプロパティを公開するように設計されています。ただし、使用が非常に簡単なため(カーネルやユーザースペースの観点から)、システム全体の情報を収集する章になります。また、設定を調整し、カーネルやさまざまなサブシステムの動作を制御するために使用される読み取り/書き込みファイルの取得を開始します。しかし、制御インタフェースの実装方法は一時的であり、/procはすぐに混乱しました。

sysfs(または/ sysファイルシステム)は、この混乱に構造を追加し、カーネルからユーザースペースにシステム情報と制御点(設定可能なシステムとドライバのプロパティ)を公開する統合された方法を提供するように設計されています。ドライバを登録すると、カーネルのドライバフレームワークはドライバの種類とそのデータ構造の値に基づいて/ sysの下にディレクトリを自動的に作成します。つまり、特定の種類のドライバはすべて、sysfsを介して公開されるのと同じ要素を持ちます。

多くのレガシーシステム情報と制御点はまだ/ procからアクセスできますが、すべての新しいバスとドライバはsysfsを介して情報と制御点を公開する必要があります。

おすすめ記事