• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

Linux的random总是装死

发布: 2007-6-13 20:12 | 作者: admin | 来源: | 查看: 73次 | 进入软件测试论坛讨论

领测软件测试网

应该有不少人碰过Apache 启动时卡在digest module 过不去,导致PHP 不能使用,或是碰过某些程序卡在某个地方很久没动作。这时候大家可能要去检查一下/dev/random 这个设备档案。可以用cat /dev/random 来看它的内容,如果你发现他一直没显示任何内容﹝可能是乱码数字之类的﹞,那就是它出问题了。

据我从digest module 的source code 里所知,这模组呼叫了一个乱数产生的函数,此函数会呼叫/dev/random。所以当/dev/random卡住显示不出内容时,很自然的任何read() 它的程式会停在那等它回应。

我了解Linux kernel 的source code 之后发现,/dev/random 会使用key/mouse/disk 的interrupt 当做乱数种子的计算来源,好处是会有更大的安全性,但问题是当我们没在使用 key/mouse/disk 或是他们的 interrupt 讯号量不足以产生乱数种子时,/dev/random 就会永远是空白没东西。

这问题有个暂时的解决办法,就是将 /dev/random 砍掉,先用link的方式使用 /dev/urandom 取代/dev/random。

要完全解决此问题,可至SourceForge 找到gkernel这项目。

下载rng-tool 回来编译安装。

然后于开机的 Scripts 中加入:



rngd -b -o /dev/random -r /dev/urandom

此Deamon 将会在没足够interrupt 讯号时使用urandom 的乱数当random 的乱数种子。

(责任编辑:城尘)



延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网