Go to main content
Oracle® Solaris 11.3 デバイスドライバの記述

印刷ビューの終了

更新: 2016 年 11 月
 
 

LDI の概要

LDI には次の 2 つのカテゴリのインタフェースが含まれます。

  • カーネルインタフェース。ユーザーアプリケーションはシステムコールを使用して、デバイスドライバによって管理されているデバイスをカーネル内から開く、読み込む、および書き込む操作を行います。カーネルモジュールは LDI カーネルインタフェースを使用することで、別のデバイスドライバによって管理されているデバイスをカーネル内から開く、読み込む、および書き込む操作を行うことができます。たとえば、同じデバイスを読み取るために、ユーザーアプリケーションは read(2) を、カーネルモジュールは ldi_read(9F) を使用できます。カーネルインタフェースを参照してください。

  • ユーザーインタフェース。LDI ユーザーインタフェースは、現在カーネル内でどのデバイスがほかのデバイスによって使用されているかに関する情報をユーザープロセスに提供できます。ユーザーインタフェースを参照してください。

LDI についての説明では、次の用語がよく使用されます。

  • ターゲットデバイス。ターゲットデバイスとは、デバイスドライバによって管理され、デバイスコンシューマによってアクセスされているカーネル内のデバイスです。

  • デバイスコンシューマ。デバイスコンシューマは、ターゲットデバイスを開いてアクセスするユーザープロセスまたはカーネルモジュールです。デバイスコンシューマは通常、ターゲットデバイスに対して openreadwrite ioctl などの操作を実行します。

  • カーネルデバイスコンシューマ。カーネルデバイスコンシューマは、特定の種類のデバイスコンシューマです。カーネルデバイスコンシューマは、ターゲットデバイスにアクセスするカーネルモジュールです。カーネルデバイスコンシューマは通常、アクセスされているターゲットデバイスを管理しているデバイスドライバではありません。その代わりカーネルデバイスコンシューマは、ターゲットデバイスを管理しているデバイスドライバを通して間接的にターゲットデバイスにアクセスします。

  • 階層化ドライバ。階層化ドライバは、特定の種類のカーネルデバイスコンシューマです。階層化ドライバは、どのハードウェアも直接には管理しないカーネルドライバです。その代わり階層化ドライバは、ターゲットデバイスを管理しているデバイスドライバを通して間接的に、1 つまたは複数のターゲットデバイスにアクセスします。ボリュームマネージャーと STREAMS マルチプレクサは階層化ドライバの代表的な例です。