デバイス・ファイルとは,ハード・ディスクなどの周辺装置(デバイス)を制御する際に用いられる特別なファイルです。
デバイス・ファイルはすべて,/dev以下に配置されています。/devで,lsコマンドを実行した結果(写真)を見ると,ファイル情報の先頭が「b」または「c」になっています。通常のファイルは「-」,ディレクトリは「d」,シンボリック・リンクは「l」ですから,これらとは別の何か特別なファイルであることは分かります。実際に,デバイス・ファイルは通常のファイルとは異なり,デバイス番号など,ごく少数のデータだけを保持しています。
プログラムからこれらのファイルに対してopen()などのシステム・コールを用いてアクセスすると,カーネル内に組み込まれたデバイス・ドライバが呼び出され,ファイルの替わりにデバイスにアクセスします。
アクセスの際,バッファを用いるものをブロック・デバイスと呼び,用いないものをキャラクタ・デバイスと呼びます。ls -alの実行結果で「b」とある「sda1」(SCSI接続のハード・ディスク)などはブロック・デバイス,「c」とある「tty1」(端末)などはキャラクタ・デバイスです。
ユーザーがコマンド上でデバイス・ファイルを指定する必要がある場面もあります。例えば,フロッピ・ディスクをマウントする場合は,以下のようなコマンドを使います。
$ su
# mount -t ext2 /dev/df0 /mnt/floppy
ここでは,mount -tの後に,「ファイル・システムの種類」,「デバイス・ファイル名」,「マウント・ポイント」の順に引数を与えています。