システムにおける各デバイスは、デバイスドライバによって駆動されます。デバイスドライバは、デバイスの多くのインスタンスを管理します。デバイスは以下のような名前を与えられます。
物理名
論理名
インスタンス名
物理名は /devices に格納されています。物理名はハードウェアについて記述し、プラットホームおよび構成に依存します。以下に例を示します。
/devices/vme/xdc@6d,ee80/xd@0,0:g
物理名を使用すると、どのハードウェアが使用されているかを識別することができます。たとえば、 xdc@6d,ee80 は、VME A16, D32 空間のアドレス 0xee80 にあるディスクコントローラを指します。vme(4)、driver.conf(4) のマニュアルページを参照してください。
論理名は /dev に格納されています。論理名はデバイスの物理名のプラットホーム固有の内容をできるだけ抽象化しています。たとえば xd というデバイスの論理名は次のようになります。
/dev/dsk/c2d0s6 (コントローラ 2、スレーブ 0、スライス 6 (4.x パーティション `g'))
また、sd というデバイスの論理名は次のようになります。
/dev/dsk/c0t3d0s0 (コントローラ 3、ターゲット 0、lun 0、スライス 0 (4.x パーティション `a'))
論理名は、コントローラのタイプについてはなにも表していません。つまり、SCSI でも IPI でも差はなく、両方とも単にディスクであるということです。
ディスク名は、SunOS 4.x リリースで使用されていた英字 a〜h ではなくスライス番号 0〜7 の SVR4 規約に従っています。
ディスク名は、ブロックディスクデバイスについては /dev/dsk/*、raw ディスクについては /dev/rdsk/* という SVR4 規約に従っています。詳細については、『Solaris のシステム管理 (第 1 巻)』を参照してください。
インスタンス名とは、システムの n 番目のデバイスを意味します。たとえば、sd20 のようになります。
インスタンス名は、ドライバエラーメッセージでレポートされることがあります。次のように dmesg(1M) の出力を見ると、物理名へのインスタンス名のバインディングを知ることができます。
sd9 at esp2: target 1 lun 1 sd9 is /sbus@1,f8000000/esp@0,800000/sd@1,0 <SUN0424 cyl 1151 alt 2 hd 9 sec 80> |
インスタンス名がデバイスに割り当てられると、その名前がそのデバイスにバインドされたままになります。
インスタンス番号はデバイスのマイナー番号でコード化されます。リブートしてもインスタンス番号を一貫したものにするために、システムはそれらを /etc/path_to_inst ファイルに記録します。このファイルは起動時にだけ読み込まれ、現在は add_drv(1M) および drvconfig(1M) コマンドによって更新されます。/etc/path_to_inst ファイルについては、path_to_inst(4) のマニュアルページを参照してください。