Ce ne sont en fait que des interfaces. Encodés par un nombre "majeur" et "mineur", ils fournissent un crochet au noyau.
Ils existent en deux versions (enfin, trois, mais les canaux nommés sont hors de portée de cette explication pour l'instant): les périphériques de caractères et les périphériques de blocs.
Les périphériques de bloc ont tendance à être des périphériques de stockage, capables de mettre en tampon la sortie et de stocker des données pour une récupération ultérieure.
Les périphériques de caractères sont des éléments tels que des cartes audio ou graphiques, ou des périphériques d'entrée comme le clavier et la souris.
Dans chaque cas, lorsque le noyau charge le bon pilote (soit au démarrage, soit via des programmes comme udev ), il analyse les différents bus pour voir si des périphériques gérés par ce pilote sont réellement présents sur le système. Si tel est le cas, il configure un appareil qui «écoute» le numéro majeur / mineur approprié.
(Par exemple, le processeur de signal numérique de la première carte audio trouvée par votre système obtient la paire de nombres majeurs / mineurs de 14/3; la seconde obtient 14,35, etc.)
Il appartient à udev de créer une entrée dans /dev
named en dsp
tant que périphérique de caractère marqué majeur 14 mineur 3.
(Dans les versions beaucoup plus anciennes ou à empreinte minimale de Linux, il se /dev/
peut qu'il ne soit pas chargé dynamiquement mais contienne simplement tous les fichiers de périphérique possibles de manière statique.)
Ensuite, lorsqu'un programme de l'espace utilisateur essaie d'accéder à un fichier marqué comme un `` fichier spécial de caractères '' avec le numéro majeur / mineur approprié (par exemple, votre lecteur audio tente d'envoyer de l'audio numérique à /dev/dsp
), le noyau sait que ces données doivent être transmis via le conducteur auquel est attaché un numéro majeur / mineur; on peut supposer que le conducteur sait à son tour quoi en faire.