/media/cdrom
マウントポイントの規則です 、 /dev/cdrom
の間 前者に装着できる特別な装置です。
目的が異なるため、両方が必要です。ほとんどのアプリケーションは特別なデバイスから直接読み取るのではなく、ファイルシステム (マウントされているもの) から読み取ることができます
(私の質問に対する多くの回答をありがとう。しばらくウェブを検索した後、私自身の理解を共有したいと思います。)
ここによると:
<ブロック引用>Unix ライクなオペレーティング システムでは、デバイス ファイルまたは特殊ファイルはデバイス ドライバのインターフェースです。 あたかも通常のファイルであるかのようにファイル システムに表示されます。
ここによると:
<ブロック引用>マウント コマンドは、ファイル システムを接続する役割を果たします 大きなファイル ツリーにあるデバイスで見つかりました。
したがって、ここには 2 つの異なるレベルのソフトウェア抽象化があると思います:
-
/dev/cdrom
デバイススペシャルファイルです。 CD-ROM ハードウェアをブロック IO デバイスとして抽象化します。この抽象化は、デバイス ドライバーによって提供されます。 -
/media/cdrom
ファイルシステムのマウントポイントです。そのため、CD-ROM ハードウェアのより高いレベルの抽象化、つまりファイル システムを提供します。 ISO-9660 ファイル システムなど。そして、この抽象化はファイル システム ドライバーによって提供されます。
したがって、基本的に、2 つの異なる抽象化レベルに対して 2 つの異なるファイルの場所があります。また、さまざまなシナリオでは、別のシナリオが必要になる場合があります。 Windows などの他の OS も、Linux が単一のファイル階層に統合するだけで、さまざまなオプションを提供していると思います。
(たぶん、Linux で /dev/cdrom
と相互作用する C コードを書いて、実験を行うべきだと思います。 そして /media/cdrom
.そして、すべてがどのように進行するかを見てください。)
(私は学び続け、必要に応じて理解を深めます。)
/dev/cdrom
の両方があるのはなぜですか と /media/cdrom
?
/dev/sda2
の両方があるのはなぜですか と /home
?
基本的には /dev/cdrom
ファイルです .アクセスすると、CD 上の個々のビットとバイトにアクセスします (存在する場合)。一方、/media/cdrom
フォルダです .アクセスすると、ファイルにアクセスします
同様に、/dev/sda2
最初のハードドライブの 2 番目のパーティションの生の内容を表します。たとえば、パーティションをフォーマットしたい場合は、これに直接書き込みます。 (mkfs
プログラムは文字通り /dev/sda2
を開きます または何でも、それに特定のビットパターンを書き込みます。)次にマウントします。 /dev/sda2
たとえば、/home
、実際のファイルにアクセスできるようになりました .マウント ポイントを介してファイルにアクセスすると、ファイル システム ドライバーは基になるデバイス ファイルの読み取りと書き込みを行います。
これはまさに Unix のやり方です。