Je connais de nombreux exemples de périphériques blocs (disques durs, SSD, fichiers, ...), mais je n'en ai pas entendu de définition simple. Surtout que les fichiers sont apparemment inclus dans la définition, je me sens un peu confus ...
A Block Special File or block device is :
Un fichier qui fait référence à un périphérique. Un fichier spécial de bloc se distingue normalement d'un fichier spécial de caractères en fournissant un accès au périphérique de telle sorte que les caractéristiques matérielles du périphérique ne soient pas visibles.
Les caractéristiques matérielles précises sont résumées par la mise en cache au niveau du noyau ou du pilote. Les périphériques de bloc représentent généralement du matériel tel que des lecteurs de disque, mais cela dépend de la plate-forme. FreeBSD n'a pas du tout de périphériques bloqués , par exemple.
Les fichiers, en général, ne sont pas des périphériques.
"Bloquer le périphérique", tel qu'il est fait référence aux fichiers, fait référence aux fichiers de périphérique particuliers dans (probablement) /dev
. Il s'agit en grande partie d'un détail d'implémentation au niveau de l'utilisateur, avec une interface exposée par le pilote. De nombreux types de matériel sont structurés en blocs en interne, mais des périphériques de type bloc et caractère peuvent être utilisés pour y accéder.
Vous ne pourrez probablement jamais en trouver une définition simple. Mais de la manière la plus générale et la plus simpliste, si vous comparez un périphérique de caractères à un périphérique de bloc, vous pouvez dire que le périphérique de caractères vous donne un accès direct au matériel, comme si vous mettez un octet, cet octet arrive au matériel (de Bien sûr, ce n'est pas aussi simple que cela de nos jours). Alors que le périphérique bloc lit et écrit sur le périphérique en blocs de tailles différentes. Vous pouvez spécifier la taille du bloc mais comme la communication est un bloc à la fois, il y a un temps de mise en mémoire tampon impliqué.
Considérez un périphérique bloc comme un disque dur où vous lisez et écrivez un bloc de données à la fois et le périphérique caractère est un port série. Vous envoyez un octet de données et l'autre côté reçoit cet octet, puis le suivant, et ainsi de suite.
Encore une fois, ce n'est pas un concept très simple à expliquer. Les exemples que j'ai donnés sont des généralisations grossières et peuvent facilement être réfutés pour une mise en œuvre particulière de chaque exemple.