Solaris2.x NexusドライバとLeafドライバの説明について

Solaris2.x NexusドライバとLeafドライバの説明について

 

Solaris2.xのデバイスツリーは次の様な構成になっています。

 

                           Nexusドライバ       Leafドライバ

    root ——+——- obio ——-+——- ZS(Serial,Mouse,Keyboard)
                   |                        +——- Floppy
                   |
                   +——- sbus ——-+——- esp(SCSI)
                   |                        +——- le(Ethernet)
                   |                        +——- cgsix(GX)
                   |                        +——- vmedvma
                   |                        +——- vmedma
                   |                        +——- vmefdma
                   |
                   +——- VME  ——–+——- vmeplus
                                            +——- vmectl
                                            +——- pvme304
                                            +——- pvme311

    Nexusドライバーの役割

        Nexusドライバーはバスを制御する為に存在するドライバーです。

        (Sbus,SCSI,VMEbus等のドライバーがこれに該当します。)

        バス上で使用するメモリーの設定、割り込みの設定等を受け持ちます。

        また、バスに継る周辺装置ドライバーの組み込むにも係わります。

    Leafドライバーの役割

        LeafドライバーはNexusドライバーの機能を使用して各周辺装置を

        制御するドライバーとして動作します。

 

    Leafドライバーの組み込み手順について

   

        実際のシーケンスは次の様になっています。

 

             1.  システムが/kernel/drv /usr/kernel/drvディレクトリィ内のxxx.conf

                 ファイルをサーチします。

             2.  Leafドライバーがどのバス(class)に接続されるか調べます。

                 xxx.confファイル中のclass=""行に接続するバスのNexus

                 ドライバが指定されます。

             3.  Nexusドライバーを組み込みます。

             4.  Leafドライバーの組み込みを行います。

                 実際にはNexusドライバーからLeafドライバーをサーチして

                 Leafドライバーを呼び出します。

                 そして、Leafドライバーのprobeルーチンが動作し

                 デバイスの存在が確認されると実際にドライバが組み込まれます。

 

       このように、Solaris2.xのLeafドライバーはローダブルモジュールに対応しており

       必要外のデバイスドライバーは、組み込まなくなっております。

 

lhsSolaris2.x NexusドライバとLeafドライバの説明について