dr ドライバは、Sun Enterprise 10000 システムボードの接続・切り離しを動的に 処理する際、疑似ドライバインタフェースを供給します。 このインタフェースは、「接続点 (Attachment Point)」と呼ばれる ファイルシステムのエントリポイントを介して供給されます。 接続点は Sun Enterprise 10000 サーバーの 各システムボードスロットに 1 つずつ存在し、 各接続点は次のような形式をとっています。
/devices/pseudo/dr@0:slot X
X X の部分には、各システムボードごとに、対応する物理スロットナンバー (0 から 15) が入ります。
dr ドライバは汎用モジュールとして設計されているので、 本来ならば異なる複数のプラットフォーム上でも DR 操作の処理が可能で あるはずなのですが、 現時点でサポートしているのは Sun Enterprise 10000 だけです。 dr ドライバは drmach(7) 「misc」モジュールと共に動作します。 この「misc」モジュールがプラットフォーム固有の DR 処理 および属性を供給しています。
Sun Enterprise 10000 上で実際に DR 操作を実行しているのは dr_daemon(1M) です。 DR を用いた接続または切り離しを実行すると、 dr_daemon(1M) は処理の対象となるボードの接続点に対して 適切な ioctl(2) システムコールを発行します。 ioctl(2) コールの行う主な処理は以下の通りです
DR Attach (接続) 関連:
OBP が、対象となるボード上のデバイスを調査します。
デバイスノードを CF2 に変更して、各リソースを OS 上で有効な状態にします。
DR Detach (切り離し) 関連:
ボード上のあるデバイスの使用を解除します。
オペレーティングシステムのリソースプールからデバイスを切り離します。
OBP デバイスツリーからデバイスを切り離します。
『Sun Enterprise 10000 Dynamic Reconfiguration ユーザーマニュアル』
『SunOS リファレンスマニュアル』 の add_drv(1M), drvconfig(1M), devlinks(1M), disks(1M), ports(1M), tapes(1M)