【Linux入門】デバイスファイル

1.デバイスファイルとは

  • デバイスファイルは、Linuxシステム上のハードウェアや仮想デバイスにアクセスするための特殊なファイルです。
  • ハードウェアデバイスやカーネル内部の仮想デバイスに対して、ファイルシステム経由でアクセスを可能にします。
デバイス

'/dev'ディレクトリ

  • デバイスファイルは通常、/devディレクトリに配置されます。
  • /devディレクトリは、ハードウェアデバイスやカーネルモジュールに対応するデバイスファイルが含まれています。

'/dev'以下のファイルやディレクトリの一覧

 ’ls /dev’ コマンドを実行すると多くのファイルがあることが確認できます。デバイスファイルは、Linuxカーネルがハードウェアを検知すると自動的に作成されます。

$ ls /dev
autofs           log                 sg0       tty24  tty49    usbmon0
block            loop-control        sg1       tty25  tty5     usbmon1
bsg              lp0                 shm       tty26  tty50    usbmon2
(省略)
hwrng            rtc0                tty20     tty45  ttyS3    zero
initctl          sda                 tty21     tty46  uhid
input            sda1                tty22     tty47  uinput
kmsg             sda2                tty23     tty48  urandom

主なデバイスファイル

下表は主なデバイスファイルをまとめたものです。

デバイスファイル説明
/dev/sda1番目のSCSIディスクドライブ(SATAも含む)
/dev/sdb2番目のSCSIディスクドライブ(SATAも含む)
/dev/sr01番目のCD/DVD/BDドライブ
/dev/hda古いIDEディスクドライブ(現在はあまり使われない)
/dev/nvme0n1NVMe SSDドライブ
/dev/ttyS0シリアルポート
/dev/nullすべての出力を破棄する特殊デバイス
/dev/randomシステムによって生成される乱数を提供する特殊デバイス(真の乱数)
/dev/urandomシステムによって生成される乱数を提供する特殊デバイス(疑似乱数)
主なデバイスファイル

Linux が認識しているデバイス

 Linux が認識しているデバイスの一覧は、' cat /proc/devices'  コマンドで確認できます。キャラクタデバイス、ブロックデバイスが順に表示されます。

'cat /proc/devices'  コマンドの出力

$ cat /proc/devices
Character devices:
  1 mem
  4 /dev/vc/0
  4 tty
  4 ttyS
  5 /dev/tty
(省略)
251 iio
252 rtc
253 dax
254 tpm

Block devices:
259 blkext
  8 sd
  9 md
 11 sr
 65 sd
(省略)
133 sd
134 sd
135 sd
253 device-mapper
254 mdp
  • 上記の出力から、'/proc/devices' ファイルにはキャラクタデバイスとブロックデバイスのリストが含まれています。
  • キャラクタデバイスは主に入出力デバイスやカーネルインタフェースを表し、ブロックデバイスはストレージデバイスを表します。
  • 例えば、キーボードやマウス、シリアルポートなどのデバイスはキャラクタデバイスで、ハードディスクやCD-ROMなどのデバイスはブロックデバイスです。