UNIX では、 "デバイス" ということばは、コンピュータにつながった周辺機器すべてを指す。たとえばハードディスク、フロッピー、 CD-ROM ドライブ、サウンドカードやビデオカード、シリアルポートやパラレルポートなどなど。それぞれのデバイスには /dev/hda みたいな名前がついてる。いちばんよく出てくるデバイス目を以下に挙げる (これは Linux 用だ。ほかの UNIX は、ちょっとちがったデバイス名を使っているかもしれない)。
/dev/hd* (ただし *=a,b,c, ...): これはIDE デバイス。たとえばハードドライブ、 CD-ROM ドライブや ZIP ドライブ。 /dev/hda は、これが最初の IDE コントローラ(普通は最初のハードドライブ、ウィンドウズでなら C: のマスタードライブだ、ということを示す。 /dev/hdb は最初のコントローラのスレーブ(二代目のハードディスクか CD-ROM) などという具合だ。ZIPドライブについては以下の メモ も参照。
/dev/sd* (ただし *=a,b,c, ...): これは SCSI デバイスで、ハードディスクの場合が多い。
メモ | |
---|---|
IDE とか SCSI とかいう略称が目新しい人のために、ちょっと説明。ハードドライブなんかのインターフェースには二種類ある。IDE (そしてその兄弟分の EIDE, ATAPI, など) と SCSIだ。SCSI のほうがパフォーマンスは高いけれど値段も張るので、主にサーバに使われる。自分のドライブがわからなければ、たぶんそれは IDE だろう。 |
/dev/fd* (ただし *=0,1, ...) はフロッピードライブだ。 /dev/fd0 が最初のドライブだ(ウィンドウズでは A: にあたる)。 /dev/fd1 が二番目のドライブ ( B: ), という具合。
/dev/lp* (ただし *=0,1, ...) はパラレルポートだ。ふつうは主にプリンタをつなぐのに使う。 /dev/lp0 はウィンドウズの LPT1 に対応する。 /dev/lp1 は LPT2 、という具合。
/dev/ttyS* (ただし *=0,1,...) はシリアルポートだ。ふつうはマウスやモデムをつなぐのに使う。 /dev/ttyS0 はウィンドウズでは COM1 にあたり、 /dev/ttyS1 は COM2 、という具合。
/dev/audio と /dev/dsp :この2つのデバイス名は、サウンドカード用だ(この2つは別物だ。ちがった種類のサウンドファイルを扱う)。
さらに、 /dev/floppy, /dev/modem 、 /dev/cdrom といったシンボリックリンクが、実際にそれぞれフロッピードライブやモデムや CD-ROM ドライブに対応したデバイス名に張られていることが多い。
こういうデバイス名を使わなきゃいけないことはほとんどない。特にドライブ状のファイルにアクセスしたいときでも、デバイス名 (たとえば /dev/fd0 )は使わない。むしろ、まずそのデバイスをマウントして、その中身がメインディレクトリ・ツリーのサブディレクトリとして表示されるようにする (たとえば /mnt/floppy )。そしてそのディレクトリを使ってファイルにアクセスするのだ。詳しくは ドライブのマウント/アンマウント の節 を参照。実際にデバイス名を使うことになるほとんど唯一の場合というのは、新規にインストールしたプログラムの設定のときだ。たとえば、ファックスソフトは、ファックスモデムのデバイス名をきいてくるかもしれない(この場合には、 /dev/ttyS1 みたいな実際のデバイス名を入れるか、あるいは /dev/modem みたいなシムリンクを使ってもいい)。
それと、お楽しみ: /dev/null というファイルがあって、これは "ブラックホール" みたいなものだ。ここにどんな情報を送っても、二度と戻ってこない。だからエラーメッセージがうざいと思ったら、それを /dev/null にリダイレクトしちゃおう -:)。
ハードディスク(またはその手のデバイス)は、物理的には同じディスク上にあっても、実質的に別々のディスクとしてふるまう部分に分割してやれる。こういう部分を "パーティション" と呼ぶ (Windows だと "論理ディスク" という言い方をする)。たとえば、ハードディスクをいくつかに区切って、それぞれに別のオペレーティングシステムを入れることもできる。それぞれのパーティションを別々にフォーマットできる。ハードドライブのパーティションを切るのは、ふつうはオペレーティングシステムのインストール時にやる。詳しくはインストールガイドを参照のこと。
ハードドライブがパーティションに切られていたら、それぞれのパーティションは別々のドライブと見なされる。たとえばハードドライブが /dev/hda なら、このドライブの最初のパーティションは /dev/hda1 になるし、二番目は /dev/hda2 等々、というわけ。