Linuxのすべてのデバイスがファイルまたはフォルダであるのはなぜですか?利点は何ですか? [閉鎖]

Linuxのすべてのデバイスがファイルまたはフォルダであるのはなぜですか?利点は何ですか? [閉鎖]

Linuxのすべてのデバイスがファイルまたはフォルダであるのはなぜですか?利点は何ですか?そして/dev/sda1文書化の必要性は何ですか?サイズは0バイトです。ハードドライブを取り付けた後、ファイルはフォルダに配置されます。そのような文書がなぜ必要ですか?/dev/sda2/dev/sda3/media/dev/sda1

ベストアンサー1

私は特にデータストアの「なぜLinux上のすべてのデバイスがファイルなのか」という質問に答えようとしています(質問ではこれを例として使用するためです)。 POSIXの哲学に対するより深い答えも興味深いかもしれません。

ここでの基本的な概念は、コンピュータのほとんどすべての作業が本質的にデータ移動に帰結することです。データを読み取り、変換、記録します。もちろん、実際の結果は、データを読み取るソースまたはデータを書き込むハードウェアによって完全に異なります。

歴史的に広く使用されているデータ記憶装置(ハードドライブと仮定)は、SCSIドライバによって処理されてきました。これが通常、ストレージの前にプレフィックスが付く理由ですsd。その後、単一の物理的な「ハードウェア」デバイスの論理的な「ソフトウェア」表現が必要です。最初から番号を付けるだけですa。一緒に接続されたハードドライブを呼び出すことができますsda

これで、データを読み込み、同様に書き込むことができる「ファイル」ができました。最初のバイトから読み込むと、/dev/sda実際にはそのデータ記憶装置の先頭にあるバイトを読み取ることになります(単純化のためにブロックサイズを無視してください)。実行して直接試すことができますsudo hexdump -C /dev/sda | less。もちろん、ほとんどの内容は肉眼で見るには歪んで見えます。
しかし、その横説説を解釈すると、分割がどこから始まります。そのパーティションでは、プログラム(ファイルシステムドライバ)は、データを解釈し、データを読み取ることができるフォルダとファイルを含む素晴らしいツリー構造を提供します。

面白い事実:これは、キーボードやマウス(読み取り可能なデータを「生成」する)などの他の種類のデバイス(文字デバイス)にも(さまざまなレベルで)適用されます。sudo hexdump -C /dev/input/mouse0
またはメインメモリ。
または、グラフィックメモリ(フレームバッファ):時には仮想コンソール(Ctrl + Alt + F1)のいずれかに切り替えて、グラフィックカードに次のようにランダムな数字を解釈して表示させることが好きです。sudo dd if=/dev/urandom of=/dev/fb0 bs=1M count=1

おすすめ記事