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).
Tout ce que Basile Starynkevitch dit est correct. J'ajouterai un peu plus. En effet, les lecteurs de disque étaient des lecteurs "en bloc", mais les périphériques en bloc (et de nombreux autres périphériques) étaient présentés sous deux formes: "bruts" et "cuits". Les périphériques bruts ne pouvaient être traités que par blocs qui étaient des multiples de leur taille de bloc de stockage natif. Ainsi, un périphérique de disque brut ne peut être lu ou écrit qu'un ou plusieurs blocs à la fois, pas seulement un ou deux octets. Les appareils cuits ont ajouté une couche qui permettrait de telles opérations plus petites, ainsi que diverses autres fonctionnalités.
Les systèmes de fichiers fonctionnaient avec des périphériques bruts et ne les considéraient donc pas comme un grand tableau d'octets, mais plutôt comme un grand tableau de blocs, comme BS l'a expliqué.
la source