このドキュメントで説明するソフトウェアは、Extended SupportまたはSustaining Supportのいずれかにあります。 詳細は、https://www.oracle.com/us/support/library/enterprise-linux-support-policies-069172.pdfを参照してください。
Oracleでは、このドキュメントに記載されているソフトウェアをできるだけ早くアップグレードすることをお薦めします。

機械翻訳について

6.1 デバイス・ファイルについて

/devディレクトリにはデバイス・ファイル(デバイス特殊ファイルデバイス・ノードと呼ばれることがあります)が格納され、このファイルによって周辺機器(ハード・ディスクなど)、周辺機器上のリソース(ディスク・パーティションなど)および擬似デバイス(乱数ジェネレータなど)へのアクセスが可能になります。

/devディレクトリには複数のサブディレクトリ階層が含まれ、各階層には特定タイプのデバイスに関連するデバイス・ファイルが保持されます。 たとえば、/dev/disk/id-by-uuidディレクトリには、ディスクの汎用一意識別子(UUID)に従って指定されたハード・ディスクのデバイス・ファイルが格納されます。 このようなサブディレクトリ内のデバイス・ファイルは、実際には/dev内のデバイス・ファイルへのシンボリック・リンクとして実装されます。 /dev内のファイルを使用しても、/dev/disk/id-by-uuidにリストされたファイルに対応するリンクを使用しても同じデバイスにアクセスできます。

ls -lコマンドを使用して/dev下のファイルをリストすると、一部のデバイス・ファイルは、タイプb (ブロック)またはタイプc (キャラクタ)として表示されます。 これらのデバイスには、ファイル・サイズではなく、デバイスに関連する番号のペアが表示されます。 これらのメジャー番号とマイナー番号によって、デバイスがシステムに対して識別されます。

# ls -l /dev
total 0
crw-rw----. 1 root    root     10,  56 Mar 17 08:17 autofs
drwxr-xr-x. 2 root    root         640 Mar 17 08:17 block
drwxr-xr-x. 2 root    root          80 Mar 17 08:16 bsg
drwxr-xr-x. 3 root    root          60 Mar 17 08:16 bus
lrwxrwxrwx. 1 root    root           3 Mar 17 08:17 cdrom -> sr0
drwxr-xr-x. 2 root    root        2880 Mar 17 08:17 char
crw-------. 1 root    root      5,   1 Mar 17 08:17 console
lrwxrwxrwx. 1 root    root          11 Mar 17 08:17 core -> /proc/kcore
drwxr-xr-x. 4 root    root         100 Mar 17 08:17 cpu
crw-rw----. 1 root    root     10,  61 Mar 17 08:17 cpu_dma_latency
drwxr-xr-x. 6 root    root         120 Mar 17 08:16 disk
brw-rw----. 1 root    disk    253,   0 Mar 17 08:17 dm-0
brw-rw----. 1 root    disk    253,   1 Mar 17 08:17 dm-1
...
crw-rw-rw-. 1 root    root      1,   3 Mar 17 08:17 /dev/null
...
drwxr-xr-x. 2 root     root          0 Mar 17 08:16 pts
...
crw-rw-rw-. 1 root     root     1,   8 Mar 17 08:17 random
...
brw-rw----. 1 root     disk     8,   0 Mar 17 08:17 sda
brw-rw----. 1 root     disk     8,   1 Mar 17 08:17 sda1
brw-rw----. 1 root     disk     8,   2 Mar 17 08:17 sda2
...
lrwxrwxrwx. 1 root     root         15 Mar 17 08:17 stderr -> /proc/self/fd/2
lrwxrwxrwx. 1 root     root         15 Mar 17 08:17 stdin -> /proc/self/fd/0
lrwxrwxrwx. 1 root     root         15 Mar 17 08:17 stdout -> /proc/self/fd/1
...
crw--w----. 1 root     tty      4,   0 Mar 17 08:17 tty0
crw--w----. 1 root     tty      4,   1 Mar 17 08:17 tty1
...
crw-rw-rw-. 1 root     root     1,   9 Mar 17 08:17 urandom
...
crw-rw-rw-. 1 root     root     1,   5 Mar 17 08:17 zero

