System V Release 4 (SVR4) では、デバイスドライバと残りの UNIX カーネルとの間のインタフェースが DDI/DKI として標準化されました。DDI/DKI については、リファレンスドキュメントコレクションの第 9 セクションに説明があります。第 9E セクションにはドライバのエントリポイントについての説明、第 9F セクションにはドライバから呼び出すことができる関数についての説明、第 9S セクションにはデバイスドライバによって使用されるカーネルのデータ構造についての説明があります。Intro(9E)、Intro(9F)、およびIntro(9S)を参照してください。
DDI/DKI はデバイスドライバとカーネルの残りの部分とのインタフェースをすべて標準化し、文書化することを目的としています。さらに、DDI/DKI によって、Oracle Solaris OS を実行する任意のマシンでは、プロセッサのアーキテクチャーが SPARC であるか x86 であるかにかかわらず、ドライバのソースとバイナリの互換性が実現されます。DDI/DKI の一部になっているカーネル機能のみを使用するドライバは、DDI/DKI 準拠デバイスドライバと呼ばれます。
DDI/DKI を使用すると、Oracle Solaris OS を実行する任意のマシンのためにプラットフォームに依存しないデバイスドライバを記述できます。これらのバイナリ互換性があるドライバによって、サードパーティーのハードウェアとソフトウェアを、より簡単に Oracle Solaris OS を実行する任意のマシンに統合できます。DDI/DKI はアーキテクチャーに依存しないため、同じドライバが一連の多様なマシンアーキテクチャーにわたって動作可能です。
プラットフォームへの非依存は、次の領域における DDI のデザインによって実現されています。
モジュールの動的なロードおよびアンロード
電源管理
割り込み処理
カーネルプロセスまたはユーザープロセスからデバイス領域へのアクセス。つまり、レジスタマッピングとメモリーマッピング
DMA サービスを使用した、デバイスからのカーネルプロセス空間またはユーザープロセス空間へのアクセス
デバイスのプロパティーの管理