ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
デバイスドライバの記述 Oracle Solaris 11.1 Information Library (日本語) |
パート I Oracle Solaris プラットフォーム用デバイスドライバの設計
2. Oracle Solaris カーネルとデバイスツリー
22. ドライバのコンパイル、ロード、パッケージ化、およびテスト
23. デバイスドライバのデバッグ、テスト、およびチューニング
『デバイスドライバの記述』では、Oracle Solaris オペレーティングシステム (Oracle Solaris OS) のための文字指向のデバイス、ブロック指向のデバイス、ネットワークデバイス、SCSI ターゲットと HBA デバイス、および USB デバイスのドライバの開発に関する情報を提供します。このドキュメントでは、Oracle Solaris OS DDI/DKI (デバイスドライバインタフェース、ドライバカーネルインタフェース) に準拠するすべてのアーキテクチャーのためのマルチスレッド化された再入可能なデバイスドライバを開発する方法について説明します。エンディアンの種類やデータの順序付けなどのプラットフォーム固有の問題を気にすることなくドライバを記述できる、共通ドライバプログラミングアプローチについて説明します。
その他のトピックとして、Oracle Solaris ドライバの強化、電源管理、ドライバの自動構成、プログラム式入出力、ダイレクトメモリーアクセス (DMA)、デバイスコンテキスト管理、ドライバのコンパイル、インストール、およびテスト、ドライバのデバッグ、Oracle Solaris ドライバの 64 ビット環境への移植などが含まれています。
注 - この Oracle Solaris のリリースでは、SPARC および x86 系列のプロセッサアーキテクチャーを使用するシステムをサポートしています。サポートされるシステムは、Oracle Solaris OS: Hardware Compatibility Lists に記載されています。本書では、プラットフォームにより実装が異なる場合は、それを特記します。
本書の x86 に関連する用語については、次を参照してください。
x86 は、64 ビットおよび 32 ビットの x86 互換製品系列を指します。
x64 は特に 64 ビット x86 互換 CPU を指します。
「32 ビット x86」は、x86 をベースとするシステムに関する 32 ビット特有の情報を指します。
サポートされるシステムについては、Oracle Solaris OS: Hardware Compatibility Listsを参照してください。
このドキュメントは UNIX デバイスドライバに精通している UNIX プログラマ向けに書かれています。概要情報も記載されていますが、本書はデバイスドライバに関する一般的な学習教材ではありせん。
注 - Oracle Solaris オペレーティングシステム (Oracle Solaris OS) は SPARC アーキテクチャーと x86 アーキテクチャーの両方で動作します。また、Oracle Solaris OS は 64 ビットおよび 32 ビットのアドレス空間で動作します。このドキュメントの情報は、特に明記されていないかぎり、すべてのプラットフォームとアドレス空間にあてはまります。
このドキュメントは次の章で構成されています。
第 1 章Oracle Solaris デバイスドライバの概要では、Oracle Solaris プラットフォームのデバイスドライバおよび関連するエントリポイントの概要を説明します。デバイスドライバタイプごとのエントリポイントを表形式で示します。
第 2 章Oracle Solaris カーネルとデバイスツリーでは、Oracle Solaris カーネルの概要を説明するほか、デバイスツリーでデバイスがどのようにノードとして表現されるかについても説明します。
第 3 章マルチスレッドでは、Oracle Solaris のマルチスレッドカーネルについて、デバイスドライバ開発者に関係の深い側面について説明します。
第 4 章プロパティーでは、デバイスのプロパティーを使用するためのインタフェースセットについて説明します。
第 5 章イベントの管理とタスクのキューでは、デバイスドライバでイベントをログに記録する方法と、タスクキューを使用してタスクをあとで実行する方法について説明します。
第 6 章ドライバの自動構成では、ドライバが自動構成のために提供する必要のあるサポートについて説明します。
第 7 章デバイスアクセス: プログラム式入出力では、ドライバがデバイスメモリーに対して読み書きを行うためのインタフェースや手法について説明します。
第 8 章割り込みハンドラでは、割り込みを処理する機構について説明します。これらの機構には、割り込みの割り当て、登録、処理、および削除が含まれます。
第 9 章ダイレクトメモリーアクセス (DMA)では、ダイレクトメモリーアクセス (DMA) と DMA のインタフェースについて説明します。
第 10 章デバイスメモリーおよびカーネルメモリーのマッピングでは、デバイスメモリーとカーネルメモリーを管理するインタフェースについて説明します。
第 11 章デバイスコンテキスト管理では、デバイスドライバがデバイスへのユーザーアクセスを管理できるようにするインタフェースセットについて説明します。
第 12 章電源管理ではPower Management のインタフェースと、電力消費を管理するためのフレームワークについて説明します。
第 13 章Oracle Solaris ドライバの強化では、入出力デバイスドライバに障害管理機能を組み込む方法、防御力を高めるプログラミング手法を組み込む方法、およびドライバ強化テストハーネスを使用する方法について説明します。
第 14 章階層化ドライバインタフェース (LDI)では、カーネルモジュールがシステム内のほかのデバイスにアクセスできるようにする LDI について説明します。
第 15 章文字デバイスのドライバでは、文字指向デバイスのドライバについて説明します。
第 16 章ブロックデバイスのドライバでは、ブロック指向デバイスのドライバについて説明します。
第 17 章SCSI ターゲットドライバでは、Sun Common SCSI Architecture (SCSA) と、SCSI ターゲットドライバの要件について概説します。
第 18 章SCSI ホストバスアダプタドライバでは、SCSA を SCSI ホストバスアダプタ (HBA) ドライバに適用する方法について説明します。
第 19 章ネットワークデバイスのドライバでは、汎用 LAN ドライバ (GLD) について説明します。GLDv3 フレームワークは、MAC プラグインと、MAC ドライバサービスのルーチンおよび構造体に対する、関数呼び出しベースのインタフェースです。
第 20 章USB ドライバでは、USBA 2.0 フレームワーク を使用してクライアント USB デバイスドライバを記述する方法について説明します。
第 21 章SR-IOV ドライバでは、SR-IOV デバイスドライバを記述するための要件について説明します。
第 22 章ドライバのコンパイル、ロード、パッケージ化、およびテストでは、ドライバのコンパイル、リンク、およびインストールに関する情報を提供します。
第 23 章デバイスドライバのデバッグ、テスト、およびチューニングでは、ドライバのデバッグ、テスト、およびチューニングを行うための手法について説明します。
第 24 章推奨されるコーティング方法では、ドライバを記述するための推奨のコーディング手法について説明します。
付録 A ハードウェアの概要では、デバイスドライバのマルチプラットフォームハードウェアの問題について説明します。
付録 B Oracle Solaris DDI/DKI サービスのサマリーでは、デバイスドライバ用のカーネル関数の表を提供します。非推奨となった関数も明記します。
付録 C 64 ビットデバイスドライバの準備では、64 ビット環境で動作するようにデバイスドライバを更新するためのガイドラインを提供します。
付録 D コンソールフレームバッファードライバでは、フレームバッファードライバに必要なインタフェースを追加することで、そのドライバを Oracle Solaris カーネル端末エミュレータと対話できるようにする方法について説明します。
デバイスドライバインタフェースの詳細な参照情報については、Section 9 のマニュアルページを参照してください。Section 9E の Intro(9E) では、DDI/DKI (デバイスドライバインタフェース/ドライバカーネルインタフェース) のドライバエントリポイントについて説明します。Section 9F の Intro(9F) では、DDI/DKI のカーネル関数について説明します。Sections 9P および 9S の Intro(9S) では、DDI/DKI のプロパティとデータ構造について説明します。
ハードウェアとその他のドライバ関連の問題については、次のドキュメントを参照してください。
また、次のドキュメントが役立つ場合があります。
SPARC インターナショナル、『The SPARC Architecture Manual』 バージョン 9、Prentice Hall、1993; ISBN 978-0130992277
Oracle のお客様は、My Oracle Support を通じて電子的なサポートを利用することができます。詳細は、http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info を参照してください。聴覚に障害をお持ちの場合は、http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs を参照してください。
このマニュアルでは、次のような字体や記号を特別な意味を持つものとして使用します。
表 P-1 表記上の規則
|
Oracle Solaris OS に含まれるシェルで使用する、UNIX のデフォルトのシステムプロンプトとスーパーユーザープロンプトを次に示します。コマンド例に示されるデフォルトのシステムプロンプトは、Oracle Solaris のリリースによって異なります。
C シェル
machine_name% command y|n [filename]
C シェルのスーパーユーザー
machine_name# command y|n [filename]
Bash シェル、Korn シェル、および Bourne シェル
$ command y|n [filename]
Bash シェル、Korn シェル、および Bourne シェルのスーパーユーザー
# command y|n [filename]
[ ] は省略可能な項目を示します。上記の例は、filename は省略してもよいことを示しています。
| は区切り文字 (セパレータ) です。この文字で分割されている引数のうち 1 つだけを指定します。
キーボードのキー名は英文で、頭文字を大文字で示します (例: Shift キーを押します)。ただし、キーボードによっては Enter キーが Return キーの動作をします。
ダッシュ (-) は 2 つのキーを同時に押すことを示します。たとえば、Ctrl-D は Control キーを押したまま D キーを押すことを意味します。