1、伪字符驱动程序:
在linux中有几个常用的内核工具没有和任何的物理硬件相连接,他们被灵活的时限为字符设备。
null、zero设备和内核随机数产生器被当做虚拟设备,并使用伪字符设备驱动程序来访问。
/dev/null字符设备接收你不想显示在屏幕上的数据。
1)、如果你想用0来填充一个图像文件,你可以调用/dev/zero来达到目的:
dd if=/dev/zero of=file.img bs=1024 count=1024
它从/dev/zero驱动程序的read()方法中获取一串0。此驱动程序没有write()方法。
2)、内核有一个内部的随机数发生器。当内核用户希望使用随机序列时,随机数发生器提供API,如get_random_bytes()。
对于用户模式的程序,它提供两个字符接口:/dev/random和/dev/urandom。
从/dev/random读取的随机数的随机性要高于/dev/urandom。当用户程序从/dev/random读取时,可获得近乎随机的随机数,而从/dev/urandom读取的为伪随机数。
/dev/random驱动程序并未使用公式去产生近乎随机的随机数,而是收集“环境噪声”(中断间隔、键盘敲击等)维持一个混乱池以产生随机流。