プロセス情報はRAMのカーネルに保存され、/procはセカンダリストアに保存されるため、プロセス情報はなぜ/procに保存されますか?

プロセス情報はRAMのカーネルに保存され、/procはセカンダリストアに保存されるため、プロセス情報はなぜ/procに保存されますか?

/proc は Linux ルートディレクトリにあるディレクトリです。プロセスに関する情報が含まれています。ただし、実際にはプロセステーブルとその内容はすべてRAMのカーネルに保存されます。私の問い合わせに答えてください。私はここに初めて来たので、馬鹿のように聞こえるかもしれません。

ベストアンサー1

~からマニュアルページ:

proc ファイルシステムは、カーネルデータ構造へのインタフェースを提供する擬似ファイルシステムです。

/ procはセカンダリストアではありません。 /sysと同様に、/procはカーネルウィンドウへのアクセスを提供するファイルシステムです。/proc/1234/cmdlineたとえば、ディスクファイルではありません。インデックスノード以外はスペースを占有しません。そのファイルを読み込むと、実際にカーネルメモリにアクセスします。

/procの一部のファイルに書き込もうとすると、/procが通常のファイルシステムではないことがわかります。ルートとして試してみてくださいecho blabla > /proc/$$/cmdline。あなたは次のような挨拶を受けるでしょう。エコ:書き込みエラー:無効な引数cmdlineルートでさえ読み取りのみ可能です。同様に、/sysには書き込みのみ可能なファイルが含まれています。たとえば、試してみてcat /sys/block/sda/device/deleteください(ただし、書き込まないでください。論理的にシステムからsdaデバイスを削除します。誤ってこれを実行した場合は、最も簡単な回避策は再起動です)。

同様のケースがあります/dev/kmem。これはファイルシステムではなく、カーネルメモリへのアクセスを提供するデバイスファイルです。ストレージデバイスを意味しません。

警告する:/procと/sysの特定のファイルを書き込んだり読んだりするのは危険です。

おすすめ記事