最終更新:2015-10-29 (木) 18:03:31 (3103d)  

Linux/デバイスドライバ
Top / Linux / デバイスドライバ

ドキュメント

開発メモ

Linuxでのデバイスの扱い

  • Un*x の基本的特徴のひとつは、デバイスの操作を抽象化していることである。 すべてのハードウェアデバイス?は、通常ファイルのようのように見える。
  • それらは、 ファイル操作で使用されるのと同じ標準的なシステムコールを利用して、オープン、 クローズ、書き込み、読み出しが可能である。
  • システム上のあらゆるデバイスは、 デバイスファイルによって表現されていて、たとえば、システム上の最初の IDE ディスクは /dev/hda と表される。

デバイスの種類

メジャー番号マイナー番号

  • 同一のデバイスドライバによって制御されるすべてのデバイスコントローラは、共通の メジャー番号を持つ。
  • マイナーデバイス番号が使用されるのは、デバイスドライバが 異なるデバイスやそのデバイスのコントローラを区別するためである。

ドライバの処理

  • 初期化ルーチン:OSの起動時に呼ばれ、デバイスをOSに認識させる
  • トップハーフルーチン:アプリケーションから呼ばれる部分 (open/read)
  • ボトムハーフルーチン:ハードウェア割り込みによって駆動される

組み込み方

静的リンク

Linux/カーネルモジュール

コンパイル

  • コンパイルするだけならカーネルのヘッダがインストールされていれば良い。

コマンド

Linux/カーネルモジュール/開発

置き場所

ソースコード

  • Linux/usr/src/linux/drivers?

バイナリ

  • Linux/lib/modules/version/kernel/drivers?

デバッグツール

システムコール

関連

  • DKI? - Device Driver Kernel Interface
  • DDI - Device Driver Interface

Linux Device Drivers, Third Edition (オライリー本)

古い


このPDFへのリンク

Linux 2.4

参考

参考図書