ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
![]() |
デバイスドライバの記述 Oracle Solaris 11.1 Information Library (日本語) |
パート I Oracle Solaris プラットフォーム用デバイスドライバの設計
2. Oracle Solaris カーネルとデバイスツリー
22. ドライバのコンパイル、ロード、パッケージ化、およびテスト
23. デバイスドライバのデバッグ、テスト、およびチューニング
LDI には次の 2 つのカテゴリのインタフェースが含まれます。
カーネルインタフェース。ユーザーアプリケーションはシステムコールを使用して、デバイスドライバによって管理されているデバイスをカーネル内から開く、読み込む、および書き込む操作を行います。カーネルモジュールは LDI カーネルインタフェースを使用することで、別のデバイスドライバによって管理されているデバイスをカーネル内から開く、読み込む、および書き込む操作を行うことができます。たとえば、同じデバイスを読み取るために、ユーザーアプリケーションは read(2) を、カーネルモジュールは ldi_read(9F) を使用できます。「カーネルインタフェース」を参照してください。
ユーザーインタフェース。LDI ユーザーインタフェースは、現在カーネル内でどのデバイスがほかのデバイスによって使用されているかに関する情報をユーザープロセスに提供できます。「ユーザーインタフェース」を参照してください。
ターゲットデバイス。ターゲットデバイスとは、デバイスドライバによって管理され、デバイスコンシューマによってアクセスされているカーネル内のデバイスです。
デバイスコンシューマ。デバイスコンシューマは、ターゲットデバイスを開いてアクセスするユーザープロセスまたはカーネルモジュールです。デバイスコンシューマは通常、ターゲットデバイスに対して open、read、write、 ioctl などの操作を実行します。
カーネルデバイスコンシューマ。カーネルデバイスコンシューマは、特定の種類のデバイスコンシューマです。カーネルデバイスコンシューマは、ターゲットデバイスにアクセスするカーネルモジュールです。カーネルデバイスコンシューマは通常、アクセスされているターゲットデバイスを管理しているデバイスドライバではありません。その代わりカーネルデバイスコンシューマは、ターゲットデバイスを管理しているデバイスドライバを通して間接的にターゲットデバイスにアクセスします。
階層化ドライバ。階層化ドライバは、特定の種類のカーネルデバイスコンシューマです。階層化ドライバは、どのハードウェアも直接には管理しないカーネルドライバです。その代わり階層化ドライバは、ターゲットデバイスを管理しているデバイスドライバを通して間接的に、1 つまたは複数のターゲットデバイスにアクセスします。ボリュームマネージャーと STREAMS マルチプレクサは階層化ドライバの代表的な例です。