のすべてのファイル/dev
は特別なファイルです...それらはコンピューターのデバイスを表します。それらはmknod
syscallで作成されました。私の質問は、この特別なファイルの作成に使用されたマイナー番号とメジャー番号を知るにはどうすればよいですか?
5 に答える
このリストはLANANA Linux Device Listと呼ばれ、 Alan Cox によって管理されています。
最新のコピーは、オンライン (直接リンク) または Linux ソースにあります。カーネル ツリーでのファイル名はDocumentation/devices.txt
.
/dev
ノード(またはそのデバイスノード)を作成したメジャー番号とマイナー番号を確認するには、次のオプションを使用ls
します。-l
22:26 jsmith@undertow% ls -l /dev/xvd?
brw-rw---- 1 root disk 202, 0 Nov 1 20:31 /dev/xvda
brw-rw---- 1 root disk 202, 16 Nov 1 20:31 /dev/xvdb
brw-rw---- 1 root disk 202, 32 Nov 1 20:31 /dev/xvdc
この例で202
は、 は 3 つのデバイスのメジャー番号であり0
、 、16
、および32
はマイナーです。左側のb
は、ノードがブロック デバイスであることを示します。代替手段はc
、キャラクターデバイスです。
crw-rw-rw- 1 root tty 5, 0 Nov 22 00:29 /dev/tty
$ ls -l /dev/fd0 /dev/null brw-rw---- 1 ルート フロッピー 2, 0 11 月 22 日 19:48 /dev/fd0 crw-rw-rw- 1 ルート ルート 1、3 Nov 22 19:48 /dev/null $ stat -c '%n: %F, メジャー %t マイナー %T' /dev/fd0 /dev/null /dev/fd0: ブロック スペシャル ファイル、メジャー 2 マイナー 0 /dev/null: キャラクタ特殊ファイル、メジャー 1 マイナー 3
ほとんどのデバイス番号は固定されています (つまり/dev/null
、常に character device になります1:3
) が、Linux では動的に割り当てられるものもあります。
$猫 /proc/devices キャラクターデバイス: ... 10 その他 ... ブロック デバイス: ... 253mdp 254 デバイスマッパー $猫/proc/misc ... 57 デバイスマッパー ...
たとえば、このシステムでは、 の残りの部分はであり、これはブート サイクルごとに異なる可能性があります。また、モジュールがロード/アンロードされ、デバイスが追加/削除された場合でも異なります/dev/mapper/control
。c:10:57
/dev/mapper/*
b:254:*
これらのデバイス登録については、 で詳しく調べることができます/sys
。
$ readlink /sys/dev/block/2:0 ../../デバイス/プラットフォーム/フロッピー.0/ブロック/fd0 $ cat /sys/devices/platform/floppy.0/block/fd0/dev 2:0 $ readlink /sys/dev/char/1:3 ../../devices/virtual/mem/null $ cat /sys/devices/virtual/mem/null/dev 1:3
に依存しない代替案stat
:
$ cat /sys/class/*/random/dev
1:8