ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
デバイスドライバの記述 Oracle Solaris 10 8/11 Information Library (日本語) |
『デバイスドライバの記述』では、Solaris オペレーティングシステム (Solaris OS) のための文字指向のデバイス、ブロック指向のデバイス、ネットワークデバイス、SCSI ターゲットと HBA デバイス、および USB デバイスのドライバの開発について説明します。このマニュアルでは、Solaris OS DDI/DKI (デバイスドライバインタフェース、ドライバカーネルインタフェース) に準拠するすべてのアーキテクチャーのためのマルチスレッド化された再入可能なデバイスドライバを開発する方法について説明します。エンディアンの種類やデータの順序付けなどのプラットフォーム固有の問題を気にすることなくドライバを記述できる、共通ドライバプログラミングアプローチについて説明します。
その他のトピックとして、Solaris ドライバの強化、電源管理、ドライバの自動設定、プログラム式入出力、ダイレクトメモリーアクセス (DMA)、デバイスコンテキスト管理、ドライバのコンパイル、インストール、およびテスト、ドライバのデバッグ、Solaris ドライバの 64 ビット環境への移植などが含まれています。
注 - このリリースでは、SPARC および x86 系列のプロセッサアーキテクチャー (UltraSPARC、SPARC64、AMD64、Pentium、Xeon EM64T) を使用するシステムをサポートします。サポートされるシステムについては、Solaris オペレーティングシステムの Hardware Compatibility List (http://www.sun.com/bigadmin/hcl) を参照してください。本書では、プラットフォームにより実装が異なる場合は、それを特記します。
このマニュアルは UNIX デバイスドライバに精通している UNIX プログラマ向けに書かれています。概要情報も記載されていますが、本書はデバイスドライバに関する一般的な学習教材ではありせん。
注 - Solaris オペレーティングシステム (Solaris OS) は SPARC アーキテクチャーと x86 アーキテクチャーの両方で動作します。また、Solaris OS は 64 ビットおよび 32 ビットのアドレス空間で動作します。このマニュアルの情報は、特に明記されていないかぎり、すべてのプラットフォームとアドレス空間にあてはまります。
このマニュアルは次の章で構成されています。
第 1 章Solaris デバイスドライバの概要では、Solaris プラットフォームのデバイスドライバと関連するエントリポイントの概要を説明します。デバイスドライバタイプごとのエントリポイントを表形式で示します。
第 2 章Solaris カーネルとデバイスツリーでは、Solaris カーネルの概要を説明するほか、デバイスツリーでデバイスがどのようにノードとして表現されるかについても説明します。
第 3 章マルチスレッドでは、Solaris のマルチスレッドカーネルについて、デバイスドライバ開発者に関係の深い側面について説明します。
第 4 章プロパティーでは、デバイスのプロパティーを使用するためのインタフェースセットについて説明します。
第 5 章イベントの管理とタスクのキューでは、デバイスドライバでイベントをログに記録する方法と、タスクキューを使用してタスクをあとで実行する方法について説明します。
第 6 章ドライバの自動設定では、ドライバが自動設定のために提供する必要のあるサポートについて説明します。
第 7 章デバイスアクセス: プログラム式入出力では、ドライバがデバイスメモリーに対して読み書きを行うためのインタフェースや手法について説明します。
第 8 章割り込みハンドラでは、割り込みを処理する機構について説明します。これらの機構には、割り込みの割り当て、登録、処理、および削除が含まれます。
第 9 章ダイレクトメモリーアクセス (DMA)では、ダイレクトメモリーアクセス (DMA) と DMA のインタフェースについて説明します。
第 10 章デバイスメモリーおよびカーネルメモリーのマッピングでは、デバイスメモリーとカーネルメモリーを管理するインタフェースについて説明します。
第 11 章デバイスコンテキスト管理では、デバイスドライバがデバイスへのユーザーアクセスを管理できるようにするインタフェースセットについて説明します。
第 12 章電源管理ではPower Management のインタフェースと、電力消費を管理するためのフレームワークについて説明します。
第 13 章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 章ドライバのコンパイル、ロード、パッケージ化、およびテストでは、ドライバのコンパイル、リンク、およびインストールに関する情報を提供します。
第 22 章デバイスドライバのデバッグ、テスト、およびチューニングでは、ドライバのデバッグ、テスト、およびチューニングを行うための手法について説明します。
第 23 章推奨されるコーティング方法では、ドライバを記述するための推奨のコーディング手法について説明します。
付録 A ハードウェアの概要では、デバイスドライバのマルチプラットフォームハードウェアの問題について説明します。
付録 B Solaris DDI/DKI サービスの概要では、デバイスドライバ用のカーネル関数の表を提供します。非推奨となった関数も明記します。
付録 C 64 ビットデバイスドライバの準備では、64 ビット環境で動作するようにデバイスドライバを更新するためのガイドラインを提供します。
付録 D コンソールフレームバッファードライバでは、あるフレームバッファードライバに必要なインタフェースを追加することで、そのドライバが Solaris カーネル端末エミュレータと対話できるようにする方法について説明します。
デバイスドライバインタフェースの詳細な参照情報については、Section 9 のマニュアルページを参照してください。Section 9E の Intro(9E) では、DDI/DKI (デバイスドライバインタフェース/ドライバカーネルインタフェース) のドライバエントリポイントについて説明します。Section 9F の Intro(9F) では、DDI/DKI のカーネル関数について説明します。Sections 9P および 9S の Intro(9S) では、DDI/DKI のプロパティとデータ構造について説明します。
ハードウェアとその他のドライバ関連の問題については、Sun Microsystems からの次のドキュメントを参照してください。
『Open Boot PROM Toolkit User's Guide』
また、次のドキュメントが役立つ場合があります。
SPARC インターナショナル、『The SPARC Architecture Manual』 バージョン 9、Prentice Hall、1993; ISBN 978-0130992277
追加リソースについては、次の Web サイトを参照してください。
Oracle はドキュメントの品質向上のために、お客様のご意見やご提案をお待ちしています。誤りを見つけたり、改善に向けた提案などがある場合は、http://www.oracle.com/technetwork/indexes/documentation/index.html で「Feedback」をクリックしてください。可能な場合には、ドキュメントのタイトルやパート番号に加えて、章、節、およびページ番号を含めてください。返信を希望するかどうかもお知らせください。
Oracle Technology Network では、Oracle ソフトウェアに関する広範なリソースが提供されています。
ディスカッションフォーラム では、技術的な問題や解決策を話し合う。
Oracle By Example のチュートリアルで、手順に従って操作を体験する。
サンプルコード をダウンロードする。
このマニュアルでは、次のような字体や記号を特別な意味を持つものとして使用します。
表 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 キーを押すことを意味します。