汎用(generic) SCSI インターフェースは SCSI ハードウェアの(ひょっとしたらエキゾ
チックな)部品への一般的な SCSI のアクセスを提供するために実装されまし
た。Lawrence Foard ( entropy@world.std.com
) によって開発され、
Killy Corporation (scsi/sg.h
にあるコメントを参照してください)
によって後援されました。
このインターフェースはユーザレベルのアプリケーション(すなわち、カーネ ルの外側)から特別な機器操作を可能にします。だから、カーネルドライバの 開発は、より危険でデバッグ困難なものなのですが、必要ありません。
とはいえ、適切にドライバを作動させないと、SCSI バスやドライバあるいは
カーネルをハングする可能性があります。ですから、汎用ドライバを正しく作
動させることと、データの喪失を避けるために最初に全てのファイルをバック
アップすることが大切です。他にもあなたのプログラムを走らせる前にしてお
くと役に立つことがあります。全てのバッファがディスクにフラッシュされる
ことを確実にするために sync
コマンドを発行することで、もしシ
ステムがハングしてもデータロスは最小になります。
汎用ドライバのもう一つの利点としては、インターフェース自身が変化しない 限り、全てのアプリケーションは新しいカーネルの開発から独立していられる ことです。比較するならば、他の低レベルなカーネルドライバは他のカーネル 内部の変化と歩調を合わさなければなりません。
典型的には、汎用ドライバはとその機能の長所を生かすために特殊なユーザア プリケーションが書かれる必要のある新しい SCSI ハードウェア装置(例: ス キャナー、プリンタ、CD-ROM ジュークボックス)と通信するために使用されま す。汎用インターフェースによってこれらのアプリケーションを迅速に作るこ とができます。