Un pilote informatique souvent abrégé en pilote ou driver est un programme informatique destiné à permettre à un autre programme (souvent un système d'exploitation) d'intergir avec un périphérique.
À cause de la diversité des matériels modernes et des systèmes d'exploitation, il existe une myriade de manières d'utiliser des pilotes. Ces derniers sont utilisés pour gérer l'interface avec :
- des imprimantes
- des cartes vidéo
- des cartes réseau
- des cartes son
- des bus locaux de divers types, en particulier pour gérer les bus sur les systèmes modernes
- des bus d'entrée/sortie de plusieurs types (par exemple pour les souris, claviers, l'Universal Serial Bus USB, etc.)
- des disques durs (ATA, Serial ATA, SCSI)
- mettre en œuvre le support de différents systèmes de fichiers
- mettre en œuvre le support de scanners et appareils photo numériques.
Les niveaux d'abstration pour les pilotes sont fréquemment :
- Du côté matériel :
- Interfaçage direct
- Utilisation d'une interface de plus haut niveau (par ex. : Vidéo BIOS)
- Utilisation d'un autre pilote de plus bas niveau (par ex. : les pilotes de systèmes de fichiers)
- Simulation du fonctionnement avec un matériel, alors qu'il fait complètement autre chose
- Du côté logiciel :
- Permettre au système d'exploitation l'accès direct aux ressources matérielles
- Mettre en œuvre uniquement des primitives
- Mettre en œuvre une interface pour logiciel sans pilote (par ex. : TWAIN)
- Mettre en œuvre un langage, parfois de haut niveau (par ex. : PostScript).
L'écriture de pilotes est une sorte de défi dans la plupart des cas, car elle nécessite une compréhension en profondeur de la manière dont fonctionne une plate-forme, à la fois au niveau matériel et au niveau logiciel. Au contraire de la plupart des logiciels de niveau utilisateur, qui peuvent être arrêtés sans affecter le reste du système, un bug dans un pilote mène dans bien des cas à des dysfonctionnements du système, dans une mesure qui peut sévèrement endommager les données voire le matériel lui-même. De plus, mettre au point des pilotes est une compétence qui nécessite souvent d'examiner le matériel lui-même, qui se comporte par définition de manière non déterministe.
Tout ceci justifie que les personnes les plus à même d'écrire les pilotes sont les entreprises qui développent le matériel, étant donné qu'elles ont plus que quiconque un accès complet aux informations relatives à la conception du matériel. Qui plus est, on considère traditionnellement que l'intérêt des constructeurs est de permettre aux utilisateurs le fonctionnement optimal de leur matériel. Cependant, ces dernières années nous ont montré que nombre de pilotes ont été écrits par des non-constructeurs, souvent pour l'usage sous divers systèmes d'exploitation libres. Dans ces cas, la coopération avec le constructeur reste importante, même si la rétro-ingénierie, bien plus complexe avec le matériel qu'avec le logiciel, signifie beaucoup de temps à apprendre comment fonctionne le matériel dont l'interface est inconnue.