GNU/Linux >> LINUX-Kenntnisse >  >> Linux

DD von /dev/zero nach /dev/null ... was eigentlich passiert

/dev/zero liefert beim Lesen einen endlosen Strom von Null-Bytes. Diese Funktion wird vom Kernel bereitgestellt und erfordert keine Speicherzuweisung. Alle Schreibvorgänge in /dev/null werden lautlos gelöscht.

Wenn Sie also dd ausführen , generiert das System 500 Megabyte in null Bytes, die einfach verworfen werden. Außer einem temporären Puffer werden vor, während oder nach diesem Vorgang keine Daten gespeichert.

Die Übertragungsgeschwindigkeit von /dev/zero bis /dev/null wird hauptsächlich durch die Geschwindigkeit Ihres Prozessors und relevante Systemaufrufe bestimmt. (In Ihrem Fall ist der Puffer 500 MB groß, und daher testet die Operation auch die Geschwindigkeit Ihres Speichers.)


Ich werde diesen Befehl für Sie übersetzen:

dd if=/dev/zero of=/dev/null bs=500M count=1

Doppelte Daten (dd ) aus der Eingabedatei (if ) von /dev/zero (virtuell unbegrenzter Vorrat an 0 's) in die Ausgabedatei (of ) von /dev/null (virtuelles Sinkhole) mit Blöcken von 500 MB Größe (bs =Blockgröße) und wiederholen Sie dies (count ) nur einmal (1 ).

Im Allgemeinen sollte dieser Befehl nur Speicher- und Busgeschwindigkeiten messen. Es kann jedoch fehlschlagen, wenn Sie nicht über 500 MB RAM verfügen. In gewissem Sinne ist es also auch ein impliziter Benchmark, wie schnell Ihr Betriebssystem große Speicherblöcke zuweisen kann.


/dev/null ist ein schwarzes Loch. Es ist nicht genau zum Testen normaler Schreibvorgänge, da es nicht wie eine normale Datei auf die Festplatte schreibt. Anstatt den Kopf auf die Festplatte schreiben zu lassen, werden die Daten sofort nach dem Schreiben auf das Gerät verworfen, sodass sie immer schneller sind als normale lokale Schreibvorgänge.

/dev/zero ist ähnlich für Lesevorgänge. Zum Lesen ist keine Kopfbewegung erforderlich, es ist nur ein unbegrenzter Vorrat an Nullzeichen, sodass es immer schneller gelesen wird als jedes lokale Lesen.

Mit anderen Worten, dies ist wie das Testen in einem Nichts und gibt kein genaues Bild davon, was normale lokale Lese- und Schreibvorgänge ergeben sollten.


Linux
  1. Wie behandelt Linux mehrere aufeinanderfolgende Pfadtrennzeichen (/home////username///file)?

  2. Wie portabel sind /dev/stdin, /dev/stdout und /dev/stderr?

  3. Wann sollte /dev/random vs. /dev/urandom verwendet werden?

  4. Linux – Was bedeutet der Buchstabe „u“ in /dev/urandom?

  5. So ordnen Sie /dev/sdX- und /dev/mapper/mpathY-Geräte vom /dev/dm-Z-Gerät zu

tty (/dev/tty ) vs. pts (/dev/pts) unter Linux

screen Ihr Terminal '/dev/pts/0' kann nicht geöffnet werden - bitte überprüfen

Wann sollte ich /dev/shm/ verwenden und wann sollte ich /tmp/?

Wie Linux /dev/tty und /dev/tty0 verwendet

echo oder print /dev/stdin /dev/stdout /dev/stderr

Erstellen Sie ein virtuelles Blockgerät, das in /dev/null schreibt