・イゥ`・ ・ケ・・テ・ネ

デバイスファイルdevice file】 スペシャルファイル / special file

デバイスファイルとは、オペレーティングシステム(OS)の入出力機能の一つで、コンピュータに接続した周辺機器などをファイルシステム上のファイルのように扱い、ファイルの読み書きと同じ手順でデータ入出力や制御をできるようにしたもの。

 

LinuxなどのUNIX系OSで一般的に利用されている仕組みで、コンピュータに装置を接続し適切なデバイスドライバを導入すると、当該装置がファイルシステム上で「/dev/」ディレクトリ配下のファイルとして出現する。シェルプログラムなどからは通常のファイル入出力と同じ機能を通じてアクセスすることができる。

このうち、端末(tty)やモデムのように一文字ずつ逐次的、対話的にデータを伝送するものを「キャラクタデバイス」(character device)、ストレージ(外部記憶装置)のように装置内の位置を指定してブロック単位でデータを伝送するものを「ブロックデバイス」(block device)という。

また、特殊な入出力機能をデバイスファイルの形で実装し、対応する物理的な装置は存在しないものを「疑似デバイス」(pseudo-device)という。投入された入力を単に捨て去る「/dev/null」、ヌル文字(全ビット「0」のデータ)が無限に湧き出してくる「/dev/zero」、乱数を生成してくれる「/dev/random」などである。

デバイス名

接続した装置にどのようなデバイス名(ファイル名)を与えるかはシステムごとに異なっているが、慣習的によく用いられる名前や接頭辞(先頭の文字列)は存在する。例えば、「/dev/hd」で始まるデバイスはIDE/ATA接続ハードディスク、「/dev/lp」で始まるのはプリンタ、「/dev/pt」は仮想端末などである。

近年のLinuxではもともとSCSI接続ハードディスクを意味していた「/dev/sd」をすべてのドライブ装置に割り当てることが多い。同じ種類の装置を複数接続する場合、例えば1台目のストレージが「/dev/sda」、2台目が「/dev/sdb」のようになる。内部のパーティションごとに、先頭パーティションを「/dev/sda1」、2番目を「/dev/sda2」のようにすることもある。

Windows

Windowsでは、前身のMS-DOSがUNIX系OSのデバイスファイルの仕組みを取り入れており、その仕様が引き継がれている。ファイル名はすべて予約語(予約デバイス名)となっており、通常のファイルシステム上のファイルやフォルダの名前として使うことはできないようになっている。

具体的には、端末(コンソール)を表す「CON」、プリンタを表す「PRN」、補助デバイスを表す「AUX」、シリアルポートを表す「COM1」から「COM9」、パラレルポートを表す「LPT1」から「LPT9」、/dev/nullに相当する「NUL」などが予約されている。

他の辞典による解説 (外部サイト)