Sous Linux (et les Unix des années 1980), un périphérique de stockage (assez souvent une partition de disque sur un disque dur ou sur un SSD ) est un périphérique de bloc (voir ceci ) tout comme une [sous-] séquence de blocs (qui est le unité de base des E / S physiques ). La taille du bloc physique dépend du matériel (les anciens disques IDE avaient une taille de bloc de 512 octets, les nouveaux grands disques SATA ont une taille de bloc de 4 Ko, lisez la page wikipage au format avancé ), et lorsque vous créez un système de fichiers (avec, par exemple mkfs
, voir mke2fs (8)), vous pouvez spécifier une taille de bloc logique qui est un multiple (souvent une petite puissance de deux, dont 1) de cette taille de bloc physique. Lisez également à propos de l'adressage de bloc logique .
Dans le passé (pensez aux postes de travail Sun3 des années 1990), le disque était constitué de cylindres à têtes organisées en secteurs (lire la page de démarrage CHS ), avec un secteur contenant un bloc. Aujourd'hui, ces derniers subsistent mais sont un artefact artificiel fourni par le contrôleur de disque dur (le circuit sur le disque lui-même). Dans certains systèmes d'exploitation, le pilote de périphérique de bloc a replanifié et réorganisé les demandes d'E / S pour minimiser le mouvement de la tête de disque et la latence de rotation .
De cette façon, un système de fichiers peut fonctionner avec tout type de périphérique de stockage (disque dur traditionnel, SSD, clé USB, etc.) et seul le pilote de périphérique du périphérique de stockage est modifié.
Oui, mais le mal est dans les détails (par exemple, lisez sur TRIM et Write Amplification , spécifique aux SSD). Et les détails sont importants, donc la mise en œuvre réelle est moins simple que votre figure. En savoir plus sur les systèmes de fichiers (et penser aux systèmes de fichiers en cluster et distants, y compris SMB et NFS ; lire également sur Logical Volume Manager ).
Lire Systèmes d'exploitation: trois pièces faciles (et sa partie persistance ).
Notez que les périphériques de bloc ont disparu dans FreeBSD (fournissant en fait une abstraction commune pour les périphériques de caractères et de bloc). Je soupçonne que même sous Windows, le système d'exploitation connaît les partitions, la taille des blocs, etc. (mais vous devriez vérifier).