![/devが/(ルートディレクトリ)のサブディレクトリであるのはなぜですか? [閉鎖]](https://linux33.com/image/7173/%2Fdev%E3%81%8C%2F%EF%BC%88%E3%83%AB%E3%83%BC%E3%83%88%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%EF%BC%89%E3%81%AE%E3%82%B5%E3%83%96%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%81%A7%E3%81%82%E3%82%8B%E3%81%AE%E3%81%AF%E3%81%AA%E3%81%9C%E3%81%A7%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E9%96%89%E9%8E%96%5D.png)
なぜ(root)のサブディレクトリですか/dev
?/
に表示されているコンピュータのハードドライブにインストールされているファイルシステムのすべてではないため、質問します/dev
。それでは、dev
なぜルートディレクトリではないのですか?これにより、すべてのディスクがそこに表示されます。
答え1
私はUnix V1が単一のディスク上で実行されると信じています。それは本当ではありません。仮想FS。名前空間のルートでシステムファイルシステムを見つけることができます/
。間接参照は必要ありません。;いいえSYSTEMROOT
=c:/windows
変数。覚えておいて、これは手書きのアセンブリコードです。ミニマリストアイデアは非常に便利です。
ここのアイデアはしばしばエレガンスとして説明されています。。/bin/ls
実行中のシステムで実行するか、または読みたいです。毎回/etc/motd
ディスクがどのように呼び出されるか(DOS ')考える必要はありません。C:
DOS / CPMのドライブ文字は、実際に階層化されたファイルシステムの実装よりも先にあります。ただし、フロッピーディスク上のファイルシステムを多用するシステムには、さまざまな長所と短所があるユーザーインターフェイス機能と考えることもできます。実際にDOSシステムディスクを実行できます。それを取り除く、続いてDOSシェルを使用して2番目のディスクでプログラムを実行します。したがって、システムファイルシステムは常にマウントされていないため、システムファイルシステムの特殊ファイルに依存しないドライブを参照する方法が必要です。
ドライブ文字は現代のシステムとあまり関係がないようです。ここではUnixが少し満足しています。 :)
Unix V1には、すでに人とコードが内部化されているのと/dev
同じパスがあります。/etc
最初からmount
「分離ファイルシステム」にも使用されます。
(後のリリースでは2番目のディスクを使用しました。2番目のbinディレクトリをサポートするために/usr
検索パス(環境変数)が追加されました。)PATH
/usr/bin
標準経路を乱すと、しばしば過度の極化が生じる。(妥当な理由があるが)。時間が経つにつれていくつかの改革が行われ、Linuxでこれを確認できます。しかし、C:
誰もがすべてを捕まえるべき説得力のある理由を見つけることができません。。
答え2
これは合意です。単に呼び出すファイルシステム階層標準。もうやることはありません。
答え3
見つかったデバイスファイルが/dev
実際のファイルではないためです。マウントポイント*。これは便利なファイルシステムベースのアクセス参照です。デバイス自体。以下に同様の階層を見ることができます/sys
。特にviewです/sys/block
。
なぜ/dev/sda
他のパーティションのサブディレクトリを持つディレクトリとそのパーティションのファイルシステムの内容の代わりに特別な種類のファイルを使用するのですか?それらのほとんどはただだから。 Unixデザイナーできる以前も同様のことがありましたが、これが彼らがすることです。
なぜ/dev
デバイスファイルをに入れないのですか/
?まあ、そこにはたくさんのファイルがあります。醜いように見えるでしょう。あなたできるしかし、必要なら行ってください。たとえば、以下を見てください/dev/sda
。
$ ls -l /dev/sda
brw-rw----. 1 root disk 8, 0 Apr 27 23:18 /dev/sda
先頭は、b
これがブロックデバイスであることを示します。 「8,0」は主要および補助装置番号- デフォルトでは、カーネルが特定のドライバに対応することを知っている事前定義された魔法の数です。
好きなところどこでも作れます。たとえば、
$ sudo mknod /tmp/this-is-my-main-disk-drive b 8 0
$ ls -l /tmp/this-is-my-main-disk-drive
brw-r--r--. 1 root root 8, 0 May 1 14:31 /tmp/this-is-my-main-disk-drive
$ sudo fdisk -l /tmp/this-is-my-main-disk-drive
Disk /tmp/this-is-my-main-disk-drive: 477 GiB, 512110190592 bytes, 1000215216 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
[...]
しかし、今システムの誰もがデバイスを読むことができるので、深刻なセキュリティホールが発生しました。しないでください。
* まあ、いくつかのことを除いて、単純さのために今は無視します。