デバイスファイル

意外と奥が深い。 デバイスファイルの別名はデバイスノード。

バイスファイルの種類

バイスファイルが2種類あるということはOS側からはハードウェアには2種類存在するということになる。

キャラクタデバイス

  • システムが一文字ずつデータを転送を行う
  • テレタイプ端末、モデム、仮想コンソール、擬似端末など
  • ランダムアクセス未対応

ブロックデバイス

  • バッファを用いてデータ転送を行う(=データの読み書きを要求に対しシステムは適当なバッファにデータを保持。バッファが一杯になるとデータ転送を行いバッファをクリア)
  • ハードディスクドライブ/CD-ROMドライブ/メモリ領域などアドレス指定可能な機器に対応
  • ランダムアクセスに対応

疑似デバイス

実際のハードウェアとは対応しないデバイスノード。

  • /dev/null...ビットバケツ
  • /dev/zero...NULL文字列を生成
  • /dev/random...可変長の疑似乱数文字列

ちなみに

  • 同じハードウェアでもブロックデバイス・キャラクタデバイスの両方として認識される場合がある。その場合はddコマンドなどでディスクイメージを直接物理ディスクに書き込み際には、バッファリングがないためブロックデバイスよりもキャラクタデバイスのほうが早いらしい。
  • カセットテーブは原理的にシーケンシャルアクセスしかできない。