Nœud matériel
# Nœud matériel

Un nœud matériel permet aux applications du mode utilisateur de communiquer avec le matériel de manière transparente. La gestion du matériel est à la base l'une des tâches réservée au noyau de système d'exploitation.

Cette technique est présente avec les systèmes de type Unix.

Les nœuds sont répertoriés dans le dossier système "/dev".

## Type

* Par caractère : un seul octet peut être transmis à la fois. La limitation de débit engendrée rend cette technique assez rare.
* Par bloc : plusieurs données peuvent transiter pendant une période de temps. C'est le cas le plus général, puisqu'il permet de transférer des grandes quantités d'informations. Il est possible alors d'adresser les données : sur mémoire, sur disque... Ceci requiert la présence d'une mémoire tampon qui sera utilisée plusieurs fois pour un transfert donné.
* Par pseudonyme : ne correspond pas physiquement à un support, mais à l'état d'un support. On peut citer :
   * /dev/null : toutes les entrées sont acceptées mais non traitées, aucune sortie n'est générée
   * /dev/full : rejette toutes les entrées par manque de place (fictif)
   * /dev/loop
   * /dev/zero : génère des chaînes nulles (caractère nul : ASCII NUL, 0x00)
   * /dev/random : génère des caractères aléatoires de longueur variable (bloquant)
   * /dev/urandom : génère des caractères aléatoires de longueur variable (non-bloquant)

## Utilisation

Les nœuds sont créés à l'aide de la commande "mknod" qui leur confère l'attribut de fichier "c".

Pour utiliser un nœud matériel comme un accès entrées-sortie transparent, il faut monter la zone avec l'utilitaire mount (umount pour l'opération inverse).

## Convention de nommage

Chaque périphérique est désigné par une abréviation, suivie d'un numéro entier incrémenté pour chaque nouveau matériel trouvé et de même type.

* carte réseau : eth
* disquette : fd
* disque dur IDE : hd
* imprimante : lp
* port parallèle : par
* pseudo-terminal : pt
* disque SATA/amovible : sd
* lecteur optique : sr
* bande magnétique : st
* console : tty

Exemple : un lecteur-graveur DVD sera nommé "sr0" ("sr1" pour le suivant). Pour être utilisé par un utilisateur et si cela n'est pas fait automatiquement, il suffira de monter le matériel avec une commande du type "mount /dev/sr0 /mnt/dvd".

