Est-il possible de créer un périphérique de type bloc Linux (2.6) (tel qu'un périphérique de bouclage) avec une taille impaire? Je ne pouvais pas y arriver. losetup
semble arrondir à une limite de 512 octets. Les périphériques ubd
des périphériques Linux ubd
en mode utilisateur semblent arrondir à la limite de 512 octets. Dans struct request
, nous avons sector_t __sector
pour le décalage de bloc pour les opérations de lecture/écriture.Périphérique de bloc Linux avec taille impaire (pas pair)
Je pose cette question juste à des fins éducatives. Je peux faire face à la limite de 512 octets, mais je suis toujours intéressé s'il serait possible de le contourner. Dans cette question, je ne suis pas intéressé par d'autres couches d'abstraction (comme l'utilisation de fichiers réguliers ou de périphériques de caractères).
Je vais bien avec la granularité du bloc - mais avec cela nous pourrions toujours avoir une taille de périphérique impair: il suffit de faire le dernier bloc plus petit que les autres. L'accent mis sur ma question n'est cependant pas philosophique: je m'intéresse à l'implémentation du noyau Linux 2.6. – pts
C'est exactement ce que je voulais dire par "calcul plus coûteux". Autour de chaque accès avec "est-ce le dernier bloc partiel?" les prédicats sont coûteux lorsqu'ils sont appliqués à toutes les opérations d'E/S. – msw