ブロック・デバイスでは、データへのランダム・アクセス、データ用のメディアの検索がサポートされ、通常は、データの書込みまたは読取り中にデータのバッファリングが可能です。 ブロック・デバイスの例として、ハード・ディスク、CD-ROMドライブ、フラッシュ・メモリー、その他のアドレス可能なメモリー・デバイスがあります。 カーネルは、ブロック・デバイスに対して、特定のバイト数のブロック単位でデータの書込みまたは読取りを行います。 出力例のsdaはハード・ディスクに対応するブロック・デバイス・ファイルで、メジャー番号が8、マイナー番号が0です。sda1sda2はこのディスクのパーティションで、メジャー番号はsdaと同じ(8)ですが、マイナー番号は1と2です。

キャラクタ・デバイスではデバイスに対するデータのストリーミングがサポートされ、通常、データはバッファリングされず、デバイス上のデータへのランダム・アクセスも許可されません。 カーネルは、キャラクタ・デバイスに対して、一度に1バイトずつデータの書込みまたは読取りを行います。 キャラクタ・デバイスの例として、キーボード、マウス、端末、擬似端末およびテープ・ドライブがあります。tty0tty1は端末デバイスに対応するキャラクタ・デバイス・ファイルで、ユーザーはシリアル端末または端末エミュレータからログインできます。 これらのファイルのメジャー番号は4で、マイナー番号は0と1です。

擬似端末セカンダリ・デバイスは、ソフトウェアと対話するために実際の端末デバイスをエミュレートします。 たとえば、ユーザーは/dev/tty1などの端末デバイスにログインし、この端末デバイスでは疑似端末プライマリ・デバイス/dev/pts/ptmxを使用して、基礎となる擬似端末デバイスと対話します。 擬似ターミナルのセカンダリ・サーバーおよびプライマリの文字デバイス・ファイルは、/dev/ptsディレクトリにあります:

# ls -l /dev/pts
total 0
crw--w----. 1 guest tty  136, 0 Mar 17 10:11 0
crw--w----. 1 guest tty  136, 1 Mar 17 10:53 1
crw--w----. 1 guest tty  136, 2 Mar 17 10:11 2
c---------. 1 root  root   5, 2 Mar 17 08:16 ptmx

stdin (標準入力)など一部のデバイス・エントリは、procファイル・システムのselfサブディレクトリを介してシンボリック・リンクされます。 これらが実際に参照する擬似端末デバイス・ファイルは、プロセスのコンテキストによって異なります。

# ls -l /proc/self/fd/[012]
total 0
lrwx------. 1 root root 64 Mar 17 10:02 0 -> /dev/pts/1
lrwx------. 1 root root 64 Mar 17 10:02 1 -> /dev/pts/1
lrwx------. 1 root root 64 Mar 17 10:02 2 -> /dev/pts/1

nullrandomurandomおよびzeroなどのキャラクタ・デバイスは、物理ハードウェアではなくソフトウェアに実装された仮想機能にアクセスできる擬似デバイスの例です。

/dev/nullはデータ・シンクです。 /dev/nullに書き込むデータは実質的に消去されますが、書込み操作は成功します。 /dev/nullから読み込むとEOF (end-of-file)が返されます。

/dev/zeroは無制限のゼロ値バイトのデータ・ソースです。

/dev/randomおよび/dev/urandomは、擬似ランダム・バイトのストリームのデータ・ソースです。 高エントロピの出力を維持するために、エントロピ・プールにノイズの十分なビットが含まれない場合は/dev/randomがブロックされます。/dev/urandomはブロックされないため、その出力のエントロピは/dev/randomのエントロピほど一貫して高くありません。 ただし、/dev/random/dev/urandomはいずれも、ミリタリーグレードの暗号化のようなセキュアな暗号化という目的に対して十分にランダムであるとはみなされません。

エントロピ・プールのサイズ、および/dev/randomのエントロピ値は、/proc/sys/kernel/random下の仮想ファイルから検出できます。

# cat /proc/sys/kernel/random/poolsize 
4096
# cat /proc/sys/kernel/random/entropy_avail 
3467

詳細は、null(4)pts(4)およびrandom(4)の各マニュアル・ページを参照してください。