/dev/zero
menyediakan aliran nol byte tanpa akhir saat dibaca. Fungsi ini disediakan oleh kernel dan tidak memerlukan alokasi memori. Semua menulis ke /dev/null
dijatuhkan secara diam-diam.
Akibatnya, saat Anda melakukan dd
, sistem menghasilkan 500 megabyte dalam nol byte yang dibuang begitu saja. Kecuali buffer sementara, tidak ada data yang disimpan sebelum, selama, atau setelah operasi ini.
Kecepatan transfer dari /dev/zero
ke /dev/null
ditentukan terutama oleh kecepatan prosesor Anda dan panggilan sistem yang relevan. (Dalam kasus Anda, buffer berukuran besar 500 MB, dan karenanya operasi juga menguji kecepatan memori Anda.)
Saya akan menerjemahkan perintah ini untuk Anda:
dd if=/dev/zero of=/dev/null bs=500M count=1
Duplikat data (dd
) dari file masukan (if
) dari /dev/zero
(persediaan virtual tak terbatas dari 0
's) ke dalam file keluaran (of
) dari /dev/null
(sinkhole virtual) menggunakan blok berukuran 500M (bs
=ukuran blok) dan ulangi ini (count
) sekali saja (1
).
Secara umum, perintah ini hanya mengukur kecepatan memori dan bus. Namun, ini mungkin gagal jika Anda tidak memiliki RAM 500MB. Jadi, dalam arti tertentu, ini juga secara implisit mengukur seberapa cepat OS Anda dapat mengalokasikan potongan memori yang besar.
/dev/null adalah lubang hitam. Ini tidak akurat untuk menguji operasi tulis normal karena tidak benar-benar menulis ke disk seperti yang dilakukan file normal. Alih-alih membuat head menulis ke disk, data langsung dibuang setelah ditulis ke perangkat, sehingga akan selalu lebih cepat daripada penulisan lokal normal.
/dev/zero mirip untuk membaca. Itu tidak memerlukan gerakan kepala untuk membaca, itu hanya persediaan karakter nol yang tidak terbatas, sehingga akan selalu membaca lebih cepat daripada pembacaan lokal mana pun.
Dengan kata lain, ini seperti menguji dalam kekosongan dan tidak akan memberikan gambaran akurat tentang apa yang seharusnya dihasilkan oleh pembacaan dan penulisan lokal normal.