すべてのLinuxデバイスファイルは仮想ファイルですか?

すべてのLinuxデバイスファイルは仮想ファイルですか?

次の2つのファイルは仮想ファイルです。

/dev/sda1
/proc/cpuinfo

私はこれが/dev/sda1デバイスファイル(デバイスドライバを指す)であることを知っているので、このファイルにアクセスすると実際にデバイスドライバにアクセスすることになります。

しかし、/proc/cpuinfoこのファイルもデバイスファイルですか?それでは、他の仮想ファイルはすべてLinuxデバイスファイルですか?

ベストアンサー1

以下に説明するように、すべてのファイルは/procファイルシステムで提供されます。procマンページ:

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

これは、カーネルが保存するデータへのアクセスを提供するためにカーネルによって提供される特別なファイルシステムです。例えばCPU情報(cpuinfo)、プロセス情報(各プロセス識別子に対応する数字ディレクトリにあります/proc)...その中のファイルはデバイスファイルではなく、カーネルから情報を取得するために関数呼び出しを実行するための有効なエンドポイントです。

他の特別なファイルシステムにはdevtmpfssysfs

したがって、いいえ、すべての「仮想」ファイルはデバイスファイルではありません。デバイスノードが物理ファイルとして存在するため、デバイスファイルはまったく仮想ではありません。ほとんどの人がファイルについて考えるのと同じようには機能しませんが、それでもファイルです。

次の質問は、すべてをよりよく理解するのに役立ちます。

おすすめ記事