Ce site utilise JavaScript... suivez ce lien pour l'activer : www.enable-javascript.com

fleche gauche
fleche droite
logo discoverid
illustration prochain rendez vous

Un jour, les Jean-Michel LED domineront le monde !

© DiscoverID

Pilotes et matériel, une grande histoire d'amour !

illustration news

Hey !!!

S'il y a bien sujet qui fait peur aux débutants (après le front panel, je l'avoue), ce sont les drivers. Mais qui sont-ils ? Pourquoi sont-ils nécessaires ? Aller, on y va !

Pour bien comprendre le pourquoi du comment, on va changer d’échelle :

Pif paf pouf, nous voilà dans l’un des plus petits CPU existants, un Arduino. Son processeur, ou plutôt calculatrice, devrait-on dire aujourd’hui, est idéal pour comprendre. Ce type de puces, par sa très faible puissance, ne supporte que peu de périphériques : Dans cet exemple, guère plus d’une dizaine.

Ce principe de périphérique, c'est toujours le même depuis le début. Nous avons un processeur au milieu et des périphériques autour. Seules les façons de communiquer et le nombre de périphériques ont évolués.

Le processeur d'un Arduino est capable de physiquement faire quelques actions basiques : Compter, Lire une entrée, Définir l’état d’une sortie… Mais aussi communiquer sur des bus.

Ces actions sont réalisées par des périphériques, et non le processeur même. Et, ces fameux périphériques ont besoin d'être configurés avant pour fonctionner.

Cela devient vite fastidieux de le faire à la main, et est source d'erreur. Si seulement nous avions un programme qui nous faisait ça tout seul...

Pour cela, nous voulons écrire un petit bout, de sous-programme, qui fera ce boulot à notre place : Nous lui demandons une action, et il l’exécute, en réalisant les actions nécessaires au fonctionnement. Par exemple, si je demande à l’Arduino de compter, j’aimerais que le programme se charge seul de paramétrer l’entrée, les actions en sorties, etc. Un driver est là pour ça, il masque les étapes compliquées de la procédure à l’utilisateur.

Ce bout de programme, c’est un driver. Certes, très simple et basique, mais il a le mérite d’exister. Ce driver peut se permettre d’être simple : En effet, il est impossible d’effectuer une modification au processeur. Les commandes resteront donc TOUJOURS les mêmes. Une fois programmé et testé, il pourra tourner pour toujours.

Deuxième situation, nous allons utiliser un écran : Celui-ci communique au travers d’un bus standard. On pourrait donc nouveau écrire un driver pour celui-ci, comportant toutes les commandes nécessaires à son bon fonctionnement, tout en étant simple à appeler.

Mais, un GROS problème se pose : Il se passe quoi si je change mon écran ? C'est pourtant facile et rapide à faire. Ce connecteur est standard, en plus... Eh bien, pas grand-chose. Ce nouvel écran ne comprendra pas les commandes envoyées, et ne réagira pas. Dommage. Ça serait cool d’avoir la possibilité d’identifier le périphérique branché, et communiquer avec lui de la bonne façon, et tout cela automatiquement ?

Retournons à nos chers PCs... chaque demande du programme maître à des programmes standard, mais chaque fabricant adapte son programme pour que ça marche avec son matériel. Le système d’exploitation n’aura qu’à choisir le bon programme à exécuter pour que cela fonctionne ! Simple non ? Eh beh, comment savoir quel programme utiliser si on ne connait pas la personne à qui l'on parle ?

Ils sont capables, via les bus de communication, d’identifier les périphériques branchés : Sur le bus PCI(e), chaque gamme de périphériques à un ID qui lui est propre et unique au monde. Par exemple, sur ma carte réseau Wi-Fi : Il s’agit du PCI\VEN_10EC&DEV_C822. Avec une recherche Google, on tombe immédiatement et uniquement sur la Realtek 8822CE.

Avec cet ID, le système d’exploitation peut identifier le périphérique branché. C’est bien, mais on en fait quoi ? Eh bien, on installe son driver.

Même, si par défaut le périphérique fonctionne, il n’est pas à son potentiel maximal :

Souvent, les périphériques comprennent deux langages : Celui standard, assurant une fonctionnalité partout, et celui spécifique au fabricant, assurant les performances maximales.

Ainsi, votre pc marche sans drivers (lors du premier démarrage), mais pour l’utiliser à fond, les drivers spécifiques sont nécessaires.

Un driver peut se voir de cette façon : Une pile, ou chaque étage, joue un rôle : L’utilisateur demande à l’application, par exemple, je veux imprimer un document. L’application demande au système d’exploitation d’imprimer, qui lui-même demande à l’imprimante via son driver. Et comme précisé avant, sans drivers, la feuille sortira, mais sans fioritures, là où avec, on peut envisager une impression haute qualité. Ensuite, le driver fait son retour jusqu’à l’utilisateur.

Et voilà, j'espère que vous avez compris un peu mieux ce qui se cache derrière ce nom barbare de driver…

Tchuss !!