file)とは、ファイルシステム上であたかも通常のファイルのような形で提示されるデバイスドライバのインタフェースである。これにより、ソフトウェアが入出力システムコールを通してデバイスドライバを使うことができ、作業が単純化される。デバイスファイルは、プリンターなどの周辺機器への単純なインタフェースを提供する。ディスクパーティションなどの機器上の特定のリソースへのアクセスにも使える。/dev/nullや擬似乱数生成器といった特定の機器とは対応しないリソースへのアクセスにも使われる。node)とも呼び、キャラクタデバイスとブロックデバイスに分類される。それらは、OSとハードウェアによるデータの入出力方法に違いがある。名前付きパイプのように通常のファイルではない(スペシャルな)オブジェクトと区別するため、デバイススペシャルファイルと呼ぶこともある。実装[編集]定義上、デバイスノードはOSのカーネルが既に確保済みのリソースに対応している。UNIXではそれらリソースを「メジャー番号」と「マイナー番号」で識別し、それら番号がノードの構造体の一部として格納されている。番号の割り当て方は、OSやプラットフォームによって異なる。一般にメジャー番号がデバイスドライバの識別に使われ、マイナー番号がそのドライバが制御する個々の機器の識別に使われる。この場合、システムはドライバに対して引数としてマイナー番号を渡す。システムはデバイスノードが通常ファイルであるかのように扱い、標準的なシステムコールを使ってアクセスする。キャラクタデバイス[編集]キャラクタデバイス(またはキャラクタスペシャルファイル)は、システムが一文字ずつデータを転送する機器に対応している。キャラクタデバイスは、テレタイプ端末、モデム、仮想コンソール、擬似端末などのようなバイトストリーム型機器を扱い、データのランダムアクセスはサポートしていないのが普通である。多くの実装では、キャラクタデバイスはバッファを使わない入出力を行う。システムは文字単位に逐次的に読み書きを行う。ブロックデバイス[編集]ブロックデバイス(またはブロックスペシャルファイル)は、ブロック形式でデータをやり取りする機器に対応している。ブロックデバイスは、ハードディスクドライブ/CD-ROMドライブ/メモリ領域などのアドレス指定可能な機器を扱う。ブロックデバイスはランダムアクセスとシークが可能なことが多く、一般にバッファを使った入出力を行う。OSが個々の入出力用に1つのブロックを保持するためのバッファを確保する。プログラムがデータの読み書きを要求すると、システムは適当なバッファを用意してそのデータを保持する。バッファが一杯になると適切な操作(データ転送)が行われ、システムがそのバッファをクリアする。擬似デバイス[編集]UNIX・Unix系OSでは、実際の周辺機器とは対応しないデバイスノードもある。pseudo-device)」と呼ぶ。これらはOSが制御する各種機能を提供する。以下に、よくある擬似デバイスを列挙する。/dev/nullあらゆる入力を受け付け、それを捨てる。