-
coder un driver
Salut ! Je voudrais me lancer dans la programmation de driver, mais je n'ais pas trouvé beaucoup d'info dessus...quelqu'un peut me dire quelles sont les lib existantes ? Pour info j'ai un windows et un linux mais je ne sais pas encore sur quelle machine coder ça...
J'éspère que vous pourrez m'éclaircir sur ce sujet car je n'ai jamais coder de programme de ce type !
-
Pas le bon forum. Typiquement les drivers c'est codé en C. Et sinon y'a des ouvrages de références pour linux, impossible de remettre un nom dessus erf.
Enfin, c'est quand même pas une mince affaire hein, sous linux il faut bien connaitre le kernel quoi, sous windows aussi, mais je m'aventurerais pas, ne connaissant que très peu.
-
Sous linux, il faudra se plonger dans la documentation des modules ( documentation du kernel aussi du coup ).
Il faudra aussi comprendre le principe de l'espace utilisateur, et l'espace noyau ( kernel ).
Et faudra faire la réecriture des opérations d'ouverture, ecriture , lecture, fermeture, de ce que vous voulez prendre en charge ( ioctl si je me trompe pas).
-
Sous visual studio tu as un mode spécial de projet, regarde les détails a la creation du projet ou dans les propriétés du projet, je ne me souviens plus où mais tu dois indiquer que c'est du code pour driver, auquel cas il va te faire sauter une bonne partie de ce qui est mis par defaut pour un executable.
Cela dit, je n'ai jamais eu besoin de faire ça donc je n'ai pas vraiment d'experience avec ça.
-
J'aurais également tendance à dire qu'un driver, ce n'est pas un programme normal... Il faut en avoir l'utilité !!
Bref, "faire un driver", OK, mais pour quel matériel ? Pour faire quoi exactement ? Il est quand même rare (en dehors du cas nominal de piloter un matériel inconnu, bien sûr) d'avoir besoin d'un driver de façon générale, il faut en être conscient.
De plus, c'est quand même un domaine du développement relativement pointu, qui demande à être plus qu'à l'aise avec le langage, le système d'exploitation et la machine, ce qui n'arrive en général que lorsque l'on est un peu expérimenté.
A titre de remarque, le développement d'un driver ne se fait JAMAIS sur une machine "normale" de développement, à cause des inévitables plantages sévères de la machine exécutant le driver en cours de développement (et des réinstallations fréquentes de l'OS qui en découlent, avec pertes des données...).
En général, on utilise deux machines pour ça, une pour coder, une pour tester / débugger. Avec une seule machine, fais un gros backup avant de commencer et sauve tes sources sur un disque externe... ;)
Sinon, pour Windows : WDK documentation blog
Pour Linux : Tuto DVP