GNU/Linux >> Tutoriels Linux >  >> Linux

Qu'est-ce qu'un caractère spécial et un bloc de fichiers spéciaux dans un système Unix ? ?

Cette question a déjà des réponses ici :Comment fonctionnent les périphériques de caractères ou les fichiers spéciaux de caractères ?

(5 réponses)
Fermé il y a 2 ans.

En quoi les fichiers spéciaux de caractères et les fichiers spéciaux de blocs sont-ils différents des fichiers normaux dans un système de type Unix ? Pourquoi les appelle-t-on respectivement "caractère spécial" et "bloc spécial" ?

Réponse acceptée :

Lorsqu'un programme lit ou écrit des données à partir d'un fichier, les requêtes sont dirigées vers un pilote du noyau. Si le fichier est un fichier normal, les données sont gérées par un pilote de système de fichiers et elles sont généralement stockées dans des zones sur un disque ou un autre support de stockage, et les données lues à partir d'un fichier sont celles qui ont été précédemment écrites à cet endroit. Il existe d'autres types de fichiers pour lesquels des choses différentes se produisent.

Lorsque des données sont lues ou écrites dans un fichier de périphérique, la demande est gérée par le pilote de ce périphérique. Chaque fichier de périphérique a un numéro associé qui identifie le pilote à utiliser. Ce que l'appareil fait avec les données ne regarde que lui.

Les périphériques blocs (également appelés fichiers spéciaux de blocs) se comportent généralement un peu comme des fichiers ordinaires :ils sont un tableau d'octets et la valeur lue à un emplacement donné est la dernière valeur qui y a été écrite. Les données du périphérique bloc peuvent être mises en cache dans la mémoire et lues à partir du cache ; les écritures peuvent être mises en mémoire tampon. Les périphériques de bloc sont normalement recherchables (c'est-à-dire qu'il existe une notion de position à l'intérieur du fichier que l'application peut modifier). Le nom « périphérique bloc » vient du fait que le matériel correspondant lit et écrit généralement un bloc entier à la fois (par exemple, un secteur sur un disque dur).

Les périphériques de caractères (également appelés fichiers spéciaux de caractères) se comportent comme des canaux, des ports série, etc. Leur écriture ou leur lecture est une action immédiate. Ce que le conducteur fait avec les données est sa propre affaire. L'écriture d'un octet sur un périphérique de caractères peut entraîner son affichage à l'écran, sa sortie sur un port série, sa conversion en son, … La lecture d'un octet à partir d'un périphérique peut entraîner l'attente d'une entrée par le port série, peut renvoyer un octet aléatoire ( /dev/urandom ), … Le nom "character device" vient du fait que chaque caractère est géré individuellement.

Voir Wikipedia et Comprendre /dev et ses sous-répertoires et fichiers pour plus d'informations.

Connexe :Linux - Fusionner par date plusieurs fichiers journaux qui incluent également des lignes non datées (par exemple, des traces de pile) ?
Linux
  1. Comment trouver qui est connecté à votre système et ce qu'il fait

  2. Que sont les fichiers .run ?

  3. Quels sont les appels OS/système natifs Windows et Linux effectués à partir de malloc() ?

  4. Qu'est-ce qu'un conteneur Linux et un hyperviseur Linux ?

  5. Quelles sont les implications en termes de performances pour des millions de fichiers dans un système de fichiers moderne ?

Quelle est la différence entre Linux et Unix ?

Comment installer Rclone sous Linux et Unix

Histoire Unix et Linux

Qu'est-ce qu'un hyperviseur et quels sont ses types

Qu'est-ce que les appels système Linux et les fonctions de bibliothèque ?

Quelles sont les conventions d'appel pour les appels système UNIX et Linux (et les fonctions de l'espace utilisateur) sur i386 et x86-64