/dev/random
的读取可能会阻塞,而对/dev/urandom
的读取则保证不会阻塞。它代表什么?用户空间?解除封锁?微?
更新:
基于问题的最初措词,人们对
u
和/dev/random
的有用性进行了一些辩论。关于/ dev / urandom的神话链接已在下面发布了三遍,并在对何时使用/ dev / random与/ dev / urandom的问题的回答中进行了总结。#1 楼
在Linux中,比较名为
random_read
和random_read_unlimited
的内核函数表示
u
中字母urandom
的词源是unlimited
。 这由第114行确认:
/ dev / urandom设备没有此限制[...]
更新:
关于Linux的首个版本,
/dev/random
或/dev/urandom
,@StéphaneChazelas为帖子提供了原始补丁,而@StephenKitt显示它们都是同时引入的。评论
那么/ dev / random为什么不命名为/ dev / lrandom? :)
–佐藤桂(SatōKatsura)
16年11月16日在6:13
历史的。最初,仅存在受限/阻止版本。与之类似的“非无限”功能称为random_read :)
–汤姆·黑尔
16-11-16在6:25
我确实通过Wikipedia找到了链接之一,但是我直接引用了源而不是引用了Wikipedia。我认为这类似于通过google查找某些内容,而不引用google ...,除非我对StackExchange的引用有一些了解?
–汤姆·黑尔
16-11-16在13:04
@TomHale由于Linux内核中同时引入了random和urandom,有关random v。lrandom的历史性论点并不能很好地解决。
–斯蒂芬·基特(Stephen Kitt)
16年11月16日在13:23
另请参阅原始实现的作者在1995年发送的usenet补丁。
–StéphaneChazelas
16年11月16日在14:38
#2 楼
这取决于您所讨论的“ Unix”系统。在FreeBSD上,/ dev / urandom和/ dev / random是同一设备。字母u现在是历史遗留,为了向后兼容而存在。在启动时,它们会阻塞直到收集到足够的熵,然后再也不会阻塞。有关详细信息,请参见有关urandom的神话。
在现代Linux世界中(从内核4.8开始),两个设备都来自同一CSPRNG,因此唯一的区别是,有人推测攻击存在。这种攻击就像FTL [Faster than Light]旅行一样。容易推测,实际上很难设计。
TLDR只是使用/ dev / urandom。
评论
从您的链接中,有趣的是注意到FreeBSD做正确的事:它们在/ dev / random和/ dev / urandom之间没有区别,它们都是同一台设备。在启动时,/ dev / random会阻塞一次,直到收集到足够的启动熵为止。然后它不会再阻塞了。
–汤姆·黑尔
16-11-17在4:55
#3 楼
制服。随机数在0到1之间均匀分布。与峰分布(例如,泊松或正态/高斯分布)相反,平面分布...。评论
有任何来源吗?
– GnP
16年11月17日在18:18
这绝对是不对的-/ dev / random和/ dev / urandom都给出相同的分布,并且从任何实际意义上讲,它并不是在0和1之间均匀分布。
–克里斯
16年11月17日在19:35
抱歉...可能基于我使用过的另一种语言(R或其他语言)
– bbneo
16 Dec 5'在20:11
评论
解除阻止,与/ dev / random阻止相反。章与节?
/ dev / random在某种程度上比/ dev / urandom更好的想法现在已经过时了,在大多数用例中,/ dev / urandom现在是首选。
@SatoKatsura来源?汤姆的答案与你的答案相矛盾。
这是指向站点的链接,其中包含备份@DavidSchwartz的评论的详细信息。 2uo.de/myurs-about-urandom