L'interface générique SCSI a été faite pour fournir un accès général à des périphériques SCSI (éventuellement exotiques). Elle a été développée par Lawrence Foard ( entropy@world.std.com
) et sponsorisée par Killy Corporation (voir les commentaires du fichier drivers/scsi/sg.h
).
Cette interface permet à des programmes applicatifs (c'est-à-dire hors du noyau) d'accéder aux fonctionnalités de certains périphériques. Le développement de pilotes dans le noyau, plus risqués et difficiles à mettre au point, n'est ainsi plus nécessaire.
Néanmoins, si le périphérique n'est pas correctement programmé, il est possible de bloquer le bus SCSI, le pilote, ou le noyau. C'est pourquoi il est important de programmer correctement le pilote générique, et de commencer par sauvegarder tous les fichiers afin d'éviter une perte de données. Une autre précaution utile est de faire un sync
avant de lancer vos programmes pour garantir l'écriture de tous les tampons sur le disque ; cela limitera la perte de données en cas de blocage du système.
Un autre avantage du pilote générique est que, aussi longtemps que l'interface elle-même ne change pas, toutes les applications restent indépendantes des nouveaux développements du noyau. En comparaison, les pilotes de bas niveau du noyau doivent suivre les évolutions internes de celui-ci.
Typiquement, le pilote générique est utilisé pour communiquer avec les nouveaux équipements SCSI qui exigent l'écriture d'applications utilisateur spécifiques pour tirer avantage de leurs fonctionalités (par exemple les scanners, les imprimantes, le juke-boxes de CDROM). L'interface générique permet un développement rapide de ces applications.