伪字符驱动程序

本文介绍了Linux中的伪字符设备,包括null、zero设备及内核随机数产生器。详细解释了如何利用这些设备进行数据处理,如使用/dev/zero填充文件,以及/dev/random和/dev/urandom的区别和应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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驱动程序并未使用公式去产生近乎随机的随机数,而是收集“环境噪声”(中断间隔、键盘敲击等)维持一个混乱池以产生随机流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值