Notion de fichier spécial

La notion de fichiers spéciaux est une notion très importante dans la mesure où ce sont les fichiers spéciaux qui permettent au système linux d’accéder aux différents composants matériels (périphériques) de l’ordinateur.

Comment ça ?

Eh bien voyons clairement les choses.
La majorité des opérations qu’on effectue sur les périphériques ne sont rien d’autres que des écritures et lectures. Or écrire sur un fichier spécial d’un périphérique, permet d’enregistrer les données concernant ce périphérique. Et la lecture de ces données permet de les récupérer. Par exemple si on écrit des données sur le fichier spécial du disque, cela permet d’enregistrer des données sur le disque. Ouvrir un fichier mp3 pour l’écouter cela revient à écrire sur le fichier spécial de la carte son. De même que la communication entre la livebox se fait en écrivant et en lisant les données sur le fichier spécial du port auquel elle est connectée.
Donc ainsi quand le système a besoin de communiquer avec un périphérique, il doit passer par son fichier spécial.

Il existe deux types de fichiers spéciaux :

  • Le fichier spécial en mode bloc : il permet de transférer les données vers le périphérique en utilisant les buffers du système.
  • Le fichier spécial en mode caractère : il permet de transférer les données vers le périphérique sous formes des flux.

Le contenu des fichiers en mode bloc sont généralement gardé en mémoire, ce qui n’est pas le cas des fichiers en mode caractère.

Les périphériques qu’on peut monter (mounter), comme par exemple les périphériques de stockage, peuvent être accédés en mode bloc et en mode caractère. Les périphériques qu’on ne peut pas monter, ne sont accessibles qu’en mode caractère.

Un fichier spécial contient deux numéros uniques qui permettent au noyau d'associer les bonnes opérations aux bons périphériques :

  • Le numéro majeur (major number) qui pointe vers le driver du périphérique;
  • Le numéro mineur (minor number) qui est la représentation compacte de l'adresse du périphérique.

Les fichiers spéciaux sont créés par le système ou les périphériques. Vous pouvez vous-même vous amuser à en créer. Ils sont créés avec les commandes insf , mksf , et mknod . Ils sont logés sur le repertoire /dev (comme devices = périphériques).

Au démarrage de l’ordinateur, le système identifie les différents périphériques connectés et crée automatique des fichiers spéciaux pour ces périphériques.




Une question? Cliquez ici pour la poser.

Retour sur le portail de Linux