このドキュメントで説明するソフトウェアは、Extended SupportまたはSustaining Supportのいずれかにあります。 詳細は、https://www.oracle.com/us/support/library/enterprise-linux-support-policies-069172.pdfを参照してください。
Oracleでは、このドキュメントに記載されているソフトウェアをできるだけ早くアップグレードすることをお薦めします。
/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です。sda1
とsda2
はこのディスクのパーティションで、メジャー番号はsda
と同じ(8)ですが、マイナー番号は1と2です。
キャラクタ・デバイスではデバイスに対するデータのストリーミングがサポートされ、通常、データはバッファリングされず、デバイス上のデータへのランダム・アクセスも許可されません。 カーネルは、キャラクタ・デバイスに対して、一度に1バイトずつデータの書込みまたは読取りを行います。 キャラクタ・デバイスの例として、キーボード、マウス、端末、擬似端末およびテープ・ドライブがあります。tty0
とtty1
は端末デバイスに対応するキャラクタ・デバイス・ファイルで、ユーザーはシリアル端末または端末エミュレータからログインできます。 これらのファイルのメジャー番号は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
null
、random
、urandom
および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)
の各マニュアル・ページを参照してください。