1、/dev/null
任何写入它的数据都会被抛弃。
2、/dev/zero
可以产生连续不断的 null 的流(二进制的零流),用于向设备或文件写入 null 数据,一般用它来对设备或文件进行初始化。
3、使用 /dev/zero 和 /dev/null 来测试磁盘
//向磁盘上写一个大文件, 测试写性能
time dd if=/dev/zero bs=1024 count=1000000 of=/root/test.file
//从磁盘上读一个大文件, 测试读性能
time dd if=/root/test.file bs=64k | dd of=/dev/null
4、/dev/random
/dev/random是基于IRQS产生随机数的。random设备的random pool是从基于中断的IRQS里面取值,IRQS跟一些特殊的硬件绑定,基于这些硬件的interrupts将会提供给random设备。如果从/dev/random取值但是/dev/random取不到足够值的情况,这时候取值的进程将会等待,直到得到足够的random 值。
注:可以用cat /proc/interrupts 查看哪些设备绑定了irq。
5、/dev/urandom
/dev/urandom不受interrupts的限制,即使没有足够的interrupt它也能通过 random number generator产生足够的输出值。
6、random和urandom的区别
差异在于:/dev/random的random pool依赖于系统中断,因此在系统的中断数不够时,/dev/random设备会一直封锁,尝试读取的进程就会进入等待状态,直到系统的中断数充分够用, /dev/random设备可以保证数据的随机性。/dev/urandom不依赖系统的中断,也就不会造成进程忙等待,但是数据的随机性也不高。