Les pilotes de périphérique pour les systèmes d'exploitation d'ordinateurs de bureau sont généralement écrits en C ou C++. Le système d'exploitation que vous ciblez aura une forme de cadre ou d'environnement de développement de pilote de périphérique. Souvent, ces kits de développement peuvent être obtenus gratuitement.
Il existe des livres disponibles pour Windows, Linux et MacOS X (et autres) qui détaillent le processus de création d'un pilote de périphérique.
Si votre pilote est associé à un périphérique sur un bus matériel spécifique (PCI, PCI-X, USB, SCSI, SATA, etc.), vous pouvez également obtenir des livres sur cette technologie spécifique. Une compréhension de ce système matériel peut grandement faciliter la conception de votre pilote.
Une autre bonne ressource est le code source ouvert pour les périphériques similaires aux vôtres. Vous pouvez l'obtenir à partir de la source du noyau Linux ou de la source FreeBSD et étudier comment certains aspects de votre type d'appareil sont implémentés.
EDIT: J'ai presque oublié de mentionner que vous aurez également besoin de feuilles de données, de schémas et/ou d'informations sur la théorie de fonctionnement de l'appareil lui-même.