/ devディレクトリはLinuxでデバイスファイルを保存できる唯一の場所ですか?

/ devディレクトリはLinuxでデバイスファイルを保存できる唯一の場所ですか?

私はディレクトリがデバイス/devファイルを保存していることを知っていますが、ディレクトリは/devデバイスファイルを保存できる唯一の場所ですか、それともデバイスファイルがディレクトリに保存されるのは慣例ですか/dev

答え1

これは単なる習慣です。実際には、chrootデバイスエントリは、環境内またはコンテナ(dockerなど)の他の場所に存在できます。

デバイスアイテムをデバイスアイテムにするには?タイプ名前以外の項目

たとえば、次のようになります。

% ls -ld /dev/vda
brw-rw---- 1 root disk 253, 0 May 26 07:00 /dev/vda

最初の「b」は、これがブロックデバイスであることを示します。 「253」はメジャーデバイス番号、「0」はマイナーデバイス番号です。この場合

% grep virt /proc/devices
253 virtblk

したがって、マスターデバイス253は仮想ブロック層に関連付けられる。

ここでは、「vda」という名前が重要ではないことがわかります!

私は本当にできます

sudo mknod /tmp/foo b 253 0

これで/tmp/fooまったく同じデータにアクセスできます。

% sudo dd if=/dev/vda bs=256b count=1 | sum
....
40545   128

% sudo dd if=/tmp/foo bs=256b count=1 | sum
....
40545   128

一般名は、人と構成ファイルにとって重要です(たとえば、/dev/tty1Linuxシステムの最初の仮想コンソールの一般名、/dev/ttyS0最初のシリアルポートの一般名など)。ただし、タイプ(ブロック/文字)とメイン/これはうまくいきます。

関連情報