/dev/zero
fournit un flux sans fin de zéro octet lors de la lecture. Cette fonction est fournie par le noyau et ne nécessite pas d'allocation de mémoire. Toutes les écritures sur /dev/null
sont supprimés silencieusement.
Par conséquent, lorsque vous effectuez le dd
, le système génère 500 mégaoctets dans zéro octet qui sont tout simplement ignorés. À l'exception d'un tampon temporaire, aucune donnée n'est stockée avant, pendant ou après cette opération.
La vitesse du transfert de /dev/zero
à /dev/null
est déterminé principalement par la vitesse de votre processeur et les appels système pertinents. (Dans votre cas, la mémoire tampon a une taille de 500 Mo et, par conséquent, l'opération teste également la vitesse de votre mémoire.)
Je vais traduire cette commande pour vous :
dd if=/dev/zero of=/dev/null bs=500M count=1
Données en double (dd
) du fichier d'entrée (if
) de /dev/zero
(offre virtuellement illimitée de 0
's) dans le fichier de sortie (of
) de /dev/null
(gouffre virtuel) utilisant des blocs de taille 500M (bs
=taille du bloc) et répétez ceci (count
) une seule fois (1
).
En général, cette commande doit mesurer uniquement les vitesses de la mémoire et du bus. Cependant, il peut échouer si vous ne disposez pas de 500 Mo de RAM disponibles. Donc, dans un sens, cela mesure aussi implicitement la vitesse à laquelle votre système d'exploitation peut allouer de gros morceaux de mémoire.
/dev/null est un trou noir. Il n'est pas précis pour tester les opérations d'écriture normales car il n'écrit pas réellement sur le disque comme le ferait un fichier normal. Plutôt que de laisser la tête écrire sur le disque, les données sont supprimées immédiatement lors de l'écriture sur le périphérique, de sorte qu'elles seront toujours plus rapides que les écritures locales normales.
/dev/zero est similaire pour les lectures. Il ne nécessite pas de mouvement de la tête pour lire, c'est juste un approvisionnement illimité de caractères nuls, donc il lira toujours plus vite que n'importe quelle lecture locale.
En d'autres termes, cela revient à tester dans le vide et ne donnera pas une image précise de ce que les lectures et écritures locales normales devraient produire.